diff options
Diffstat (limited to 'crypto/src')
4 files changed, 51 insertions, 0 deletions
diff --git a/crypto/src/main/java/org/conscrypt/OpenSSLMac.java b/crypto/src/main/java/org/conscrypt/OpenSSLMac.java index ed9ea52..ed163ec 100644 --- a/crypto/src/main/java/org/conscrypt/OpenSSLMac.java +++ b/crypto/src/main/java/org/conscrypt/OpenSSLMac.java @@ -142,6 +142,15 @@ public abstract class OpenSSLMac extends MacSpi { } } + public static class HmacSHA224 extends OpenSSLMac { + private static final long EVP_MD = NativeCrypto.EVP_get_digestbyname("sha224"); + private static final int SIZE = NativeCrypto.EVP_MD_size(EVP_MD); + + public HmacSHA224() throws NoSuchAlgorithmException { + super(EVP_MD, SIZE, NativeCrypto.EVP_PKEY_HMAC); + } + } + public static class HmacSHA256 extends OpenSSLMac { private static final long EVP_MD = NativeCrypto.EVP_get_digestbyname("sha256"); private static final int SIZE = NativeCrypto.EVP_MD_size(EVP_MD); diff --git a/crypto/src/main/java/org/conscrypt/OpenSSLMessageDigestJDK.java b/crypto/src/main/java/org/conscrypt/OpenSSLMessageDigestJDK.java index 763ff65..801a721 100644 --- a/crypto/src/main/java/org/conscrypt/OpenSSLMessageDigestJDK.java +++ b/crypto/src/main/java/org/conscrypt/OpenSSLMessageDigestJDK.java @@ -128,6 +128,14 @@ public class OpenSSLMessageDigestJDK extends MessageDigest implements Cloneable } } + public static class SHA224 extends OpenSSLMessageDigestJDK { + private static final long EVP_MD = NativeCrypto.EVP_get_digestbyname("sha224"); + private static final int SIZE = NativeCrypto.EVP_MD_size(EVP_MD); + public SHA224() throws NoSuchAlgorithmException { + super("SHA-224", EVP_MD, SIZE); + } + } + public static class SHA256 extends OpenSSLMessageDigestJDK { private static final long EVP_MD = NativeCrypto.EVP_get_digestbyname("sha256"); private static final int SIZE = NativeCrypto.EVP_MD_size(EVP_MD); diff --git a/crypto/src/main/java/org/conscrypt/OpenSSLProvider.java b/crypto/src/main/java/org/conscrypt/OpenSSLProvider.java index 4055e50..371da1f 100644 --- a/crypto/src/main/java/org/conscrypt/OpenSSLProvider.java +++ b/crypto/src/main/java/org/conscrypt/OpenSSLProvider.java @@ -57,6 +57,10 @@ public final class OpenSSLProvider extends Provider { put("Alg.Alias.MessageDigest.SHA", "SHA-1"); put("Alg.Alias.MessageDigest.1.3.14.3.2.26", "SHA-1"); + put("MessageDigest.SHA-224", prefix + "OpenSSLMessageDigestJDK$SHA224"); + put("Alg.Alias.MessageDigest.SHA224", "SHA-224"); + put("Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.4", "SHA-224"); + put("MessageDigest.SHA-256", prefix + "OpenSSLMessageDigestJDK$SHA256"); put("Alg.Alias.MessageDigest.SHA256", "SHA-256"); put("Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.1", "SHA-256"); @@ -108,6 +112,14 @@ public final class OpenSSLProvider extends Provider { put("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.113549.1.1.5", "SHA1WithRSA"); put("Alg.Alias.Signature.1.3.14.3.2.29", "SHA1WithRSA"); + put("Signature.SHA224WithRSA", prefix + "OpenSSLSignature$SHA224RSA"); + put("Alg.Alias.Signature.SHA224WithRSAEncryption", "SHA224WithRSA"); + put("Alg.Alias.Signature.1.2.840.113549.1.1.11", "SHA224WithRSA"); + put("Alg.Alias.Signature.2.16.840.1.101.3.4.2.4with1.2.840.113549.1.1.1", + "SHA224WithRSA"); + put("Alg.Alias.Signature.2.16.840.1.101.3.4.2.4with1.2.840.113549.1.1.11", + "SHA224WithRSA"); + put("Signature.SHA256WithRSA", prefix + "OpenSSLSignature$SHA256RSA"); put("Alg.Alias.Signature.SHA256WithRSAEncryption", "SHA256WithRSA"); put("Alg.Alias.Signature.1.2.840.113549.1.1.11", "SHA256WithRSA"); @@ -146,6 +158,12 @@ public final class OpenSSLProvider extends Provider { put("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10045.2.1", "ECDSA"); // iso(1) member-body(2) us(840) ansi-x962(10045) signatures(4) ecdsa-with-SHA2(3) + put("Signature.SHA224withECDSA", prefix + "OpenSSLSignature$SHA224ECDSA"); + // ecdsa-with-SHA224(1) + put("Alg.Alias.Signature.1.2.840.10045.4.3.1", "SHA224withECDSA"); + put("Alg.Alias.Signature.2.16.840.1.101.3.4.2.4with1.2.840.10045.2.1", "SHA224withECDSA"); + + // iso(1) member-body(2) us(840) ansi-x962(10045) signatures(4) ecdsa-with-SHA2(3) put("Signature.SHA256withECDSA", prefix + "OpenSSLSignature$SHA256ECDSA"); // ecdsa-with-SHA256(2) put("Alg.Alias.Signature.1.2.840.10045.4.3.2", "SHA256withECDSA"); @@ -215,6 +233,12 @@ public final class OpenSSLProvider extends Provider { put("Alg.Alias.Mac.HMAC-SHA1", "HmacSHA1"); put("Alg.Alias.Mac.HMAC/SHA1", "HmacSHA1"); + // id-hmacWithSHA224 (8) + put("Mac.HmacSHA224", prefix + "OpenSSLMac$HmacSHA224"); + put("Alg.Alias.Mac.1.2.840.113549.2.9", "HmacSHA224"); + put("Alg.Alias.Mac.HMAC-SHA224", "HmacSHA224"); + put("Alg.Alias.Mac.HMAC/SHA224", "HmacSHA224"); + // id-hmacWithSHA256 (9) put("Mac.HmacSHA256", prefix + "OpenSSLMac$HmacSHA256"); put("Alg.Alias.Mac.1.2.840.113549.2.9", "HmacSHA256"); diff --git a/crypto/src/main/java/org/conscrypt/OpenSSLSignature.java b/crypto/src/main/java/org/conscrypt/OpenSSLSignature.java index 8576010..53b0df0 100644 --- a/crypto/src/main/java/org/conscrypt/OpenSSLSignature.java +++ b/crypto/src/main/java/org/conscrypt/OpenSSLSignature.java @@ -299,6 +299,11 @@ public class OpenSSLSignature extends Signature { super("RSA-SHA1", EngineType.RSA); } } + public static final class SHA224RSA extends OpenSSLSignature { + public SHA224RSA() throws NoSuchAlgorithmException { + super("RSA-SHA224", EngineType.RSA); + } + } public static final class SHA256RSA extends OpenSSLSignature { public SHA256RSA() throws NoSuchAlgorithmException { super("RSA-SHA256", EngineType.RSA); @@ -324,6 +329,11 @@ public class OpenSSLSignature extends Signature { super("SHA1", EngineType.EC); } } + public static final class SHA224ECDSA extends OpenSSLSignature { + public SHA224ECDSA() throws NoSuchAlgorithmException { + super("SHA224", EngineType.EC); + } + } public static final class SHA256ECDSA extends OpenSSLSignature { public SHA256ECDSA() throws NoSuchAlgorithmException { super("SHA256", EngineType.EC); |