diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jcajce/provider/digest/RIPEMD256.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jcajce/provider/digest/RIPEMD256.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/digest/RIPEMD256.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/digest/RIPEMD256.java new file mode 100644 index 0000000..dcb1b56 --- /dev/null +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/digest/RIPEMD256.java @@ -0,0 +1,75 @@ +package org.bouncycastle.jcajce.provider.digest; + +import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; +import org.bouncycastle.crypto.CipherKeyGenerator; +import org.bouncycastle.crypto.digests.RIPEMD256Digest; +import org.bouncycastle.crypto.macs.HMac; +import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; +import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator; +import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac; + +public class RIPEMD256 +{ + private RIPEMD256() + { + + } + + static public class Digest + extends BCMessageDigest + implements Cloneable + { + public Digest() + { + super(new RIPEMD256Digest()); + } + + public Object clone() + throws CloneNotSupportedException + { + Digest d = (Digest)super.clone(); + d.digest = new RIPEMD256Digest((RIPEMD256Digest)digest); + + return d; + } + } + + /** + * RIPEMD256 HMac + */ + public static class HashMac + extends BaseMac + { + public HashMac() + { + super(new HMac(new RIPEMD256Digest())); + } + } + + public static class KeyGenerator + extends BaseKeyGenerator + { + public KeyGenerator() + { + super("HMACRIPEMD256", 256, new CipherKeyGenerator()); + } + } + + public static class Mappings + extends DigestAlgorithmProvider + { + private static final String PREFIX = RIPEMD256.class.getName(); + + public Mappings() + { + } + + public void configure(ConfigurableProvider provider) + { + provider.addAlgorithm("MessageDigest.RIPEMD256", PREFIX + "$Digest"); + provider.addAlgorithm("Alg.Alias.MessageDigest." + TeleTrusTObjectIdentifiers.ripemd256, "RIPEMD256"); + + addHMACAlgorithm(provider, "RIPEMD256", PREFIX + "$HashMac", PREFIX + "$KeyGenerator"); + } + } +} |