14c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompackage org.bouncycastle.jcajce.provider.digest; 24c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.iana.IANAObjectIdentifiers; 44c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.CipherKeyGenerator; 74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.digests.SHA1Digest; 84c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.macs.HMac; 94c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.config.ConfigurableProvider; 104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator; 114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jce.provider.JCEMac; 124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompublic class SHA1 144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom{ 154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom static public class Digest 164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BCMessageDigest 174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom implements Cloneable 184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public Digest() 204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new SHA1Digest()); 224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public Object clone() 254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws CloneNotSupportedException 264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom Digest d = (Digest)super.clone(); 284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom d.digest = new SHA1Digest((SHA1Digest)digest); 294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom return d; 314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * SHA1 HMac 364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class HashMac 384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends JCEMac 394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public HashMac() 414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new SHA1Digest())); 434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class KeyGenerator 474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseKeyGenerator 484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public KeyGenerator() 504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super("HMACSHA1", 160, new CipherKeyGenerator()); 524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class Mappings 564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends DigestAlgorithmProvider 574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private static final String PREFIX = SHA1.class.getName(); 594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public Mappings() 614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public void configure(ConfigurableProvider provider) 654c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 664c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom provider.addAlgorithm("MessageDigest.SHA-1", PREFIX + "$Digest"); 674c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom provider.addAlgorithm("Alg.Alias.MessageDigest.SHA1", "SHA-1"); 684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom provider.addAlgorithm("Alg.Alias.MessageDigest.SHA", "SHA-1"); 694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom provider.addAlgorithm("Alg.Alias.MessageDigest." + OIWObjectIdentifiers.idSHA1, "SHA-1"); 704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom addHMACAlgorithm(provider, "SHA1", PREFIX + "$HashMac", PREFIX + "$KeyGenerator"); 724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom addHMACAlias(provider, "SHA1", PKCSObjectIdentifiers.id_hmacWithSHA1); 734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom addHMACAlias(provider, "SHA1", IANAObjectIdentifiers.hmacSHA1); 744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom} 77