forked from I2P_Developers/i2p.i2p
Add base algorithm type in prep for RSA
This commit is contained in:
22
core/java/src/net/i2p/crypto/SigAlgo.java
Normal file
22
core/java/src/net/i2p/crypto/SigAlgo.java
Normal file
@ -0,0 +1,22 @@
|
||||
package net.i2p.crypto;
|
||||
|
||||
/**
|
||||
* Base signature algorithm type
|
||||
*
|
||||
* @since 0.9.9
|
||||
*/
|
||||
public enum SigAlgo {
|
||||
|
||||
DSA("DSA"),
|
||||
EC("EC"),
|
||||
RSA("RSA")
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
SigAlgo(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getName() { return name; }
|
||||
}
|
@ -26,27 +26,28 @@ public enum SigType {
|
||||
* Pubkey 128 bytes; privkey 20 bytes; hash 20 bytes; sig 40 bytes
|
||||
* @since 0.9.8
|
||||
*/
|
||||
DSA_SHA1(0, 128, 20, 20, 40, "SHA-1", "SHA1withDSA", CryptoConstants.DSA_SHA1_SPEC),
|
||||
DSA_SHA1(0, 128, 20, 20, 40, SigAlgo.DSA, "SHA-1", "SHA1withDSA", CryptoConstants.DSA_SHA1_SPEC),
|
||||
/** Pubkey 48 bytes; privkey 24 bytes; hash 20 bytes; sig 48 bytes */
|
||||
ECDSA_SHA1_P192(1, 48, 24, 20, 48, "SHA-1", "SHA1withECDSA", ECConstants.P192_SPEC),
|
||||
ECDSA_SHA1_P192(1, 48, 24, 20, 48, SigAlgo.EC, "SHA-1", "SHA1withECDSA", ECConstants.P192_SPEC),
|
||||
/** Pubkey 64 bytes; privkey 32 bytes; hash 32 bytes; sig 64 bytes */
|
||||
ECDSA_SHA256_P256(2, 64, 32, 32, 64, "SHA-256", "SHA256withECDSA", ECConstants.P256_SPEC),
|
||||
ECDSA_SHA256_P256(2, 64, 32, 32, 64, SigAlgo.EC, "SHA-256", "SHA256withECDSA", ECConstants.P256_SPEC),
|
||||
/** Pubkey 96 bytes; privkey 48 bytes; hash 48 bytes; sig 96 bytes */
|
||||
ECDSA_SHA384_P384(3, 96, 48, 48, 96, "SHA-384", "SHA384withECDSA", ECConstants.P384_SPEC),
|
||||
ECDSA_SHA384_P384(3, 96, 48, 48, 96, SigAlgo.EC, "SHA-384", "SHA384withECDSA", ECConstants.P384_SPEC),
|
||||
/** Pubkey 132 bytes; privkey 66 bytes; hash 64 bytes; sig 132 bytes */
|
||||
ECDSA_SHA512_P521(4, 132, 66, 64, 132, "SHA-512", "SHA512withECDSA", ECConstants.P521_SPEC),
|
||||
ECDSA_SHA512_P521(4, 132, 66, 64, 132, SigAlgo.EC, "SHA-512", "SHA512withECDSA", ECConstants.P521_SPEC),
|
||||
|
||||
// TESTING....................
|
||||
|
||||
ECDSA_SHA256_P192(5, 48, 24, 32, 48, "SHA-256", "SHA256withECDSA", ECConstants.P192_SPEC),
|
||||
ECDSA_SHA256_P384(6, 96, 48, 32, 96, "SHA-256", "SHA256withECDSA", ECConstants.P384_SPEC),
|
||||
ECDSA_SHA256_P521(7, 132, 66, 32, 132, "SHA-256", "SHA256withECDSA", ECConstants.P521_SPEC),
|
||||
ECDSA_SHA256_P192(5, 48, 24, 32, 48, SigAlgo.EC, "SHA-256", "SHA256withECDSA", ECConstants.P192_SPEC),
|
||||
ECDSA_SHA256_P384(6, 96, 48, 32, 96, SigAlgo.EC, "SHA-256", "SHA256withECDSA", ECConstants.P384_SPEC),
|
||||
ECDSA_SHA256_P521(7, 132, 66, 32, 132, SigAlgo.EC, "SHA-256", "SHA256withECDSA", ECConstants.P521_SPEC),
|
||||
|
||||
ECDSA_SHA384_P256(8, 64, 32, 48, 64, "SHA-384", "SHA384withECDSA", ECConstants.P256_SPEC),
|
||||
ECDSA_SHA384_P521(9, 132, 66, 48, 132, "SHA-384", "SHA384withECDSA", ECConstants.P521_SPEC),
|
||||
ECDSA_SHA384_P256(8, 64, 32, 48, 64, SigAlgo.EC, "SHA-384", "SHA384withECDSA", ECConstants.P256_SPEC),
|
||||
ECDSA_SHA384_P521(9, 132, 66, 48, 132, SigAlgo.EC, "SHA-384", "SHA384withECDSA", ECConstants.P521_SPEC),
|
||||
|
||||
ECDSA_SHA512_P256(10, 64, 32, 64, 64, SigAlgo.EC, "SHA-512", "SHA512withECDSA", ECConstants.P256_SPEC),
|
||||
ECDSA_SHA512_P384(11, 96, 48, 64, 96, SigAlgo.EC, "SHA-512", "SHA512withECDSA", ECConstants.P384_SPEC),
|
||||
|
||||
ECDSA_SHA512_P256(10, 64, 32, 64, 64, "SHA-512", "SHA512withECDSA", ECConstants.P256_SPEC),
|
||||
ECDSA_SHA512_P384(11, 96, 48, 64, 96, "SHA-512", "SHA512withECDSA", ECConstants.P384_SPEC),
|
||||
|
||||
//MD5
|
||||
//ELGAMAL_SHA256
|
||||
@ -65,16 +66,18 @@ public enum SigType {
|
||||
;
|
||||
|
||||
private final int code, pubkeyLen, privkeyLen, hashLen, sigLen;
|
||||
private final SigAlgo base;
|
||||
private final String digestName, algoName;
|
||||
private final AlgorithmParameterSpec params;
|
||||
|
||||
SigType(int cod, int pubLen, int privLen, int hLen, int sLen,
|
||||
SigType(int cod, int pubLen, int privLen, int hLen, int sLen, SigAlgo baseAlgo,
|
||||
String mdName, String aName, AlgorithmParameterSpec pSpec) {
|
||||
code = cod;
|
||||
pubkeyLen = pubLen;
|
||||
privkeyLen = privLen;
|
||||
hashLen = hLen;
|
||||
sigLen = sLen;
|
||||
base = baseAlgo;
|
||||
digestName = mdName;
|
||||
algoName = aName;
|
||||
params = pSpec;
|
||||
@ -90,6 +93,8 @@ public enum SigType {
|
||||
public int getHashLen() { return hashLen; }
|
||||
/** the length of the signature, in bytes */
|
||||
public int getSigLen() { return sigLen; }
|
||||
/** the standard base algorithm name used for the Java crypto factories */
|
||||
public SigAlgo getBaseAlgorithm() { return base; }
|
||||
/** the standard name used for the Java crypto factories */
|
||||
public String getAlgorithmName() { return algoName; }
|
||||
/**
|
||||
|
Reference in New Issue
Block a user