diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java index cf1b94c4c7fe0b94d98b98e36004eece16b29306..c71f8b6a65fdfdc05b5e9c6e14099d45cf8e0a00 100644 --- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java +++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java @@ -1389,12 +1389,12 @@ public class ProfileOrganizer { * @return 0-3 */ private int getSubTier(Hash peer, Hash randomKey) { - // input is first 36 bytes; output is last 32 bytes - byte[] data = new byte[Hash.HASH_LENGTH + 4 + Hash.HASH_LENGTH]; - System.arraycopy(peer.getData(), 0, data, 0, Hash.HASH_LENGTH); - System.arraycopy(randomKey.getData(), 0, data, Hash.HASH_LENGTH, 4); - _context.sha().calculateHash(data, 0, Hash.HASH_LENGTH + 4, data, Hash.HASH_LENGTH + 4); - return data[Hash.HASH_LENGTH + 4] & 0x03; + // input is first 64 bytes; output is last 32 bytes + byte[] data = new byte[96]; + System.arraycopy(peer.getData(), 0, data, 0, 32); + System.arraycopy(randomKey.getData(), 0, data, 32, 32); + _context.sha().calculateHash(data, 0, 64, data, 64); + return data[64] & 0x03; } public boolean isSelectable(Hash peer) {