Author: toad
Date: 2007-01-27 18:27:03 +0000 (Sat, 27 Jan 2007)
New Revision: 11626
Modified:
trunk/freenet/src/freenet/keys/CHKBlock.java
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Maybe fix store reconstruction bug
Modified: trunk/freenet/src/freenet/keys/CHKBlock.java
===================================================================
--- trunk/freenet/src/freenet/keys/CHKBlock.java 2007-01-27 17:31:14 UTC
(rev 11625)
+++ trunk/freenet/src/freenet/keys/CHKBlock.java 2007-01-27 18:27:03 UTC
(rev 11626)
@@ -43,6 +43,15 @@
return data;
}
+ public static CHKBlock construct(byte[] data, byte[] header) throws
CHKVerifyException {
+ try {
+ return new CHKBlock(data, header, null, true,
Key.ALGO_AES_PCFB_256_SHA256);
+ } catch (CHKVerifyException e) {
+ // FIXME remove back compatibility code
+ return new CHKBlock(data, header, null, true,
Key.ALGO_INSECURE_AES_PCFB_256_SHA256);
+ }
+ }
+
public CHKBlock(byte[] data2, byte[] header2, NodeCHK key) throws
CHKVerifyException {
this(data2, header2, key, key.cryptoAlgorithm);
}
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-01-27
17:31:14 UTC (rev 11625)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-01-27
18:27:03 UTC (rev 11626)
@@ -32,6 +32,7 @@
import freenet.crypt.RandomSource;
import freenet.keys.CHKBlock;
import freenet.keys.CHKVerifyException;
+import freenet.keys.Key;
import freenet.keys.KeyBlock;
import freenet.keys.NodeCHK;
import freenet.keys.NodeSSK;
@@ -1078,7 +1079,7 @@
byte[] routingkey = null;
if(type == TYPE_CHK) {
try {
- CHKBlock chk = new
CHKBlock(data, header, null);
+ CHKBlock chk =
CHKBlock.construct(data, header);
routingkey =
chk.getKey().getRoutingKey();
} catch (CHKVerifyException e) {
String err = "Bogus key
at slot "+l+" : "+e+" - lost block "+l;