I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 7fdfb5cf authored by zzz's avatar zzz
Browse files

Put the OID in SigType

parent b4d4c930
No related branches found
No related tags found
No related merge requests found
...@@ -57,15 +57,6 @@ public final class SelfSignedGenerator { ...@@ -57,15 +57,6 @@ public final class SelfSignedGenerator {
private static final String OID_OU = "2.5.4.11"; private static final String OID_OU = "2.5.4.11";
// Subject Key Identifier // Subject Key Identifier
private static final String OID_SKI = "2.5.29.14"; private static final String OID_SKI = "2.5.29.14";
//private static final String OID_RSA_4096_PUB = "1.2.840.113549.1.1.1";
// TODO put these in SigType
private static final String OID_DSA_1024_SIG = "1.2.840.10040.4.3";
private static final String OID_ECDSA_P256_SIG = "1.2.840.10045.4.3.2";
private static final String OID_ECDSA_P384_SIG = "1.2.840.10045.4.3.3";
private static final String OID_ECDSA_P521_SIG = "1.2.840.10045.4.3.4";
private static final String OID_RSA_2048_SIG = "1.2.840.113549.1.1.11";
private static final String OID_RSA_3072_SIG = "1.2.840.113549.1.1.12";
private static final String OID_RSA_4096_SIG = "1.2.840.113549.1.1.13";
private static final Map<String, String> OIDS; private static final Map<String, String> OIDS;
static { static {
...@@ -92,29 +83,16 @@ public final class SelfSignedGenerator { ...@@ -92,29 +83,16 @@ public final class SelfSignedGenerator {
PublicKey jpub = SigUtil.toJavaKey(pub); PublicKey jpub = SigUtil.toJavaKey(pub);
PrivateKey jpriv = SigUtil.toJavaKey(priv); PrivateKey jpriv = SigUtil.toJavaKey(priv);
// TODO just put the oid in the sigtype
String oid; String oid;
switch (type) { switch (type) {
case DSA_SHA1: case DSA_SHA1:
oid = OID_DSA_1024_SIG;
break;
case ECDSA_SHA256_P256: case ECDSA_SHA256_P256:
oid = OID_ECDSA_P256_SIG;
break;
case ECDSA_SHA384_P384: case ECDSA_SHA384_P384:
oid = OID_ECDSA_P384_SIG;
break;
case ECDSA_SHA512_P521: case ECDSA_SHA512_P521:
oid = OID_ECDSA_P521_SIG;
break;
case RSA_SHA256_2048: case RSA_SHA256_2048:
oid = OID_RSA_2048_SIG;
break;
case RSA_SHA384_3072: case RSA_SHA384_3072:
oid = OID_RSA_3072_SIG;
break;
case RSA_SHA512_4096: case RSA_SHA512_4096:
oid = OID_RSA_4096_SIG; oid = type.getOID();
break; break;
default: default:
throw new GeneralSecurityException("Unsupported: " + type); throw new GeneralSecurityException("Unsupported: " + type);
......
...@@ -32,20 +32,20 @@ public enum SigType { ...@@ -32,20 +32,20 @@ public enum SigType {
* Pubkey 128 bytes; privkey 20 bytes; hash 20 bytes; sig 40 bytes * Pubkey 128 bytes; privkey 20 bytes; hash 20 bytes; sig 40 bytes
* @since 0.9.8 * @since 0.9.8
*/ */
DSA_SHA1(0, 128, 20, 20, 40, SigAlgo.DSA, "SHA-1", "SHA1withDSA", CryptoConstants.DSA_SHA1_SPEC, "0"), DSA_SHA1(0, 128, 20, 20, 40, SigAlgo.DSA, "SHA-1", "SHA1withDSA", CryptoConstants.DSA_SHA1_SPEC, "1.2.840.10040.4.3", "0"),
/** Pubkey 64 bytes; privkey 32 bytes; hash 32 bytes; sig 64 bytes */ /** Pubkey 64 bytes; privkey 32 bytes; hash 32 bytes; sig 64 bytes */
ECDSA_SHA256_P256(1, 64, 32, 32, 64, SigAlgo.EC, "SHA-256", "SHA256withECDSA", ECConstants.P256_SPEC, "0.9.12"), ECDSA_SHA256_P256(1, 64, 32, 32, 64, SigAlgo.EC, "SHA-256", "SHA256withECDSA", ECConstants.P256_SPEC, "1.2.840.10045.4.3.2", "0.9.12"),
/** Pubkey 96 bytes; privkey 48 bytes; hash 48 bytes; sig 96 bytes */ /** Pubkey 96 bytes; privkey 48 bytes; hash 48 bytes; sig 96 bytes */
ECDSA_SHA384_P384(2, 96, 48, 48, 96, SigAlgo.EC, "SHA-384", "SHA384withECDSA", ECConstants.P384_SPEC, "0.9.12"), ECDSA_SHA384_P384(2, 96, 48, 48, 96, SigAlgo.EC, "SHA-384", "SHA384withECDSA", ECConstants.P384_SPEC, "1.2.840.10045.4.3.3", "0.9.12"),
/** Pubkey 132 bytes; privkey 66 bytes; hash 64 bytes; sig 132 bytes */ /** Pubkey 132 bytes; privkey 66 bytes; hash 64 bytes; sig 132 bytes */
ECDSA_SHA512_P521(3, 132, 66, 64, 132, SigAlgo.EC, "SHA-512", "SHA512withECDSA", ECConstants.P521_SPEC, "0.9.12"), ECDSA_SHA512_P521(3, 132, 66, 64, 132, SigAlgo.EC, "SHA-512", "SHA512withECDSA", ECConstants.P521_SPEC, "1.2.840.10045.4.3.4", "0.9.12"),
/** Pubkey 256 bytes; privkey 512 bytes; hash 32 bytes; sig 256 bytes */ /** Pubkey 256 bytes; privkey 512 bytes; hash 32 bytes; sig 256 bytes */
RSA_SHA256_2048(4, 256, 512, 32, 256, SigAlgo.RSA, "SHA-256", "SHA256withRSA", RSAConstants.F4_2048_SPEC, "0.9.12"), RSA_SHA256_2048(4, 256, 512, 32, 256, SigAlgo.RSA, "SHA-256", "SHA256withRSA", RSAConstants.F4_2048_SPEC, "1.2.840.113549.1.1.11", "0.9.12"),
/** Pubkey 384 bytes; privkey 768 bytes; hash 48 bytes; sig 384 bytes */ /** Pubkey 384 bytes; privkey 768 bytes; hash 48 bytes; sig 384 bytes */
RSA_SHA384_3072(5, 384, 768, 48, 384, SigAlgo.RSA, "SHA-384", "SHA384withRSA", RSAConstants.F4_3072_SPEC, "0.9.12"), RSA_SHA384_3072(5, 384, 768, 48, 384, SigAlgo.RSA, "SHA-384", "SHA384withRSA", RSAConstants.F4_3072_SPEC, "1.2.840.113549.1.1.12", "0.9.12"),
/** Pubkey 512 bytes; privkey 1024 bytes; hash 64 bytes; sig 512 bytes */ /** Pubkey 512 bytes; privkey 1024 bytes; hash 64 bytes; sig 512 bytes */
RSA_SHA512_4096(6, 512, 1024, 64, 512, SigAlgo.RSA, "SHA-512", "SHA512withRSA", RSAConstants.F4_4096_SPEC, "0.9.12"), RSA_SHA512_4096(6, 512, 1024, 64, 512, SigAlgo.RSA, "SHA-512", "SHA512withRSA", RSAConstants.F4_4096_SPEC, "1.2.840.113549.1.1.13", "0.9.12"),
/** /**
* Pubkey 32 bytes; privkey 32 bytes; hash 64 bytes; sig 64 bytes * Pubkey 32 bytes; privkey 32 bytes; hash 64 bytes; sig 64 bytes
...@@ -55,7 +55,8 @@ public enum SigType { ...@@ -55,7 +55,8 @@ public enum SigType {
* @since 0.9.15 * @since 0.9.15
*/ */
EdDSA_SHA512_Ed25519(7, 32, 32, 64, 64, SigAlgo.EdDSA, "SHA-512", "SHA512withEdDSA", EdDSA_SHA512_Ed25519(7, 32, 32, 64, 64, SigAlgo.EdDSA, "SHA-512", "SHA512withEdDSA",
EdDSANamedCurveTable.getByName("ed25519-sha-512"), "0.9.17"); // this is the OID of the key, not the sig, probably wrong
EdDSANamedCurveTable.getByName("ed25519-sha-512"), "1.3.101.100", "0.9.17");
// TESTING.................... // TESTING....................
...@@ -99,12 +100,12 @@ public enum SigType { ...@@ -99,12 +100,12 @@ public enum SigType {
private final int code, pubkeyLen, privkeyLen, hashLen, sigLen; private final int code, pubkeyLen, privkeyLen, hashLen, sigLen;
private final SigAlgo base; private final SigAlgo base;
private final String digestName, algoName, since; private final String digestName, algoName, oid, since;
private final AlgorithmParameterSpec params; private final AlgorithmParameterSpec params;
private final boolean isAvail; private final boolean isAvail;
SigType(int cod, int pubLen, int privLen, int hLen, int sLen, SigAlgo baseAlgo, SigType(int cod, int pubLen, int privLen, int hLen, int sLen, SigAlgo baseAlgo,
String mdName, String aName, AlgorithmParameterSpec pSpec, String supportedSince) { String mdName, String aName, AlgorithmParameterSpec pSpec, String oid, String supportedSince) {
code = cod; code = cod;
pubkeyLen = pubLen; pubkeyLen = pubLen;
privkeyLen = privLen; privkeyLen = privLen;
...@@ -114,6 +115,7 @@ public enum SigType { ...@@ -114,6 +115,7 @@ public enum SigType {
digestName = mdName; digestName = mdName;
algoName = aName; algoName = aName;
params = pSpec; params = pSpec;
this.oid = oid;
since = supportedSince; since = supportedSince;
isAvail = x_isAvailable(); isAvail = x_isAvailable();
} }
...@@ -183,6 +185,15 @@ public enum SigType { ...@@ -183,6 +185,15 @@ public enum SigType {
return since; return since;
} }
/**
* The OID for the signature.
*
* @since 0.9.25
*/
public String getOID() {
return oid;
}
/** /**
* @since 0.9.12 * @since 0.9.12
* @return true if supported in this JVM * @return true if supported in this JVM
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment