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;


Reply via email to