Enum SigType

  • All Implemented Interfaces:
    Serializable, Comparable<SigType>

    public enum SigType
    extends Enum<SigType>
    Defines the properties for various signature types that I2P supports or may someday support. All Signatures, SigningPublicKeys, and SigningPrivateKeys have a type. Note that a SigType specifies both an algorithm and parameters, so that we may change primes or curves for a given algorithm.
    Since:
    0.9.8
    • Enum Constant Detail

      • DSA_SHA1

        public static final SigType DSA_SHA1
        DSA_SHA1 is the default. Pubkey 128 bytes; privkey 20 bytes; hash 20 bytes; sig 40 bytes
        Since:
        0.9.8
      • ECDSA_SHA256_P256

        public static final SigType ECDSA_SHA256_P256
        Pubkey 64 bytes; privkey 32 bytes; hash 32 bytes; sig 64 bytes
      • ECDSA_SHA384_P384

        public static final SigType ECDSA_SHA384_P384
        Pubkey 96 bytes; privkey 48 bytes; hash 48 bytes; sig 96 bytes
      • ECDSA_SHA512_P521

        public static final SigType ECDSA_SHA512_P521
        Pubkey 132 bytes; privkey 66 bytes; hash 64 bytes; sig 132 bytes
      • RSA_SHA256_2048

        public static final SigType RSA_SHA256_2048
        Pubkey 256 bytes; privkey 512 bytes; hash 32 bytes; sig 256 bytes
      • RSA_SHA384_3072

        public static final SigType RSA_SHA384_3072
        Pubkey 384 bytes; privkey 768 bytes; hash 48 bytes; sig 384 bytes
      • RSA_SHA512_4096

        public static final SigType RSA_SHA512_4096
        Pubkey 512 bytes; privkey 1024 bytes; hash 64 bytes; sig 512 bytes
      • EdDSA_SHA512_Ed25519

        public static final SigType EdDSA_SHA512_Ed25519
        Pubkey 32 bytes; privkey 32 bytes; hash 64 bytes; sig 64 bytes Due to bugs in previous versions, minimum version is 0.9.17.
        Since:
        0.9.15
      • EdDSA_SHA512_Ed25519ph

        public static final SigType EdDSA_SHA512_Ed25519ph
        Prehash version (double hashing, for offline use such as su3, not for use on the network) Pubkey 32 bytes; privkey 32 bytes; hash 64 bytes; sig 64 bytes
        Since:
        0.9.25
      • RedDSA_SHA512_Ed25519

        public static final SigType RedDSA_SHA512_Ed25519
        Blinded version of EdDSA, use for encrypted LS2 Pubkey 32 bytes; privkey 32 bytes; hash 64 bytes; sig 64 bytes
        Since:
        0.9.39
    • Method Detail

      • values

        public static SigType[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (SigType c : SigType.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static SigType valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • getCode

        public int getCode()
        the unique identifier for this type
      • getPubkeyLen

        public int getPubkeyLen()
        the length of the public key, in bytes
      • getPrivkeyLen

        public int getPrivkeyLen()
        the length of the private key, in bytes
      • getHashLen

        public int getHashLen()
        the length of the hash, in bytes
      • getSigLen

        public int getSigLen()
        the length of the signature, in bytes
      • getBaseAlgorithm

        public SigAlgo getBaseAlgorithm()
        the standard base algorithm name used for the Java crypto factories
      • getAlgorithmName

        public String getAlgorithmName()
        the standard name used for the Java crypto factories
      • getSupportedSince

        public String getSupportedSince()
        The router version in which this type was first supported.
        Since:
        0.9.15
      • getOID

        public String getOID()
        The OID for the signature.
        Since:
        0.9.25
      • isAvailable

        public boolean isAvailable()
        Returns:
        true if supported in this JVM
        Since:
        0.9.12
      • isAvailable

        public static boolean isAvailable​(int code)
        Returns:
        true if supported in this JVM
        Since:
        0.9.15
      • isAvailable

        public static boolean isAvailable​(String stype)
        Parameters:
        stype - number or name
        Returns:
        true if supported in this JVM
        Since:
        0.9.15
      • getByCode

        public static SigType getByCode​(int code)
        Returns:
        null if not supported
      • parseSigType

        public static SigType parseSigType​(String stype)
        Convenience for user apps
        Parameters:
        stype - number or name
        Returns:
        null if not found
        Since:
        0.9.9 moved from SU3File in 0.9.12