Package net.i2p.crypto
Enum SigType
- java.lang.Object
-
- java.lang.Enum<SigType>
-
- net.i2p.crypto.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 Summary
Enum Constants Enum Constant Description DSA_SHA1
DSA_SHA1 is the default.ECDSA_SHA256_P256
Pubkey 64 bytes; privkey 32 bytes; hash 32 bytes; sig 64 bytesECDSA_SHA384_P384
Pubkey 96 bytes; privkey 48 bytes; hash 48 bytes; sig 96 bytesECDSA_SHA512_P521
Pubkey 132 bytes; privkey 66 bytes; hash 64 bytes; sig 132 bytesEdDSA_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.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 bytesRedDSA_SHA512_Ed25519
Blinded version of EdDSA, use for encrypted LS2 Pubkey 32 bytes; privkey 32 bytes; hash 64 bytes; sig 64 bytesRSA_SHA256_2048
Pubkey 256 bytes; privkey 512 bytes; hash 32 bytes; sig 256 bytesRSA_SHA384_3072
Pubkey 384 bytes; privkey 768 bytes; hash 48 bytes; sig 384 bytesRSA_SHA512_4096
Pubkey 512 bytes; privkey 1024 bytes; hash 64 bytes; sig 512 bytes
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getAlgorithmName()
the standard name used for the Java crypto factoriesSigAlgo
getBaseAlgorithm()
the standard base algorithm name used for the Java crypto factoriesstatic SigType
getByCode(int code)
int
getCode()
the unique identifier for this typeMessageDigest
getDigestInstance()
SimpleDataStructure
getHashInstance()
int
getHashLen()
the length of the hash, in bytesString
getOID()
The OID for the signature.AlgorithmParameterSpec
getParams()
The elliptic curve ECParameterSpec for ECDSA; DSAParameterSpec for DSAint
getPrivkeyLen()
the length of the private key, in bytesint
getPubkeyLen()
the length of the public key, in bytesint
getSigLen()
the length of the signature, in bytesString
getSupportedSince()
The router version in which this type was first supported.boolean
isAvailable()
static boolean
isAvailable(int code)
static boolean
isAvailable(String stype)
static SigType
parseSigType(String stype)
Convenience for user appsstatic SigType
valueOf(String name)
Returns the enum constant of this type with the specified name.static SigType[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
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 nameNullPointerException
- 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
public AlgorithmParameterSpec getParams() throws InvalidParameterSpecException
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
-
-