Package net.i2p.data

Class PublicKey

  • All Implemented Interfaces:
    Serializable, DataStructure

    public class PublicKey
    extends SimpleDataStructure
    Defines the PublicKey as defined by the I2P data structure spec. A public key is 256byte Integer. The public key represents only the exponent, not the primes, which are constant and defined in the crypto spec. As of release 0.9.38, keys of arbitrary length and type are supported. See EncType.
    Author:
    jrandom
    See Also:
    Serialized Form
    • Field Detail

      • KEYSIZE_BYTES

        public static final int KEYSIZE_BYTES
    • Constructor Detail

      • PublicKey

        public PublicKey()
      • PublicKey

        public PublicKey​(EncType type)
        Parameters:
        type - if null, type is unknown
        Since:
        0.9.38
      • PublicKey

        public PublicKey​(byte[] data)
        Parameters:
        data - must be non-null
      • PublicKey

        public PublicKey​(EncType type,
                         byte[] data)
        Parameters:
        type - if null, type is unknown
        data - must be non-null
        Since:
        0.9.38
      • PublicKey

        public PublicKey​(int typeCode,
                         byte[] data)
        Unknown type only.
        Parameters:
        typeCode - must not match a known type. 1-255
        data - must be non-null
        Since:
        0.9.38
      • PublicKey

        public PublicKey​(String base64Data)
                  throws DataFormatException
        Constructs from base64. ElGamal only.
        Parameters:
        base64Data - a string of base64 data (the output of .toBase64() called on a prior instance of PublicKey
        Throws:
        DataFormatException
    • Method Detail

      • create

        public static PublicKey create​(byte[] data,
                                       int off)
        Pull from cache or return new. Deprecated - used only by deprecated Destination.readBytes(data, off)
        Throws:
        ArrayIndexOutOfBoundsException - if not enough bytes, FIXME should throw DataFormatException
        Since:
        0.8.3
      • getType

        public EncType getType()
        Returns:
        null if unknown
        Since:
        0.9.38
      • getUnknownTypeCode

        public int getUnknownTypeCode()
        Only valid if getType() returns null
        Since:
        0.9.38
      • clearCache

        public static void clearCache()
        Since:
        0.9.17