diff --git a/core/java/src/net/i2p/crypto/CryptixAESEngine.java b/core/java/src/net/i2p/crypto/CryptixAESEngine.java index 9836e7c403ca10766359ff243829d5d19190f06f..25f6b1676c13e5aad4635719e2b9cb4b33741ac1 100644 --- a/core/java/src/net/i2p/crypto/CryptixAESEngine.java +++ b/core/java/src/net/i2p/crypto/CryptixAESEngine.java @@ -125,11 +125,17 @@ public class CryptixAESEngine extends AESEngine { } } + /** + * @param iv 16 bytes + */ @Override public void decrypt(byte payload[], int payloadIndex, byte out[], int outIndex, SessionKey sessionKey, byte iv[], int length) { decrypt(payload, payloadIndex, out, outIndex, sessionKey, iv, 0, length); } + /** + * @param iv 16 bytes starting at ivOffset + */ @Override public void decrypt(byte payload[], int payloadIndex, byte out[], int outIndex, SessionKey sessionKey, byte iv[], int ivOffset, int length) { if ((iv== null) || (payload == null) || (payload.length <= 0) || (sessionKey == null) ) diff --git a/core/java/src/net/i2p/data/SimpleDataStructure.java b/core/java/src/net/i2p/data/SimpleDataStructure.java index 0ef2afc7d7b8a969ab16c430fa2ee37dd3fd4c58..2084955b1fc5350ea4f2f6a63c025171f234b1d6 100644 --- a/core/java/src/net/i2p/data/SimpleDataStructure.java +++ b/core/java/src/net/i2p/data/SimpleDataStructure.java @@ -69,7 +69,7 @@ public abstract class SimpleDataStructure extends DataStructureImpl { if (_data != null) throw new RuntimeException("Data already set"); if (data != null && data.length != _length) - throw new IllegalArgumentException("Bad data length"); + throw new IllegalArgumentException("Bad data length: " + data.length + "; required: " + _length); _data = data; } @@ -141,7 +141,8 @@ public abstract class SimpleDataStructure extends DataStructureImpl { @Override public void fromByteArray(byte data[]) throws DataFormatException { if (data == null) throw new DataFormatException("Null data passed in"); - if (data.length != _length) throw new DataFormatException("Bad data length"); + if (data.length != _length) + throw new DataFormatException("Bad data length: " + data.length + "; required: " + _length); // call setData() instead of _data = data in case overridden setData(data); } diff --git a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java index 2fd0b26c07ff9792ec12f7ff11ab111d5a85bf5c..1c69076a1acbfec601f5cef1ac295fa444e8c73b 100644 --- a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java +++ b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java @@ -47,9 +47,10 @@ class InboundEndpointProcessor { public boolean retrievePreprocessedData(byte orig[], int offset, int length, Hash prev) { Hash last = _config.getPeer(_config.getLength()-2); if (!last.equals(prev)) { + // shouldn't happen now that we have good dup ID detection in BuildHandler if (_log.shouldLog(Log.ERROR)) - _log.error("Invalid previous peer - attempted hostile loop? from " + prev - + ", expected " + last); + _log.error("Attempted IBEP injection from " + prev + + ", expected " + last); return false; }