Changeset d6a53cc for core


Ignore:
Timestamp:
Mar 9, 2019 11:47:03 AM (15 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
5d389c8
Parents:
409207e0
Message:

Data: Consolidate offline key check
i2ptunnel: Prevent registration auth if key offline

Location:
core/java/src/net/i2p
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/client/impl/I2PSessionImpl.java

    r409207e0 rd6a53cc  
    578578        _signingPrivateKey = new SigningPrivateKey(dtype);
    579579        _signingPrivateKey.readBytes(destKeyStream);
    580         if (isOffline(_signingPrivateKey)) {
     580        if (_signingPrivateKey.isOffline()) {
    581581            _offlineExpiration = DataHelper.readLong(destKeyStream, 4) * 1000;;
    582582            int itype = (int) DataHelper.readLong(destKeyStream, 2);
     
    592592            _signingPrivateKey.readBytes(destKeyStream);
    593593        }
    594     }
    595 
    596     /**
    597      *  Constant time
    598      *  @since 0.9.38
    599      */
    600     private static boolean isOffline(SigningPrivateKey spk) {
    601         byte b = 0;
    602         byte[] data = spk.getData();
    603         for (int i = 0; i < data.length; i++) {
    604             b |= data[i];
    605         }
    606         return b == 0;
    607594    }
    608595
  • core/java/src/net/i2p/data/PrivateKeyFile.java

    r409207e0 rd6a53cc  
    622622
    623623    /**
    624      *  Constant time
    625      *  @since 0.9.38
    626      */
    627     private static boolean isOffline(SigningPrivateKey spk) {
    628         byte b = 0;
    629         byte[] data = spk.getData();
    630         for (int i = 0; i < data.length; i++) {
    631             b |= data[i];
    632         }
    633         return b == 0;
    634     }
    635 
    636     /**
    637624     *  Does this session have offline and transient keys?
    638625     *  @since 0.9.38
     
    647634     */
    648635    public void setOfflineData(long expires, SigningPublicKey transientPub, Signature sig, SigningPrivateKey transientPriv) {
    649         if (!isOffline(signingPrivKey)) {
     636        if (!signingPrivKey.isOffline()) {
    650637            SigType type = getSigningPrivKey().getType();
    651638            byte[] dbytes = new byte[type.getPrivkeyLen()];
  • core/java/src/net/i2p/data/SigningPrivateKey.java

    r409207e0 rd6a53cc  
    102102
    103103    /**
     104     *  Constant time
     105     *  @return true if all zeros
     106     *  @since 0.9.39 moved from PrivateKeyFile
     107     */
     108    public boolean isOffline() {
     109        if (_data == null)
     110            return true;
     111        byte b = 0;
     112        for (int i = 0; i < _data.length; i++) {
     113            b |= _data[i];
     114        }
     115        return b == 0;
     116    }
     117
     118    /**
    104119     *  @since 0.9.8
    105120     */
Note: See TracChangeset for help on using the changeset viewer.