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 RC5Parameters
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    implements CipherParameters
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private byte[]  key;
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private int     rounds;
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public RC5Parameters(
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[]  key,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int     rounds)
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (key.length > 255)
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        {
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            throw new IllegalArgumentException("RC5 key length can be no greater than 255");
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.key = new byte[key.length];
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        this.rounds = rounds;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        System.arraycopy(key, 0, this.key, 0, key.length);
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public byte[] getKey()
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return key;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int getRounds()
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return rounds;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
36