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