Changeset f61e7a1


Ignore:
Timestamp:
Sep 26, 2012 7:56:33 PM (9 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
86c7aa8
Parents:
567dae8
Message:
  • ConvertToHash?:
    • Add support for b64hash.i2p (output in jetty logs)
    • Cleanup and use cache
File:
1 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/util/ConvertToHash.java

    r567dae8 rf61e7a1  
    55import net.i2p.I2PAppContext;
    66import net.i2p.data.Base32;
     7import net.i2p.data.Base64;
    78import net.i2p.data.DataFormatException;
    89import net.i2p.data.Destination;
     
    1516 *    Base64 dest.i2p
    1617 *    Base64 Hash
     18 *    Base64 Hash.i2p
    1719 *    Base32 Hash
    1820 *    Base32 desthash.b32.i2p
     
    3133        if (peer == null)
    3234            return null;
    33         Hash h = new Hash();
    3435        String peerLC = peer.toLowerCase(Locale.US);
    3536        // b64 hash
    3637        if (peer.length() == 44 && !peerLC.endsWith(".i2p")) {
    37             try {
    38                 h.fromBase64(peer);
    39             } catch (DataFormatException dfe) {}
     38            byte[] b = Base64.decode(peer);
     39            if (b != null && b.length == Hash.HASH_LENGTH)
     40                return Hash.create(b);
     41        }
     42        // b64 hash.i2p
     43        if (peer.length() == 48 && peerLC.endsWith(".i2p")) {
     44            byte[] b = Base64.decode(peer.substring(0, 44));
     45            if (b != null && b.length == Hash.HASH_LENGTH)
     46                return Hash.create(b);
    4047        }
    4148        // b64 dest.i2p
    42         if (h.getData() == null && peer.length() >= 520 && peerLC.endsWith(".i2p")) {
     49        if (peer.length() >= 520 && peerLC.endsWith(".i2p")) {
    4350            try {
    4451                Destination d = new Destination();
    4552                d.fromBase64(peer.substring(0, peer.length() - 4));
    46                 h = d.calculateHash();
     53                return d.calculateHash();
    4754            } catch (DataFormatException dfe) {}
    4855        }
    4956        // b64 dest
    50         if (h.getData() == null && peer.length() >= 516 && !peerLC.endsWith(".i2p")) {
     57        if (peer.length() >= 516 && !peerLC.endsWith(".i2p")) {
    5158            try {
    5259                Destination d = new Destination();
    5360                d.fromBase64(peer);
    54                 h = d.calculateHash();
     61                return d.calculateHash();
    5562            } catch (DataFormatException dfe) {}
    5663        }
     
    5865        // do this here rather than in naming service so it will work
    5966        // even if the leaseset is not found
    60         if (h.getData() == null && peer.length() == 60 && peerLC.endsWith(".b32.i2p")) {
     67        if (peer.length() == 60 && peerLC.endsWith(".b32.i2p")) {
    6168            byte[] b = Base32.decode(peer.substring(0, 52));
    6269            if (b != null && b.length == Hash.HASH_LENGTH)
    63                 h.setData(b);
     70                return Hash.create(b);
    6471        }
    6572        // b32 hash
    66         if (h.getData() == null && peer.length() == 52 && !peerLC.endsWith(".i2p")) {
     73        if (peer.length() == 52 && !peerLC.endsWith(".i2p")) {
    6774            byte[] b = Base32.decode(peer);
    6875            if (b != null && b.length == Hash.HASH_LENGTH)
    69                 h.setData(b);
     76                return Hash.create(b);
    7077        }
    7178        // example.i2p
    72         if (h.getData() == null) {
    73             Destination d = I2PAppContext.getGlobalContext().namingService().lookup(peer);
    74             if (d != null)
    75                 h = d.calculateHash();
    76         }
    77         if (h.getData() == null)
    78             return null;
    79         return h;
     79        Destination d = I2PAppContext.getGlobalContext().namingService().lookup(peer);
     80        if (d != null)
     81            return d.calculateHash();
     82
     83        return null;
    8084    }
    8185}
Note: See TracChangeset for help on using the changeset viewer.