From a3fe7467c3dac2a68bb459b6e508eae130d21b87 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 29 May 2019 11:53:55 +0000 Subject: [PATCH] store ls secret as b64 --- .../java/src/net/i2p/i2ptunnel/ui/GeneralHelper.java | 8 +++++++- .../java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java | 2 +- .../i2p/client/impl/RequestLeaseSetMessageHandler.java | 4 +++- .../net/i2p/router/client/ClientMessageEventListener.java | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/GeneralHelper.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/GeneralHelper.java index 6e3f163f8a..fd8e3e3459 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/GeneralHelper.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/GeneralHelper.java @@ -14,6 +14,7 @@ import net.i2p.I2PAppContext; import net.i2p.I2PException; import net.i2p.client.I2PClient; import net.i2p.crypto.SigType; +import net.i2p.data.Base64; import net.i2p.data.DataHelper; import net.i2p.data.Destination; import net.i2p.data.Hash; @@ -596,7 +597,12 @@ public class GeneralHelper { * @since 0.9.40 */ public String getBlindedPassword(int tunnel) { - return getProperty(tunnel, "i2cp.leaseSetSecret", ""); + String rv = getProperty(tunnel, "i2cp.leaseSetSecret", null); + if (rv != null) + rv = DataHelper.getUTF8(Base64.decode(rv)); + if (rv == null) + rv = ""; + return rv; } /** diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java index e14c39265f..8f8a92f3a5 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java @@ -277,7 +277,7 @@ public class TunnelConfig { /** @since 0.9.40 */ public void setBlindedPassword(String s) { if (s != null && s.length() > 0) - _otherOptions.put("i2cp.leaseSetSecret", s); + _otherOptions.put("i2cp.leaseSetSecret", Base64.encode(DataHelper.getUTF8(s.trim()))); else _otherOptions.remove("i2cp.leaseSetSecret"); } diff --git a/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java b/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java index 9ddced8281..c07ba83553 100644 --- a/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java +++ b/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java @@ -132,8 +132,10 @@ class RequestLeaseSetMessageHandler extends HandlerImpl { } else if (_ls2Type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) { EncryptedLeaseSet encls2 = new EncryptedLeaseSet(); String secret = session.getOptions().getProperty(PROP_SECRET); - if (secret != null) + if (secret != null) { + secret = DataHelper.getUTF8(Base64.decode(secret)); encls2.setSecret(secret); + } leaseSet = encls2; } else if (_ls2Type == DatabaseEntry.KEY_TYPE_META_LS2) { leaseSet = new MetaLeaseSet(); diff --git a/router/java/src/net/i2p/router/client/ClientMessageEventListener.java b/router/java/src/net/i2p/router/client/ClientMessageEventListener.java index f0f0237836..dbaafb4a96 100644 --- a/router/java/src/net/i2p/router/client/ClientMessageEventListener.java +++ b/router/java/src/net/i2p/router/client/ClientMessageEventListener.java @@ -655,6 +655,7 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi String secret = cfg.getOptions().getProperty("i2cp.leaseSetSecret"); if (secret != null) { EncryptedLeaseSet encls = (EncryptedLeaseSet) ls; + secret = DataHelper.getUTF8(Base64.decode(secret)); encls.setSecret(secret); } }