Author: nextgens
Date: 2006-09-06 16:35:03 +0000 (Wed, 06 Sep 2006)
New Revision: 10410
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/Version.java
Log:
970:
DSASignatures NEED to be done on a hash!
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-09-06 15:30:16 UTC (rev
10409)
+++ trunk/freenet/src/freenet/node/Node.java 2006-09-06 16:35:03 UTC (rev
10410)
@@ -1662,14 +1662,20 @@
if(myReferenceSignature == null || mySignedReference == null ||
!mySignedReference.equals(fs.toOrderedString())){
mySignedReference = fs.toOrderedString();
try{
- myReferenceSignature = DSA.sign(myCryptoGroup,
myPrivKey, new BigInteger(mySignedReference.getBytes("UTF-8")), random);
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
+ myReferenceSignature = DSA.sign(myCryptoGroup,
myPrivKey, new BigInteger(md.digest(mySignedReference.getBytes("UTF-8"))),
random);
} catch(UnsupportedEncodingException e){
//duh ?
Logger.error(this, "Error while signing the
node identity!"+e);
System.err.println("Error while signing the
node identity!"+e);
e.printStackTrace();
exit(EXIT_CRAPPY_JVM);
- }
+ } catch (NoSuchAlgorithmException e2) {
+ Logger.error(this, "Error while signing the
node identity!"+e2);
+ System.err.println("Error while signing the
node identity!"+e2);
+ e2.printStackTrace();
+ exit(EXIT_CRAPPY_JVM);
+ }
}
fs.put("sig", myReferenceSignature.toString());
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-09-06 15:30:16 UTC
(rev 10409)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-09-06 16:35:03 UTC
(rev 10410)
@@ -410,10 +410,10 @@
fs.removeValue("sig");
if(!fromLocal){
try{
- if(signature == null || !DSA.verify(peerPubKey,
new DSASignature(signature), new
BigInteger(fs.toOrderedString().getBytes("UTF-8")))){
+ if(signature == null || !DSA.verify(peerPubKey,
new DSASignature(signature), new
BigInteger(md.digest(fs.toOrderedString().getBytes("UTF-8"))))){
Logger.error(this, "The integrity of
the reference has been compromized!");
this.isSignatureVerificationSuccessfull
= false;
-
if(Version.getArbitraryBuildNumber(version)>969) // TODO: REMOVE: the backward
compat. kludge : version checking
+
if(Version.getArbitraryBuildNumber(version)>970) // TODO: REMOVE: the backward
compat. kludge : version checking
throw new
ReferenceSignatureVerificationException("The integrity of the reference has
been compromized!");
}else
this.isSignatureVerificationSuccessfull
= true;
@@ -2003,13 +2003,12 @@
localRoutingBackedOffUntil = routingBackedOffUntil;
}
synchronized(this) {
- if(now > lastSampleTime) { // don't report twice in the
same millisecond
- if (now > localRoutingBackedOffUntil) { // not
backed off
- if (lastSampleTime >
localRoutingBackedOffUntil) { // last sample after last backoff
+ if(now > lastSampleTime) {
+ if (now > localRoutingBackedOffUntil) {
+ if (lastSampleTime >
localRoutingBackedOffUntil) {
backedOffPercent.report(0.0);
} else {
- if(localRoutingBackedOffUntil >
0)
-
backedOffPercent.report((double)(localRoutingBackedOffUntil -
lastSampleTime)/(double)(now - lastSampleTime));
+
backedOffPercent.report((double)(localRoutingBackedOffUntil -
lastSampleTime)/(double)(now - lastSampleTime));
}
} else {
backedOffPercent.report(1.0);
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-09-06 15:30:16 UTC (rev
10409)
+++ trunk/freenet/src/freenet/node/Version.java 2006-09-06 16:35:03 UTC (rev
10410)
@@ -21,11 +21,11 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 969;
+ private static final int buildNumber = 970;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 950;
- private static final int newLastGoodBuild = 969;
+ private static final int newLastGoodBuild = 970;
private static final long transitionTime;
static {