diff --git a/installer/resources/checklist.md b/installer/resources/checklist.md index 36cdecae873edcebfac6826242b0cbededff9114..142acf32cd46fca8bb8db37339c82527c1a71397 100644 --- a/installer/resources/checklist.md +++ b/installer/resources/checklist.md @@ -131,7 +131,7 @@ ### Build and test -1. `ant release` +1. `ant release` or `ant releaseWithGeoIP` or `ant releaseWithJbigi` - Copy i2pinstall_${release.number}_windows.exe, console.ico, ../lib/izpack/rh.bat, and ../lib/izpack/VersionInfo_template.rc diff --git a/router/java/src/net/i2p/router/LeaseSetKeys.java b/router/java/src/net/i2p/router/LeaseSetKeys.java index ac623c05e78009ecf80f7f7b059d72b5c4fda911..559a0b65f6bb24aa43660e3f2b1de6896b2c831a 100644 --- a/router/java/src/net/i2p/router/LeaseSetKeys.java +++ b/router/java/src/net/i2p/router/LeaseSetKeys.java @@ -62,10 +62,12 @@ public class LeaseSetKeys { * * @param dest unused * @param revocationKey unused, may be null - * @param decryptionKeys non-null + * @param decryptionKeys non-null, non-empty * @since 0.9.44 */ public LeaseSetKeys(Destination dest, SigningPrivateKey revocationKey, List<PrivateKey> decryptionKeys) { + if (decryptionKeys.isEmpty()) + throw new IllegalArgumentException("no keys"); _revocationKey = revocationKey; PrivateKey elg = null; PrivateKey ec = null; diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java index a7dd7b13e678b62a703b8f931bdd6e63f786b52b..5c6f3ddbd19027d6c99487456624f3cf36693131 100644 --- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java +++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java @@ -602,12 +602,12 @@ class ClientConnectionRunner { hasElg = true; } if (hasElg) { + TransientSessionKeyManager tskm = new TransientSessionKeyManager(_context, tags, thresh); if (hasEC) { - TransientSessionKeyManager tskm = new TransientSessionKeyManager(_context, tags, thresh); RatchetSKM rskm = new RatchetSKM(_context); _sessionKeyManager = new MuxedSKM(tskm, rskm); } else { - _sessionKeyManager = new TransientSessionKeyManager(_context, tags, thresh); + _sessionKeyManager = tskm; } } else { if (hasEC) { diff --git a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java index 539b4a41b98db1ab8416984f54578f540b3f5c44..948b80c2e598911bf45d3ede8d1799dc4ab53f88 100644 --- a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java +++ b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java @@ -40,19 +40,13 @@ public class RatchetSessionTag { } /** - * We assume the data has enough randomness in it, so use the first 4 bytes for speed. - * If this is not the case, override in the extending class. + * We assume the data has enough randomness in it, so use 4 bytes for speed. */ @Override public int hashCode() { return (int) _data; } - /** - * Warning - this returns true for two different classes with the same size - * and same data, e.g. SessionKey and SessionTag, but you wouldn't - * put them in the same Set, would you? - */ @Override public boolean equals(Object obj) { if (obj == this) return true;