summaryrefslogtreecommitdiff
path: root/bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java67
1 files changed, 53 insertions, 14 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java
index ce8bb363..9869b1c6 100644
--- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java
+++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/util/DigestFactory.java
@@ -10,15 +10,6 @@ import org.bouncycastle.asn1.nist.NISTObjectIdentifiers;
import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers;
import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
import org.bouncycastle.crypto.Digest;
-// BEGIN android-removed
-// import org.bouncycastle.crypto.digests.MD5Digest;
-// import org.bouncycastle.crypto.digests.SHA1Digest;
-// import org.bouncycastle.crypto.digests.SHA224Digest;
-// import org.bouncycastle.crypto.digests.SHA256Digest;
-// import org.bouncycastle.crypto.digests.SHA384Digest;
-// import org.bouncycastle.crypto.digests.SHA512Digest;
-// import org.bouncycastle.crypto.digests.SHA512tDigest;
-// END android-removed
// BEGIN android-added
import org.bouncycastle.crypto.digests.AndroidDigestFactory;
// END android-added
@@ -35,6 +26,10 @@ public class DigestFactory
// BEGIN android-removed
// private static Set sha512_224 = new HashSet();
// private static Set sha512_256 = new HashSet();
+ // private static Set sha3_224 = new HashSet();
+ // private static Set sha3_256 = new HashSet();
+ // private static Set sha3_384 = new HashSet();
+ // private static Set sha3_512 = new HashSet();
// END android-removed
private static Map oids = new HashMap();
@@ -72,8 +67,21 @@ public class DigestFactory
// sha512_256.add("SHA512(256)");
// sha512_256.add("SHA-512(256)");
// sha512_256.add(NISTObjectIdentifiers.id_sha512_256.getId());
+
+ // sha3_224.add("SHA3-224");
+ // sha3_224.add(NISTObjectIdentifiers.id_sha3_224.getId());
+
+ // sha3_256.add("SHA3-256");
+ // sha3_256.add(NISTObjectIdentifiers.id_sha3_256.getId());
+
+ // sha3_384.add("SHA3-384");
+ // sha3_384.add(NISTObjectIdentifiers.id_sha3_384.getId());
+
+ // sha3_512.add("SHA3-512");
+ // sha3_512.add(NISTObjectIdentifiers.id_sha3_512.getId());
// END android-removed
+
oids.put("MD5", PKCSObjectIdentifiers.md5);
oids.put(PKCSObjectIdentifiers.md5.getId(), PKCSObjectIdentifiers.md5);
@@ -104,6 +112,18 @@ public class DigestFactory
oids.put("SHA512(256)", NISTObjectIdentifiers.id_sha512_256);
oids.put("SHA-512(256)", NISTObjectIdentifiers.id_sha512_256);
oids.put(NISTObjectIdentifiers.id_sha512_256.getId(), NISTObjectIdentifiers.id_sha512_256);
+
+ oids.put("SHA3-224", NISTObjectIdentifiers.id_sha3_224);
+ oids.put(NISTObjectIdentifiers.id_sha3_224.getId(), NISTObjectIdentifiers.id_sha3_224);
+
+ oids.put("SHA3-256", NISTObjectIdentifiers.id_sha3_256);
+ oids.put(NISTObjectIdentifiers.id_sha3_256.getId(), NISTObjectIdentifiers.id_sha3_256);
+
+ oids.put("SHA3-384", NISTObjectIdentifiers.id_sha3_384);
+ oids.put(NISTObjectIdentifiers.id_sha3_384.getId(), NISTObjectIdentifiers.id_sha3_384);
+
+ oids.put("SHA3-512", NISTObjectIdentifiers.id_sha3_512);
+ oids.put(NISTObjectIdentifiers.id_sha3_512.getId(), NISTObjectIdentifiers.id_sha3_512);
}
public static Digest getDigest(
@@ -141,8 +161,7 @@ public class DigestFactory
return AndroidDigestFactory.getSHA384();
// END android-changed
}
- if (sha512.contains(digestName))
- {
+ if (sha512.contains(digestName)) {
// BEGIN android-changed
return AndroidDigestFactory.getSHA512();
// END android-changed
@@ -150,13 +169,29 @@ public class DigestFactory
// BEGIN android-removed
// if (sha512_224.contains(digestName))
// {
- // return new SHA512tDigest(224);
+ // return org.bouncycastle.crypto.util.DigestFactory.createSHA512_224();
// }
// if (sha512_256.contains(digestName))
// {
- // return new SHA512tDigest(256);
+ // return org.bouncycastle.crypto.util.DigestFactory.createSHA512_256();
+ // }
+ //
+ // if (sha3_224.contains(digestName))
+ // {
+ // return org.bouncycastle.crypto.util.DigestFactory.createSHA3_224();
+ // }
+ // if (sha3_256.contains(digestName))
+ // {
+ // return org.bouncycastle.crypto.util.DigestFactory.createSHA3_256();
+ // }
+ // if (sha3_384.contains(digestName))
+ // {
+ // return org.bouncycastle.crypto.util.DigestFactory.createSHA3_384();
+ // }
+ // if (sha3_512.contains(digestName))
+ // {
+ // return org.bouncycastle.crypto.util.DigestFactory.createSHA3_512();
// }
- // END android-removed
return null;
}
@@ -173,6 +208,10 @@ public class DigestFactory
// BEGIN android-removed
// || (sha512_224.contains(digest1) && sha512_224.contains(digest2))
// || (sha512_256.contains(digest1) && sha512_256.contains(digest2))
+ // || (sha3_224.contains(digest1) && sha3_224.contains(digest2))
+ // || (sha3_256.contains(digest1) && sha3_256.contains(digest2))
+ // || (sha3_384.contains(digest1) && sha3_384.contains(digest2))
+ // || (sha3_512.contains(digest1) && sha3_512.contains(digest2))
// END android-removed
|| (md5.contains(digest1) && md5.contains(digest2));
}