Changeset 5ed953e


Ignore:
Timestamp:
Jun 7, 2019 7:50:56 PM (10 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
2c24a68
Parents:
1a200a1
Message:

NetDB: Fix NPE on failed decrypt of enc. ls2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java

    r1a200a1 r5ed953e  
    12121212                LeaseSet ls = (LeaseSet) entry;
    12131213                Destination d = ls.getDestination();
    1214                 Certificate c = d.getCertificate();
    1215                 if (c.getCertificateType() == Certificate.CERTIFICATE_TYPE_KEY) {
    1216                     try {
    1217                         KeyCertificate kc = c.toKeyCertificate();
    1218                         SigType type = kc.getSigType();
    1219                         if (type == null || !type.isAvailable() || type.getBaseAlgorithm() == SigAlgo.RSA) {
    1220                             failPermanently(d);
    1221                             String stype = (type != null) ? type.toString() : Integer.toString(kc.getSigTypeCode());
    1222                             if (_log.shouldLog(Log.WARN))
    1223                                 _log.warn("Unsupported sig type " + stype + " for destination " + h);
    1224                             throw new UnsupportedCryptoException("Sig type " + stype);
    1225                         }
    1226                     } catch (DataFormatException dfe) {}
     1214                // will be null for encrypted LS
     1215                if (d != null) {
     1216                    Certificate c = d.getCertificate();
     1217                    if (c.getCertificateType() == Certificate.CERTIFICATE_TYPE_KEY) {
     1218                        try {
     1219                            KeyCertificate kc = c.toKeyCertificate();
     1220                            SigType type = kc.getSigType();
     1221                            if (type == null || !type.isAvailable() || type.getBaseAlgorithm() == SigAlgo.RSA) {
     1222                                failPermanently(d);
     1223                                String stype = (type != null) ? type.toString() : Integer.toString(kc.getSigTypeCode());
     1224                                if (_log.shouldLog(Log.WARN))
     1225                                    _log.warn("Unsupported sig type " + stype + " for destination " + h);
     1226                                throw new UnsupportedCryptoException("Sig type " + stype);
     1227                            }
     1228                        } catch (DataFormatException dfe) {}
     1229                    }
    12271230                }
    12281231            } else if (etype == DatabaseEntry.KEY_TYPE_ROUTERINFO) {
Note: See TracChangeset for help on using the changeset viewer.