From 045627a5839f7c36a49a95ce12802356b3a2b5c2 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 16 Mar 2012 12:17:07 +0000 Subject: [PATCH] throw ISE on attempt to change peer value --- .../i2p/router/transport/crypto/DHSessionKeyBuilder.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java b/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java index 930078ba0f..06b4727ab5 100644 --- a/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java +++ b/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java @@ -198,9 +198,14 @@ public class DHSessionKeyBuilder { /** * Specify the value given by the peer for use in the session key negotiation - * + * @throws IllegalStateException if already set */ - public void setPeerPublicValue(BigInteger peerVal) throws InvalidPublicParameterException { + public synchronized void setPeerPublicValue(BigInteger peerVal) throws InvalidPublicParameterException { + if (_peerValue != null) { + if (!_peerValue.equals(peerVal)) + throw new IllegalStateException(); + return; + } validatePublic(peerVal); _peerValue = peerVal; } -- GitLab