1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.bouncycastle.jce.provider;
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.InvalidAlgorithmParameterException;
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.InvalidKeyException;
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.Key;
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.spec.AlgorithmParameterSpec;
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.crypto.MacSpi;
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.crypto.spec.IvParameterSpec;
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.crypto.spec.PBEParameterSpec;
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.CipherParameters;
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.Mac;
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.digests.*;
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.engines.DESEngine;
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.engines.DESedeEngine;
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// BEGIN android-removed
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// import org.bouncycastle.crypto.engines.IDEAEngine;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// import org.bouncycastle.crypto.engines.RC2Engine;
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// import org.bouncycastle.crypto.engines.RC532Engine;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// import org.bouncycastle.crypto.engines.SkipjackEngine;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// END android-removed
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.macs.CBCBlockCipherMac;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.macs.CFBBlockCipherMac;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// BEGIN android-removed
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// import org.bouncycastle.crypto.macs.GOST28147Mac;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// END android-removed
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.macs.HMac;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.macs.ISO9797Alg3Mac;
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.macs.OldHMac;
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.params.KeyParameter;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.params.ParametersWithIV;
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class JCEMac
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    extends MacSpi implements PBE
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private Mac macEngine;
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private int                     pbeType = PKCS12;
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private int                     pbeHash = SHA1;
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private int                     keySize = 160;
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected JCEMac(
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Mac macEngine)
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.macEngine = macEngine;
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected JCEMac(
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Mac macEngine,
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int pbeType,
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int pbeHash,
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int keySize)
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.macEngine = macEngine;
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.pbeType = pbeType;
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.pbeHash = pbeHash;
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.keySize = keySize;
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void engineInit(
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Key                     key,
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        AlgorithmParameterSpec  params)
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        throws InvalidKeyException, InvalidAlgorithmParameterException
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CipherParameters        param;
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (key == null)
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            throw new InvalidKeyException("key is null");
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (key instanceof JCEPBEKey)
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            JCEPBEKey   k = (JCEPBEKey)key;
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            if (k.getParam() != null)
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            {
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                param = k.getParam();
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            else if (params instanceof PBEParameterSpec)
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            {
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                param = PBE.Util.makePBEMacParameters(k, params);
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            else
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            {
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        else if (params instanceof IvParameterSpec)
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            param = new ParametersWithIV(new KeyParameter(key.getEncoded()), ((IvParameterSpec)params).getIV());
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        else if (params == null)
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            param = new KeyParameter(key.getEncoded());
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        else
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            throw new InvalidAlgorithmParameterException("unknown parameter type.");
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        macEngine.init(param);
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected int engineGetMacLength()
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return macEngine.getMacSize();
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void engineReset()
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        macEngine.reset();
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void engineUpdate(
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte    input)
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        macEngine.update(input);
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void engineUpdate(
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]  input,
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int     offset,
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int     len)
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        macEngine.update(input, offset, len);
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected byte[] engineDoFinal()
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]  out = new byte[engineGetMacLength()];
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        macEngine.doFinal(out, 0);
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return out;
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * the classes that extend directly off us.
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * DES
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class DES
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public DES()
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new CBCBlockCipherMac(new DESEngine()));
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * DESede
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class DESede
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public DESede()
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new CBCBlockCipherMac(new DESedeEngine()));
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SKIPJACK
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class Skipjack
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public Skipjack()
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CBCBlockCipherMac(new SkipjackEngine()));
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * IDEA
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class IDEA
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public IDEA()
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CBCBlockCipherMac(new IDEAEngine()));
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * RC2
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class RC2
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public RC2()
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CBCBlockCipherMac(new RC2Engine()));
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * RC5
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class RC5
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public RC5()
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CBCBlockCipherMac(new RC532Engine()));
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * GOST28147
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class GOST28147
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public GOST28147()
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new GOST28147Mac());
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * DES
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class DESCFB8
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public DESCFB8()
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new CFBBlockCipherMac(new DESEngine()));
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * DESede
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class DESedeCFB8
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public DESedeCFB8()
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new CFBBlockCipherMac(new DESedeEngine()));
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SKIPJACK
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class SkipjackCFB8
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public SkipjackCFB8()
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CFBBlockCipherMac(new SkipjackEngine()));
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * IDEACFB8
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class IDEACFB8
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public IDEACFB8()
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CFBBlockCipherMac(new IDEAEngine()));
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * RC2CFB8
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class RC2CFB8
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public RC2CFB8()
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CFBBlockCipherMac(new RC2Engine()));
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * RC5CFB8
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class RC5CFB8
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public RC5CFB8()
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new CFBBlockCipherMac(new RC532Engine()));
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * DESede64
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class DESede64
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public DESede64()
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new CBCBlockCipherMac(new DESedeEngine(), 64));
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * DES9797Alg3
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class DES9797Alg3
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public DES9797Alg3()
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new ISO9797Alg3Mac(new DESEngine()));
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * MD2 HMac
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class MD2
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public MD2()
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new HMac(new MD2Digest()));
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * MD4 HMac
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // BEGIN android-removed
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // public static class MD4
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     extends JCEMac
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // {
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     public MD4()
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     {
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //         super(new HMac(new MD4Digest()));
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //     }
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // }
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // END android-removed
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * MD5 HMac
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class MD5
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public MD5()
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new MD5Digest()));
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SHA1 HMac
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class SHA1
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public SHA1()
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new SHA1Digest()));
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SHA-224 HMac
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class SHA224
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public SHA224()
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new SHA224Digest()));
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SHA-256 HMac
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class SHA256
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public SHA256()
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new SHA256Digest()));
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SHA-384 HMac
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class SHA384
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public SHA384()
425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new SHA384Digest()));
427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class OldSHA384
431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public OldSHA384()
434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new OldHMac(new SHA384Digest()));
436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SHA-512 HMac
441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class SHA512
443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public SHA512()
446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new SHA512Digest()));
448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * SHA-512 HMac
453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class OldSHA512
455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public OldSHA512()
458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new OldHMac(new SHA512Digest()));
460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// BEGIN android-removed
464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    /**
465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     * RIPEMD128 HMac
466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     */
467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public static class RIPEMD128
468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        extends JCEMac
469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    {
470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        public RIPEMD128()
471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        {
472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//           super(new HMac(new RIPEMD128Digest()));
473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        }
474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    /**
477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     * RIPEMD160 HMac
478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     */
479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public static class RIPEMD160
480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        extends JCEMac
481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    {
482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        public RIPEMD160()
483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        {
484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//           super(new HMac(new RIPEMD160Digest()));
485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        }
486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    /**
489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     * Tiger HMac
490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     */
491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public static class Tiger
492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        extends JCEMac
493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    {
494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        public Tiger()
495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        {
496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//            super(new HMac(new TigerDigest()));
497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        }
498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    //
501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    // PKCS12 states that the same algorithm should be used
502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    // for the key generation as is used in the HMAC, so that
503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    // is what we do here.
504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    //
505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    /**
507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     * PBEWithHmacRIPEMD160
508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//     */
509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public static class PBEWithRIPEMD160
510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        extends JCEMac
511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    {
512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        public PBEWithRIPEMD160()
513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        {
514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//            super(new HMac(new RIPEMD160Digest()), PKCS12, RIPEMD160, 160);
515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        }
516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// END android-removed
518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * PBEWithHmacSHA
521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static class PBEWithSHA
523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        extends JCEMac
524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public PBEWithSHA()
526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(new HMac(new SHA1Digest()), PKCS12, SHA1, 160);
528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * PBEWithHmacTiger
533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// BEGIN android-removed
535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public static class PBEWithTiger
536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        extends JCEMac
537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    {
538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        public PBEWithTiger()
539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        {
540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//            super(new HMac(new TigerDigest()), PKCS12, TIGER, 192);
541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        }
542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// END android-removed
544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
545