diff --git a/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java b/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java index 824b95452ff189f228c4da86f2ee7a6949638f3f..798db55cae23f6887381d52bd3d7fcd1ef230750 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java +++ b/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java @@ -141,7 +141,7 @@ class InboundEstablishState extends EstablishBase implements NTCP2Payload.Payloa } if (_state == State.IB_INIT && src.hasRemaining()) { int remaining = src.remaining(); - if (_transport.isNTCP2Enabled()) { + if (remaining + _received < MSG1_SIZE) { // Less than 64 total received, so we defer the NTCP 1 or 2 decision. // Buffer in _X. @@ -162,7 +162,7 @@ class InboundEstablishState extends EstablishBase implements NTCP2Payload.Payloa // releaseBufs() will return the unused DH return; //} - } + } } diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java index 06682d64bddfeb555018c340be8bb29261132494..acdf4c12bac8e65a257f4c1fa1604865df7980d0 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java @@ -112,7 +112,6 @@ public class NTCPTransport extends TransportImpl { public static final String PROP_BIND_INTERFACE = "i2np.ntcp.bindInterface"; private final NTCPSendFinisher _finisher; - private final DHSessionKeyBuilder.Factory _dhFactory; private final X25519KeyFactory _xdhFactory; private long _lastBadSkew; private static final long[] RATES = { 10*60*1000 }; @@ -138,8 +137,6 @@ public class NTCPTransport extends TransportImpl { private static final int NTCP2_KEY_LEN = OutboundNTCP2State.KEY_SIZE; private static final long MIN_DOWNTIME_TO_REKEY = 30*24*60*60*1000L; private static final long MIN_DOWNTIME_TO_REKEY_HIDDEN = 24*60*60*1000L; - private final boolean _enableNTCP1; - private final boolean _enableNTCP2; private final byte[] _ntcp2StaticPubkey; private final byte[] _ntcp2StaticPrivkey; private final byte[] _ntcp2StaticIV; @@ -147,12 +144,11 @@ public class NTCPTransport extends TransportImpl { private final String _b64Ntcp2StaticIV; /** - * @param dh null to disable NTCP1 + * @param dh unused, ignored * @param xdh null to disable NTCP2 */ public NTCPTransport(RouterContext ctx, DHSessionKeyBuilder.Factory dh, X25519KeyFactory xdh) { super(ctx); - _dhFactory = dh; _xdhFactory = xdh; _log = ctx.logManager().getLog(getClass()); @@ -242,11 +238,9 @@ public class NTCPTransport extends TransportImpl { _transientFail = new SharedBid(TransportBid.TRANSIENT_FAIL); setupPort(); - _enableNTCP1 = dh != null; - _enableNTCP2 = xdh != null; - if (!_enableNTCP1 && !_enableNTCP2) + if (xdh == null) throw new IllegalArgumentException(); - if (_enableNTCP2) { + boolean shouldSave = false; byte[] priv = null; byte[] iv = null; @@ -295,13 +289,7 @@ public class NTCPTransport extends TransportImpl { _ntcp2StaticIV = iv; _b64Ntcp2StaticPubkey = Base64.encode(_ntcp2StaticPubkey); _b64Ntcp2StaticIV = b64IV; - } else { - _ntcp2StaticPubkey = null; - _ntcp2StaticPrivkey = null; - _ntcp2StaticIV = null; - _b64Ntcp2StaticPubkey = null; - _b64Ntcp2StaticIV = null; - } + } /** @@ -880,10 +868,10 @@ public class NTCPTransport extends TransportImpl { } else if (skipv4) { setOutboundNTCP2Address(false); } - } else if (_enableNTCP2) { + } else { setOutboundNTCP2Address(); } - } else if (_enableNTCP2) { + } else { setOutboundNTCP2Address(); } // TransportManager.startListening() calls router.rebuildRouterInfo() @@ -1119,26 +1107,26 @@ public class NTCPTransport extends TransportImpl { net.i2p.router.transport.ntcp.Writer getWriter() { return _writer; } /** - * @return always "NTCP" even if NTCP1 is disabled + * @return always "NTCP" */ public String getStyle() { return STYLE; } /** - * An alternate supported style, or null. - * @return "NTCP2" or null + * An alternate supported style + * @return "NTCP2" always * @since 0.9.35 */ @Override public String getAltStyle() { - return _enableNTCP2 ? STYLE2 : null; + return STYLE2; } /** - * @return "NTCP" if NTCP1 is enabled, else "NTCP2" + * @return "NTCP2" always * @since 0.9.39 */ private String getPublishStyle() { - return _enableNTCP1 ? STYLE : STYLE2; + return STYLE2; } /** @@ -1146,14 +1134,6 @@ public class NTCPTransport extends TransportImpl { */ EventPumper getPumper() { return _pumper; } - /** - * @return null if not configured for NTCP1 - * @since 0.9 - */ - DHSessionKeyBuilder getDHBuilder() { - return _dhFactory != null ? _dhFactory.getBuilder() : null; - } - /** * @return null if not configured for NTCP2 * @since 0.9.36 @@ -1162,18 +1142,6 @@ public class NTCPTransport extends TransportImpl { return _xdhFactory; } - /** - * Return an unused DH key builder - * to be put back onto the queue for reuse. - * - * @param builder must not have a peerPublicValue set - * @since 0.9.16 - */ - void returnUnused(DHSessionKeyBuilder builder) { - if (_dhFactory != null) - _dhFactory.returnUnused(builder); - } - /** * how long from initial connection attempt (accept() or connect()) until * the con must be established to avoid premature close()ing @@ -1275,8 +1243,6 @@ public class NTCPTransport extends TransportImpl { * @since 0.9.35 */ private void addNTCP2Options(Properties props) { - if (!_enableNTCP2) - return; // only set i if we are not firewalled if (props.containsKey("host")) { props.setProperty("i", _b64Ntcp2StaticIV); @@ -1296,20 +1262,6 @@ public class NTCPTransport extends TransportImpl { props.setProperty("v", NTCP2_VERSION); } - /** - * Is NTCP1 enabled? - * - * @since 0.9.39 - */ - boolean isNTCP1Enabled() { return _enableNTCP1; } - - /** - * Is NTCP2 enabled? - * - * @since 0.9.35 - */ - boolean isNTCP2Enabled() { return _enableNTCP2; } - /** * The static priv key * @@ -1348,12 +1300,8 @@ public class NTCPTransport extends TransportImpl { int rv; String style = addr.getTransportStyle(); if (style.equals(STYLE)) { - if (!_enableNTCP2) - return 1; rv = 1; } else if (style.equals(STYLE2)) { - if (!_enableNTCP2) - return 0; rv = NTCP2_INT_VERSION; } else { return 0; @@ -1366,7 +1314,7 @@ public class NTCPTransport extends TransportImpl { addr.getOption("s") == null || (!v.equals(NTCP2_VERSION) && !v.startsWith(NTCP2_VERSION_ALT))) { // his address is NTCP1 or is outbound NTCP2 only - return (rv == 1 && _enableNTCP1) ? 1 : 0; + return 0; } // his address is NTCP2 // do not validate the s/i b64, we will just catch it later @@ -1690,13 +1638,9 @@ public class NTCPTransport extends TransportImpl { // we are still firewalled (SW firewall, bad UPnP indication, etc.) if (_log.shouldLog(Log.INFO)) _log.info("old host: " + ohost + " config: " + name + " new: null"); - if (_enableNTCP2) { - // addNTCP2Options() called below - newProps.clear(); - newAddr = new RouterAddress(STYLE2, newProps, NTCP2_OUTBOUND_COST); - } else { - newAddr = null; - } + // addNTCP2Options() called below + newProps.clear(); + newAddr = new RouterAddress(STYLE2, newProps, NTCP2_OUTBOUND_COST); changed = true; }