initial checkin
[org.ibex.nanogoat.git] / src / org / bouncycastle / crypto / CipherKeyGenerator.java
1 package org.bouncycastle.crypto;
2
3 import java.security.SecureRandom;
4
5 /**
6  * The base class for symmetric, or secret, cipher key generators.
7  */
8 public class CipherKeyGenerator
9 {
10     protected SecureRandom  random;
11     protected int           strength;
12
13     /**
14      * initialise the key generator.
15      *
16      * @param param the parameters to be used for key generation
17      */
18     public void init(
19         KeyGenerationParameters param)
20     {
21         this.random = param.getRandom();
22         this.strength = (param.getStrength() + 7) / 8;
23     }
24
25     /**
26      * generate a secret key.
27      *
28      * @return a byte array containing the key value.
29      */
30     public byte[] generateKey()
31     {
32         byte[]  key = new byte[strength];
33
34         random.nextBytes(key);
35
36         return key;
37     }
38 }