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