1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.bouncycastle.crypto.params;
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.bouncycastle.crypto.CipherParameters;
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class CCMParameters
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    implements CipherParameters
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private byte[] associatedText;
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private byte[] nonce;
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private KeyParameter key;
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private int macSize;
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Base constructor.
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param key key to be used by underlying cipher
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param macSize macSize in bits
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param nonce nonce to be used
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param associatedText associated text, if any
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public CCMParameters(KeyParameter key, int macSize, byte[] nonce, byte[] associatedText)
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.key = key;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.nonce = nonce;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.macSize = macSize;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.associatedText = associatedText;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public KeyParameter getKey()
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return key;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int getMacSize()
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return macSize;
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public byte[] getAssociatedText()
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return associatedText;
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public byte[] getNonce()
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return nonce;
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
49