forked from I2P_Developers/i2p.i2p
Router: Replace random tunnel keys when rekeying
This commit is contained in:
@ -114,8 +114,8 @@ public class Router implements RouterClock.ClockShiftListener {
|
||||
public final static String PROP_DYNAMIC_KEYS = "router.dynamicKeys";
|
||||
/** deprecated, use gracefulShutdownInProgress() */
|
||||
private final static String PROP_SHUTDOWN_IN_PROGRESS = "__shutdownInProgress";
|
||||
private static final String PROP_IB_RANDOM_KEY = TunnelPoolSettings.PREFIX_INBOUND_EXPLORATORY + TunnelPoolSettings.PROP_RANDOM_KEY;
|
||||
private static final String PROP_OB_RANDOM_KEY = TunnelPoolSettings.PREFIX_OUTBOUND_EXPLORATORY + TunnelPoolSettings.PROP_RANDOM_KEY;
|
||||
public static final String PROP_IB_RANDOM_KEY = TunnelPoolSettings.PREFIX_INBOUND_EXPLORATORY + TunnelPoolSettings.PROP_RANDOM_KEY;
|
||||
public static final String PROP_OB_RANDOM_KEY = TunnelPoolSettings.PREFIX_OUTBOUND_EXPLORATORY + TunnelPoolSettings.PROP_RANDOM_KEY;
|
||||
private final static String DNS_CACHE_TIME = "" + (5*60);
|
||||
private static final String EVENTLOG = "eventlog.txt";
|
||||
private static final String PROP_JBIGI = "jbigi.loadedResource";
|
||||
@ -621,6 +621,7 @@ public class Router implements RouterClock.ClockShiftListener {
|
||||
|
||||
synchronized(_configFileLock) {
|
||||
// persistent key for peer ordering since 0.9.17
|
||||
// These will be replaced in CreateRouterInfoJob if we rekey
|
||||
if (!_config.containsKey(PROP_IB_RANDOM_KEY)) {
|
||||
byte rk[] = new byte[32];
|
||||
_context.random().nextBytes(rk);
|
||||
|
@ -13,9 +13,12 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.security.GeneralSecurityException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.i2p.crypto.SigType;
|
||||
import net.i2p.data.Base64;
|
||||
import net.i2p.data.Certificate;
|
||||
import net.i2p.data.DataFormatException;
|
||||
import net.i2p.data.DataHelper;
|
||||
@ -144,6 +147,15 @@ public class CreateRouterInfoJob extends JobImpl {
|
||||
privkey, signingPrivKey, padding);
|
||||
pkf.write();
|
||||
|
||||
// set or overwrite old random keys
|
||||
Map<String, String> map = new HashMap<String, String>(2);
|
||||
byte rk[] = new byte[32];
|
||||
getContext().random().nextBytes(rk);
|
||||
map.put(Router.PROP_IB_RANDOM_KEY, Base64.encode(rk));
|
||||
getContext().random().nextBytes(rk);
|
||||
map.put(Router.PROP_OB_RANDOM_KEY, Base64.encode(rk));
|
||||
getContext().router().saveConfig(map, null);
|
||||
|
||||
getContext().keyManager().setKeys(pubkey, privkey, signingPubKey, signingPrivKey);
|
||||
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
|
Reference in New Issue
Block a user