Update of /cvsroot/freenet/freenet/src/freenet/node In directory sc8-pr-cvs1:/tmp/cvs-serv3005/src/freenet/node
Modified Files: NodeReference.java Log Message: use signed refs if possible. Reinstates fast RT fill. Index: NodeReference.java =================================================================== RCS file: /cvsroot/freenet/freenet/src/freenet/node/NodeReference.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -w -r1.28 -r1.29 --- NodeReference.java 22 Oct 2003 23:28:55 -0000 1.28 +++ NodeReference.java 23 Oct 2003 00:09:41 -0000 1.29 @@ -100,17 +100,23 @@ return n; } + public NodeReference(FieldSet ref, boolean verify, Identity ident) + throws BadReferenceException { + this(ref, verify, false, ident); + } + /** * Creates a new nodereference from its FieldSet, adding an externally * obtained identity. * @param ref A FieldSet containing the full Node Reference information. * @param verify true mandates the existance of valid signature. + * @param slack true means if there is a signature it will be checked and must be valid * @param ident The identity to assign the fieldset to. The method * will look for a field called "identityFP" in the * and match that against the fingerprint of this identity. * @exception BadReferenceException - if the data is malformed. */ - public NodeReference(FieldSet ref, boolean verify, Identity ident) + public NodeReference(FieldSet ref, boolean verify, boolean slack, Identity ident) throws BadReferenceException { if (!ref.isSet("identity") && ident != null) { @@ -210,13 +216,16 @@ } } - if (verify) { + if (verify || slack) { // last but not least, read and verify signature String signS = ref.get("signature"); - if (signS == null) + if (signS == null) { + if(verify) { throw new BadReferenceException("NodeReference must be signed"); + } + } else { try { signature = new DSASignature(signS); Digest d = SHA1.getInstance(); @@ -242,6 +251,7 @@ throw new BadReferenceException("Signature field not correct"); } } + } if (version != null) Version.seenVersion(version); _______________________________________________ cvs mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs