BaseMac.java revision 4c111300c39cb2e27f07fc2ae3b00e23ed4443b2
14c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompackage org.bouncycastle.jcajce.provider.symmetric.util; 24c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.InvalidAlgorithmParameterException; 44c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.InvalidKeyException; 54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.Key; 64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.security.spec.AlgorithmParameterSpec; 74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 84c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.MacSpi; 94c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.spec.IvParameterSpec; 104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport javax.crypto.spec.PBEParameterSpec; 114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.CipherParameters; 134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.Mac; 144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// BEGIN android-removed 154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.MD2Digest; 164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.MD4Digest; 174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.MD5Digest; 184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.RIPEMD128Digest; 194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.RIPEMD160Digest; 204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.SHA1Digest; 214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.SHA224Digest; 224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.SHA256Digest; 234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.SHA384Digest; 244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.SHA512Digest; 254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.digests.TigerDigest; 264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// END android-removed 274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// BEGIN android-added 284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.digests.OpenSSLDigest; 294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// END android-added 304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.engines.DESEngine; 314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.engines.RC2Engine; 324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.macs.CBCBlockCipherMac; 334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// BEGIN android-removed 344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.macs.CFBBlockCipherMac; 354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.macs.GOST28147Mac; 364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// END android-removed 374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.macs.HMac; 384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// BEGIN android-removed 394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.macs.ISO9797Alg3Mac; 404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.crypto.macs.OldHMac; 414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// END android-removed 424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.paddings.ISO7816d4Padding; 434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.params.KeyParameter; 444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.crypto.params.ParametersWithIV; 454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompublic class BaseMac 474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends MacSpi implements PBE 484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom{ 494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private Mac macEngine; 504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private int pbeType = PKCS12; 524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private int pbeHash = SHA1; 534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private int keySize = 160; 544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected BaseMac( 564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom Mac macEngine) 574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.macEngine = macEngine; 594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected BaseMac( 624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom Mac macEngine, 634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom int pbeType, 644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom int pbeHash, 654c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom int keySize) 664c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 674c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.macEngine = macEngine; 684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.pbeType = pbeType; 694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.pbeHash = pbeHash; 704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.keySize = keySize; 714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected void engineInit( 744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom Key key, 754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom AlgorithmParameterSpec params) 764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws InvalidKeyException, InvalidAlgorithmParameterException 774c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 784c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom CipherParameters param; 794c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 804c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom if (key == null) 814c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 824c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throw new InvalidKeyException("key is null"); 834c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 844c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 854c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom if (key instanceof BCPBEKey) 864c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 874c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom BCPBEKey k = (BCPBEKey)key; 884c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 894c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom if (k.getParam() != null) 904c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 914c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom param = k.getParam(); 924c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 934c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom else if (params instanceof PBEParameterSpec) 944c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 954c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom param = PBE.Util.makePBEMacParameters(k, params); 964c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 974c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom else 984c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 994c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set."); 1004c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1014c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1024c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom else if (params instanceof IvParameterSpec) 1034c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1044c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom param = new ParametersWithIV(new KeyParameter(key.getEncoded()), ((IvParameterSpec)params).getIV()); 1054c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1064c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom else if (params == null) 1074c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1084c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom param = new KeyParameter(key.getEncoded()); 1094c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom else 1114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throw new InvalidAlgorithmParameterException("unknown parameter type."); 1134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom macEngine.init(param); 1164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected int engineGetMacLength() 1194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom return macEngine.getMacSize(); 1214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected void engineReset() 1244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom macEngine.reset(); 1264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected void engineUpdate( 1294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom byte input) 1304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom macEngine.update(input); 1324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected void engineUpdate( 1354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom byte[] input, 1364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom int offset, 1374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom int len) 1384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom macEngine.update(input, offset, len); 1404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom protected byte[] engineDoFinal() 1434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom byte[] out = new byte[engineGetMacLength()]; 1454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom macEngine.doFinal(out, 0); 1474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom return out; 1494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 1524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * the classes that extend directly off us. 1534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 1544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 1564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * DES 1574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 1584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class DES 1594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 1604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public DES() 1624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new CBCBlockCipherMac(new DESEngine())); 1644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1654c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1664c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1674c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 1684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * DES 64 bit MAC 1694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 1704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class DES64 1714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 1724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public DES64() 1744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new CBCBlockCipherMac(new DESEngine(), 64)); 1764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1774c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1784c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1794c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 1804c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * RC2 1814c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 1824c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class RC2 1834c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 1844c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1854c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public RC2() 1864c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 1874c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new CBCBlockCipherMac(new RC2Engine())); 1884c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1894c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 1904c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 1914c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-removed 1924c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 1934c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * GOST28147 1944c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 1954c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class GOST28147 1964c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 1974c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 1984c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public GOST28147() 1994c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2004c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new GOST28147Mac()); 2014c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2024c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2034c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2044c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2054c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2064c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 2074c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * DES 2084c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 2094c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class DESCFB8 2104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 2114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public DESCFB8() 2134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new CFBBlockCipherMac(new DESEngine())); 2154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 2194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * RC2CFB8 2204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 2214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class RC2CFB8 2224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 2234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public RC2CFB8() 2254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new CFBBlockCipherMac(new RC2Engine())); 2274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 2314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * DES9797Alg3with7816-4Padding 2324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 2334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class DES9797Alg3with7816d4 2344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 2354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public DES9797Alg3with7816d4() 2374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new ISO9797Alg3Mac(new DESEngine(), new ISO7816d4Padding())); 2394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 2434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * DES9797Alg3 2444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 2454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class DES9797Alg3 2464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 2474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public DES9797Alg3() 2494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new ISO9797Alg3Mac(new DESEngine())); 2514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 2554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * MD2 HMac 2564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 2574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class MD2 2584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 2594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public MD2() 2614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new MD2Digest())); 2634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2654c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 2664c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 2674c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * MD4 HMac 2684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 2694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class MD4 2704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 2714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public MD4() 2734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 2744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new MD4Digest())); 2754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 2774c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-removed 2784c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 2794c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 2804c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * MD5 HMac 2814c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 2824c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class MD5 2834c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 2844c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 2854c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public MD5() 2864c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 2874c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-changed 2884c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new OpenSSLDigest.MD5())); 2894c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-changed 2904c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 2914c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 2924c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 2934c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 2944c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * SHA1 HMac 2954c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 2964c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class SHA1 2974c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 2984c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 2994c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public SHA1() 3004c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3014c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-changed 3024c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new OpenSSLDigest.SHA1())); 3034c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-changed 3044c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3054c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3064c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 3074c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-removed 3084c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 3094c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * SHA-224 HMac 3104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 3114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class SHA224 3124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 3134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public SHA224() 3154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new SHA224Digest())); 3174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-removed 3204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 3214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 3224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * SHA-256 HMac 3234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 3244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class SHA256 3254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 3264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public SHA256() 3284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new OpenSSLDigest.SHA256())); 3304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 3334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 3344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * SHA-384 HMac 3354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 3364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class SHA384 3374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 3384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public SHA384() 3404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new OpenSSLDigest.SHA384())); 3424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 3454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-removed 3464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class OldSHA384 3474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 3484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public OldSHA384() 3504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new OldHMac(new SHA384Digest())); 3524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-removed 3554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 3564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 3574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * SHA-512 HMac 3584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 3594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class SHA512 3604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 3614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public SHA512() 3634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 3644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new OpenSSLDigest.SHA512())); 3654c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3664c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 3674c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 3684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-removed 3694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 3704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * SHA-512 HMac 3714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 3724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class OldSHA512 3734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 3744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public OldSHA512() 3764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3774c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new OldHMac(new SHA512Digest())); 3784c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3794c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3804c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 3814c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 3824c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * RIPEMD128 HMac 3834c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 3844c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class RIPEMD128 3854c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 3864c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3874c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public RIPEMD128() 3884c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3894c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new RIPEMD128Digest())); 3904c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3914c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 3924c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 3934c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 3944c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * RIPEMD160 HMac 3954c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 3964c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class RIPEMD160 3974c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 3984c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 3994c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public RIPEMD160() 4004c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4014c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new RIPEMD160Digest())); 4024c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4034c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4044c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 4054c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 4064c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * Tiger HMac 4074c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 4084c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class Tiger 4094c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 4104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public Tiger() 4124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new TigerDigest())); 4144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 4174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // // 4184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // // PKCS12 states that the same algorithm should be used 4194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // // for the key generation as is used in the HMAC, so that 4204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // // is what we do here. 4214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // // 4224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // 4234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 4244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * PBEWithHmacRIPEMD160 4254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 4264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class PBEWithRIPEMD160 4274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 4284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public PBEWithRIPEMD160() 4304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new RIPEMD160Digest()), PKCS12, RIPEMD160, 160); 4324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-removed 4354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 4364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom /** 4374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom * PBEWithHmacSHA 4384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom */ 4394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public static class PBEWithSHA 4404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends BaseMac 4414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 4424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public PBEWithSHA() 4434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 4444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-changed 4454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom super(new HMac(new OpenSSLDigest.SHA1()), PKCS12, SHA1, 160); 4464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-changed 4474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 4484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 4494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 4504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // BEGIN android-removed 4514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // /** 4524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // * PBEWithHmacTiger 4534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // */ 4544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public static class PBEWithTiger 4554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // extends BaseMac 4564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // public PBEWithTiger() 4584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // { 4594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // super(new HMac(new TigerDigest()), PKCS12, TIGER, 192); 4604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // } 4624c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom // END android-removed 4634c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom} 464