Enum SigType

java.lang.Object
java.lang.Enum<SigType>
net.i2p.crypto.SigType
All Implemented Interfaces:
Serializable, Comparable<SigType>, java.lang.constant.Constable

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 Details

    • 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 Details

    • values

      public static SigType[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      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
    • getParams

      The elliptic curve ECParameterSpec for ECDSA; DSAParameterSpec for DSA
      Throws:
      InvalidParameterSpecException - if the algorithm is not available on this JVM.
    • getDigestInstance

      public MessageDigest getDigestInstance()
      Throws:
      UnsupportedOperationException - if not supported
    • getHashInstance

      public SimpleDataStructure getHashInstance()
      Throws:
      UnsupportedOperationException - if not supported
      Since:
      0.9.9
    • 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