summaryrefslogtreecommitdiffstats
path: root/crypto/src
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src')
-rw-r--r--crypto/src/main/java/org/conscrypt/OpenSSLMac.java9
-rw-r--r--crypto/src/main/java/org/conscrypt/OpenSSLMessageDigestJDK.java8
-rw-r--r--crypto/src/main/java/org/conscrypt/OpenSSLProvider.java24
-rw-r--r--crypto/src/main/java/org/conscrypt/OpenSSLSignature.java10
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);