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 ParametersWithIV
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    implements CipherParameters
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private byte[]              iv;
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private CipherParameters    parameters;
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public ParametersWithIV(
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CipherParameters    parameters,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]              iv)
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this(parameters, iv, 0, iv.length);
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public ParametersWithIV(
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CipherParameters    parameters,
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]              iv,
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int                 ivOff,
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int                 ivLen)
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.iv = new byte[ivLen];
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.parameters = parameters;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        System.arraycopy(iv, ivOff, this.iv, 0, ivLen);
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public byte[] getIV()
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return iv;
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public CipherParameters getParameters()
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return parameters;
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
40