diff options
author | Kenny Root <kroot@google.com> | 2014-02-25 23:52:00 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-02-25 23:52:01 +0000 |
commit | 0620ff904e6b109c38a0032f1c1df6bd05f6662f (patch) | |
tree | 46e11a0cf1a3b68129c34288e7d2b2de8aa22516 | |
parent | 684e45f9b88f911c3a39aa2e2d2b559c7b1c0074 (diff) | |
parent | bab34fd43afe55e6eae70a6467e61cef7f79008e (diff) | |
download | bouncycastle-0620ff904e6b109c38a0032f1c1df6bd05f6662f.tar.gz |
Merge "OpenSSLDigest needs to be ExtendedDigest"
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/crypto/digests/OpenSSLDigest.java | 29 | ||||
-rw-r--r-- | patches/bcprov.patch | 33 |
2 files changed, 40 insertions, 22 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/crypto/digests/OpenSSLDigest.java b/bcprov/src/main/java/org/bouncycastle/crypto/digests/OpenSSLDigest.java index 2846725a..5aa1eeca 100644 --- a/bcprov/src/main/java/org/bouncycastle/crypto/digests/OpenSSLDigest.java +++ b/bcprov/src/main/java/org/bouncycastle/crypto/digests/OpenSSLDigest.java @@ -16,19 +16,24 @@ package org.bouncycastle.crypto.digests; -import org.bouncycastle.crypto.Digest; +import org.bouncycastle.crypto.ExtendedDigest; +import org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi; import java.security.DigestException; import java.security.MessageDigest; /** - * Implements the BouncyCastle Digest interface using OpenSSL's EVP API. + * Implements the BouncyCastle Digest interface using OpenSSL's EVP API. This + * must be an ExtendedDigest for {@link BcKeyStoreSpi} to be able to use it. */ -public class OpenSSLDigest implements Digest { +public class OpenSSLDigest implements ExtendedDigest { private final MessageDigest delegate; - public OpenSSLDigest(String algorithm) { + private final int byteSize; + + public OpenSSLDigest(String algorithm, int byteSize) { try { delegate = MessageDigest.getInstance(algorithm, "AndroidOpenSSL"); + this.byteSize = byteSize; } catch (Exception e) { throw new RuntimeException(e); } @@ -42,6 +47,10 @@ public class OpenSSLDigest implements Digest { return delegate.getDigestLength(); } + public int getByteLength() { + return byteSize; + } + public void reset() { delegate.reset(); } @@ -63,26 +72,26 @@ public class OpenSSLDigest implements Digest { } public static class MD5 extends OpenSSLDigest { - public MD5() { super("MD5"); } + public MD5() { super("MD5", 64); } } public static class SHA1 extends OpenSSLDigest { - public SHA1() { super("SHA-1"); } + public SHA1() { super("SHA-1", 64); } } public static class SHA224 extends OpenSSLDigest { - public SHA224() { super("SHA-224"); } + public SHA224() { super("SHA-224", 64); } } public static class SHA256 extends OpenSSLDigest { - public SHA256() { super("SHA-256"); } + public SHA256() { super("SHA-256", 64); } } public static class SHA384 extends OpenSSLDigest { - public SHA384() { super("SHA-384"); } + public SHA384() { super("SHA-384", 128); } } public static class SHA512 extends OpenSSLDigest { - public SHA512() { super("SHA-512"); } + public SHA512() { super("SHA-512", 128); } } } diff --git a/patches/bcprov.patch b/patches/bcprov.patch index 8bd81d66..034babf0 100644 --- a/patches/bcprov.patch +++ b/patches/bcprov.patch @@ -569,8 +569,8 @@ diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/digests/AndroidDigest +} diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/digests/OpenSSLDigest.java bcprov-jdk15on-150/org/bouncycastle/crypto/digests/OpenSSLDigest.java --- bcprov-jdk15on-150.orig/org/bouncycastle/crypto/digests/OpenSSLDigest.java 1970-01-01 00:00:00.000000000 +0000 -+++ bcprov-jdk15on-150/org/bouncycastle/crypto/digests/OpenSSLDigest.java 2014-02-24 23:25:15.000000000 +0000 -@@ -0,0 +1,88 @@ ++++ bcprov-jdk15on-150/org/bouncycastle/crypto/digests/OpenSSLDigest.java 2014-02-25 22:51:56.000000000 +0000 +@@ -0,0 +1,97 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * @@ -589,19 +589,24 @@ diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/digests/OpenSSLDigest + +package org.bouncycastle.crypto.digests; + -+import org.bouncycastle.crypto.Digest; ++import org.bouncycastle.crypto.ExtendedDigest; ++import org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi; +import java.security.DigestException; +import java.security.MessageDigest; + +/** -+ * Implements the BouncyCastle Digest interface using OpenSSL's EVP API. ++ * Implements the BouncyCastle Digest interface using OpenSSL's EVP API. This ++ * must be an ExtendedDigest for {@link BcKeyStoreSpi} to be able to use it. + */ -+public class OpenSSLDigest implements Digest { ++public class OpenSSLDigest implements ExtendedDigest { + private final MessageDigest delegate; + -+ public OpenSSLDigest(String algorithm) { ++ private final int byteSize; ++ ++ public OpenSSLDigest(String algorithm, int byteSize) { + try { + delegate = MessageDigest.getInstance(algorithm, "AndroidOpenSSL"); ++ this.byteSize = byteSize; + } catch (Exception e) { + throw new RuntimeException(e); + } @@ -615,6 +620,10 @@ diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/digests/OpenSSLDigest + return delegate.getDigestLength(); + } + ++ public int getByteLength() { ++ return byteSize; ++ } ++ + public void reset() { + delegate.reset(); + } @@ -636,27 +645,27 @@ diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/digests/OpenSSLDigest + } + + public static class MD5 extends OpenSSLDigest { -+ public MD5() { super("MD5"); } ++ public MD5() { super("MD5", 64); } + } + + public static class SHA1 extends OpenSSLDigest { -+ public SHA1() { super("SHA-1"); } ++ public SHA1() { super("SHA-1", 64); } + } + + public static class SHA224 extends OpenSSLDigest { -+ public SHA224() { super("SHA-224"); } ++ public SHA224() { super("SHA-224", 64); } + } + + public static class SHA256 extends OpenSSLDigest { -+ public SHA256() { super("SHA-256"); } ++ public SHA256() { super("SHA-256", 64); } + } + + public static class SHA384 extends OpenSSLDigest { -+ public SHA384() { super("SHA-384"); } ++ public SHA384() { super("SHA-384", 128); } + } + + public static class SHA512 extends OpenSSLDigest { -+ public SHA512() { super("SHA-512"); } ++ public SHA512() { super("SHA-512", 128); } + } +} diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/encodings/OAEPEncoding.java bcprov-jdk15on-150/org/bouncycastle/crypto/encodings/OAEPEncoding.java |