Changeset 040e092


Ignore:
Timestamp:
May 29, 2019 7:08:33 PM (11 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
16ac93c
Parents:
098bde2
Message:

Blinding:

  • Fix bugs with lookup password
  • Log tweaks
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/jsp/editServer.jsi

    r098bde2 r040e092  
    524524                        if (!clientAuths.isEmpty()) {
    525525%>
    526         <tr><td><b><%=intl._t("Revoke?")%>&nbsp;&nbsp;&nbsp;&nbsp;<%=intl._t("Client Name")%></b></td><td><b><%=intl._t("Client Key")%></b></td></tr>
     526        <tr><td><b><%=intl._t("Revoke")%>&nbsp;&nbsp;&nbsp;&nbsp;<%=intl._t("Client Name")%></b></td><td><b><%=intl._t("Client Key")%></b></td></tr>
    527527<%
    528528                            int i = 0;
     
    553553                        } // isEmpty
    554554%>
    555         <tr><td><b><%=intl._t("Add?")%>&nbsp;&nbsp;&nbsp;&nbsp;<%=intl._t("Client Name")%></b></td><td>
     555        <tr><td><b><%=intl._t("Add")%>&nbsp;&nbsp;&nbsp;&nbsp;<%=intl._t("Client Name")%></b></td><td>
    556556<%
    557557                            if (dhClient) {
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java

    r098bde2 r040e092  
    154154                    }
    155155                    if (bdold != null) {
    156                         // debug
    157                         addFormNotice("already cached: " + bdold);
     156                        if (_log.shouldDebug())
     157                            _log.debug("already cached: " + bdold);
    158158                    }
    159159                    try {
  • core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java

    r098bde2 r040e092  
    131131                leaseSet = new LeaseSet2();
    132132            } else if (_ls2Type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
    133                 EncryptedLeaseSet encls2 = new EncryptedLeaseSet();
    134                 String secret = session.getOptions().getProperty(PROP_SECRET);
    135                 if (secret != null) {
    136                     secret = DataHelper.getUTF8(Base64.decode(secret));
    137                     encls2.setSecret(secret);
    138                 }
    139                 leaseSet = encls2;
     133                leaseSet = new EncryptedLeaseSet();
    140134            } else if (_ls2Type == DatabaseEntry.KEY_TYPE_META_LS2) {
    141135                leaseSet = new MetaLeaseSet();
     
    175169     */
    176170    protected synchronized void signLeaseSet(LeaseSet leaseSet, boolean isLS2, I2PSessionImpl session) {
     171        // must be before setDestination()
     172        if (isLS2 && _ls2Type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
     173            String secret = session.getOptions().getProperty(PROP_SECRET);
     174            if (secret != null) {
     175                EncryptedLeaseSet encls2 = (EncryptedLeaseSet) leaseSet;
     176                secret = DataHelper.getUTF8(Base64.decode(secret));
     177                encls2.setSecret(secret);
     178            }
     179        }
    177180        Destination dest = session.getMyDestination();
    178181        // also, if this session is connected to multiple routers, include other leases here
  • core/java/src/net/i2p/client/impl/RequestVariableLeaseSetMessageHandler.java

    r098bde2 r040e092  
    5959            leaseSet = new LeaseSet();
    6060        }
    61         // Full Meta and Encrypted support TODO
     61        // Full Meta support TODO
    6262        for (int i = 0; i < msg.getEndpoints(); i++) {
    6363            Lease lease;
  • core/java/src/net/i2p/crypto/Blinding.java

    r098bde2 r040e092  
    328328        I2PAppContext ctx = I2PAppContext.getGlobalContext();
    329329        //String b32 = encode(pub, null);
    330         String b32 = encode(pub, "foobarbaz");
     330        String b32 = encode(pub, true, false);
    331331        System.out.println("pub b32 is " + b32);
    332332        BlindData bd = decode(ctx, b32);
  • core/java/src/net/i2p/data/EncryptedLeaseSet.java

    r098bde2 r040e092  
    4343    private PrivateKey _clientPrivateKey;
    4444    private final Log _log;
     45    // debug
     46    private int _authType, _numKeys;
    4547
    4648    private static final int MIN_ENCRYPTED_SIZE = 8 + 16;
     
    7577    /**
    7678     *  Must be set before sign or verify.
     79     *  Must be called before setDestination() or setSigningKey(), or alpha will be wrong.
    7780     *
    7881     *  @param secret null or "" for none (default)
     
    8083     */
    8184    public void setSecret(String secret) {
     85        if (_signingKey != null && !DataHelper.eq(secret, _secret)) {
     86            if (_log.shouldWarn())
     87                _log.warn("setSecret() after setSigningKey()" +
     88                          " was: " + _secret + " now: " + secret);
     89        }
    8290        _secret = secret;
    8391    }
     
    129137
    130138    /**
    131      * Overridden to set the blinded key
     139     * Overridden to set the blinded key.
     140     * setSecret() MUST be called before this for non-null secret, or alpha will be wrong.
    132141     *
    133142     * @param dest non-null, must be EdDSA_SHA512_Ed25519 or RedDSA_SHA512_Ed25519
     
    148157
    149158    /**
    150      * Overridden to set the blinded key
     159     * Overridden to set the blinded key.
     160     * setSecret() MUST be called before this for non-null secret, or alpha will be wrong.
    151161     *
    152162     * @param spk unblinded key non-null, must be EdDSA_SHA512_Ed25519 or RedDSA_SHA512_Ed25519
     
    157167    @Override
    158168    public void setSigningKey(SigningPublicKey spk) {
    159         // TODO already-set checks
    160169        SigType type = spk.getType();
    161170        if (type != SigType.EdDSA_SHA512_Ed25519 &&
     
    193202            _log.debug("Blind:" +
    194203                       "\norig:    " + spk +
     204                       "\nsecret:  " + _secret +
    195205                       "\nalpha:   " + _alpha +
    196206                       "\nblinded: " + rv);
     
    416426        byte[] iv = new byte[32];
    417427        int authLen;
     428        _authType = authType;  // debug
    418429        if (authType == BlindData.AUTH_NONE) {
    419430            authLen = 1;
     
    422433            if (clientKeys == null || clientKeys.isEmpty())
    423434                throw new IllegalArgumentException("No client keys provided");
     435            _numKeys = clientKeys.size();  // debug
    424436            authLen = 1 + SALT_LEN + 2 + (clientKeys.size() * CLIENT_LEN);
    425437        } else {
     
    610622
    611623        int authType = plaintext[0] & 0x0f;
     624        _authType = authType;  // debug
    612625        int authLen;
    613626        if (authType == BlindData.AUTH_NONE) {
     
    623636            System.arraycopy(plaintext, 1, seed, 0, 32);
    624637            int count = (int) DataHelper.fromLong(plaintext, 33, 2);
     638            _numKeys = count;  // debug
    625639            if (count == 0)
    626640                throw new DataFormatException("No client entries");
     
    949963        buf.append("\n\tPublished: ").append(new java.util.Date(_published));
    950964        buf.append("\n\tExpires: ").append(new java.util.Date(_expires));
     965        buf.append("\n\tAuth Type: ").append(_authType);
     966        buf.append("\n\tClient Keys: ").append(_numKeys);
    951967        if (_decryptedLS2 != null) {
     968            if (_secret != null)
     969                buf.append("\n\tSecret: ").append(_secret);
     970            if (_clientPrivateKey != null)
     971                buf.append("\n\tClient Private Key: ").append(_clientPrivateKey.toBase64());
    952972            buf.append("\n\tDecrypted LS:\n").append(_decryptedLS2);
    953973        } else if (_destination != null) {
  • history.txt

    r098bde2 r040e092  
     12019-05-29 zzz
     2 * I2CP: Fix bugs with lookup password
     3 * Util: Store save time in config files
     4
     52019-05-28 zzz
     6 * Console: Form handling on /configkeyring for LS2
     7
     82019-05-27 zzz
     9 * Console: Start rework of /configkeyring for LS2
     10
     112019-05-26 zzz
     12 * I2CP: Add per-client auth to generated leaseset
     13
    1142019-05-24 zzz
    215 * i2ptunnel:
  • router/java/src/net/i2p/router/RouterVersion.java

    r098bde2 r040e092  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 6;
     21    public final static long BUILD = 7;
    2222
    2323    /** for example "-test" */
  • router/java/src/net/i2p/router/client/ClientMessageEventListener.java

    r098bde2 r040e092  
    552552        if (type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
    553553            // so we can decrypt it
     554            // secret must be set before destination
     555            String secret = cfg.getOptions().getProperty("i2cp.leaseSetSecret");
     556            if (secret != null) {
     557                EncryptedLeaseSet encls = (EncryptedLeaseSet) ls;
     558                secret = DataHelper.getUTF8(Base64.decode(secret));
     559                encls.setSecret(secret);
     560            }
    554561            try {
    555562                ls.setDestination(dest);
     
    653660                    return;
    654661                }
    655                 String secret = cfg.getOptions().getProperty("i2cp.leaseSetSecret");
    656                 if (secret != null) {
    657                     EncryptedLeaseSet encls = (EncryptedLeaseSet) ls;
    658                     secret = DataHelper.getUTF8(Base64.decode(secret));
    659                     encls.setSecret(secret);
    660                 }
    661662            }
    662663            if (_log.shouldDebug())
  • router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java

    r098bde2 r040e092  
    947947                    _log.warn("Found blind data for encls: " + bd);
    948948                encls = (EncryptedLeaseSet) leaseSet;
     949                // secret must be set before destination
     950                String secret = bd.getSecret();
     951                if (secret != null)
     952                    encls.setSecret(secret);
    949953                Destination dest = bd.getDestination();
    950954                if (dest != null) {
     
    953957                    encls.setSigningKey(bd.getUnblindedPubKey());
    954958                }
    955                 // secret
    956                 String secret = bd.getSecret();
    957                 if (secret != null)
    958                     encls.setSecret(secret);
    959959                // per-client auth
    960960                if (bd.getAuthType() != BlindData.AUTH_NONE)
Note: See TracChangeset for help on using the changeset viewer.