Author: j16sdiz
Date: 2008-05-04 13:14:39 +0000 (Sun, 04 May 2008)
New Revision: 19741
Modified:
branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
Log:
use SHA-256 for digested key
Modified:
branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
2008-05-04 13:14:19 UTC (rev 19740)
+++
branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
2008-05-04 13:14:39 UTC (rev 19741)
@@ -9,6 +9,7 @@
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
+import java.security.MessageDigest;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.HashMap;
@@ -17,6 +18,7 @@
import freenet.crypt.Digest;
import freenet.crypt.SHA1;
+import freenet.crypt.SHA256;
import freenet.keys.KeyVerifyException;
import freenet.node.SemiOrderedShutdownHook;
import freenet.support.HexUtil;
@@ -824,19 +826,18 @@
*/
// TODO use a little cache?
private byte[] getDigestedRoutingKey(byte[] routingKey) {
- Digest digest = SHA1.getInstance();
- digest.update(routingKey);
- digest.update(salt);
+ MessageDigest digest = SHA256.getMessageDigest();
+ try {
+ digest.update(routingKey);
+ digest.update(salt);
- byte[] digestedKey = digest.digest();
- byte[] hashedRoutingKey = new byte[0x20];
+ byte[] hashedRoutingKey = digest.digest();
+ assert hashedRoutingKey.length == 0x20;
- // SHA-1 is only 160-bits, must fill something on lower order
bytes
- System.arraycopy(digestedKey, 0, //
- hashedRoutingKey, hashedRoutingKey.length -
digestedKey.length,//
- digestedKey.length);
-
- return hashedRoutingKey;
+ return hashedRoutingKey;
+ } finally {
+ SHA256.returnMessageDigest(digest);
+ }
}
/**
@@ -847,7 +848,7 @@
* @return
*/
public long getOffsetFromPlainKey(byte[] plainKey, long storeSize) {
- return getOffsetFromPlainKey(getDigestedRoutingKey(plainKey),
storeSize);
+ return
getOffsetFromDigestedKey(getDigestedRoutingKey(plainKey), storeSize);
}
/**