diff --git a/history.txt b/history.txt index a056e016c4..60401f0f0a 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,19 @@ +2018-06-19 zzz + * SSU: Set volatile on field (ticket #2260) + +2018-06-17 zzz + * NTCP: Log and fail messages on outbound queue overflow + +2018-06-16 zzz + * GeoIP: Don't log error when reading to the end + of the geoipv6.dat file + +2018-06-15 zzz + * i2ptunnel: Add new irc server + * SusiMail: CSS fixes (ticket #2242) + 2018-06-13 zzz + * Console: po-update * NTCP: Fix clearing of write interest ops on inbound establishment (ticket #2237) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 78754ef283..601535dbe6 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 20; + public final static long BUILD = 21; /** for example "-test" */ public final static String EXTRA = "-rc"; diff --git a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java index 509d749429..dd108bdb37 100644 --- a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java +++ b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java @@ -180,7 +180,11 @@ class InboundEstablishState { */ public synchronized void generateSessionKey() throws DHSessionKeyBuilder.InvalidPublicParameterException { if (_sessionKey != null) return; - _keyBuilder.setPeerPublicValue(_receivedX); + try { + _keyBuilder.setPeerPublicValue(_receivedX); + } catch (IllegalStateException ise) { + throw new DHSessionKeyBuilder.InvalidPublicParameterException("reused keys?", ise); + } _sessionKey = _keyBuilder.getSessionKey(); ByteArray extra = _keyBuilder.getExtraBytes(); _macKey = new SessionKey(new byte[SessionKey.KEYSIZE_BYTES]); diff --git a/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java b/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java index 918033dc88..80932a7009 100644 --- a/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java +++ b/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java @@ -383,7 +383,11 @@ class OutboundEstablishState { if (_sessionKey != null) return; if (_keyBuilder == null) throw new DHSessionKeyBuilder.InvalidPublicParameterException("Illegal state - never generated a key builder"); - _keyBuilder.setPeerPublicValue(_receivedY); + try { + _keyBuilder.setPeerPublicValue(_receivedY); + } catch (IllegalStateException ise) { + throw new DHSessionKeyBuilder.InvalidPublicParameterException("reused keys?", ise); + } _sessionKey = _keyBuilder.getSessionKey(); ByteArray extra = _keyBuilder.getExtraBytes(); _macKey = new SessionKey(new byte[SessionKey.KEYSIZE_BYTES]);