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 } 39