1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.bouncycastle.jce.spec;
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.spec.AlgorithmParameterSpec;
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Parameter spec for an integrated encryptor, as in IEEE P1363a
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class IESParameterSpec
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    implements AlgorithmParameterSpec
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private byte[]  derivation;
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private byte[]  encoding;
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private int     macKeySize;
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public IESParameterSpec(
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]  derivation,
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]  encoding,
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int     macKeySize)
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.derivation = new byte[derivation.length];
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        System.arraycopy(derivation, 0, this.derivation, 0, derivation.length);
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.encoding = new byte[encoding.length];
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        System.arraycopy(encoding, 0, this.encoding, 0, encoding.length);
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.macKeySize = macKeySize;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * return the derivation vector.
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public byte[] getDerivationV()
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return derivation;
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * return the encoding vector.
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public byte[] getEncodingV()
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return encoding;
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * return the key size in bits for the MAC used with the message
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int getMacKeySize()
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return macKeySize;
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
53