NTCP: More NTCP1 removal cleanup

This commit is contained in:
zzz
2021-04-20 08:50:00 -04:00
parent 388bac5aae
commit 23b704960d
2 changed files with 18 additions and 74 deletions

View File

@@ -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;
//}
}
}
}

View File

@@ -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;
}