SHA1.java revision e6bf3e8dfa2804891a82075cb469b736321b4827
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)package org.bouncycastle.jcajce.provider.digest; 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.asn1.iana.IANAObjectIdentifiers; 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.crypto.CipherKeyGenerator; 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.crypto.digests.SHA1Digest; 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.crypto.macs.HMac; 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.bouncycastle.jce.provider.JCEMac; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)public class SHA1 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static public class Digest 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extends BCMessageDigest 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) implements Cloneable 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public Digest() 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) { 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) super(new SHA1Digest()); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public Object clone() 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) throws CloneNotSupportedException 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Digest d = (Digest)super.clone(); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) d.digest = new SHA1Digest((SHA1Digest)digest); 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return d; 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * SHA1 HMac 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static class HashMac 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extends JCEMac 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public HashMac() 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) super(new HMac(new SHA1Digest())); 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static class KeyGenerator 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extends BaseKeyGenerator 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public KeyGenerator() 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) super("HMACSHA1", 160, new CipherKeyGenerator()); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static class Mappings 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extends DigestAlgorithmProvider 57b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) { 58b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) private static final String PREFIX = SHA1.class.getName(); 59b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 60b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) public Mappings() 61b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) { 62b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) } 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void configure(ConfigurableProvider provider) 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) provider.addAlgorithm("MessageDigest.SHA-1", PREFIX + "$Digest"); 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) provider.addAlgorithm("Alg.Alias.MessageDigest.SHA1", "SHA-1"); 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) provider.addAlgorithm("Alg.Alias.MessageDigest.SHA", "SHA-1"); 6958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) provider.addAlgorithm("Alg.Alias.MessageDigest." + OIWObjectIdentifiers.idSHA1, "SHA-1"); 7058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) addHMACAlgorithm(provider, "SHA1", PREFIX + "$HashMac", PREFIX + "$KeyGenerator"); 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) addHMACAlias(provider, "SHA1", PKCSObjectIdentifiers.id_hmacWithSHA1); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) addHMACAlias(provider, "SHA1", IANAObjectIdentifiers.hmacSHA1); 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)