Java Cifrado basado en contraseña AES de 256 bits

Necesito implementar el cifrado AES de 256 bits, pero todos los ejemplos que he encontrado en línea usan un "KeyGenerator" para generar una clave de 256 bits, pero me gustaría usar mi propia contraseña. ¿Cómo puedo crear mi propia clave? He intentado rellenarlo a 256 bits, pero luego aparece un error que dice que la clave es demasiado larga. Tengo instalado el parche de jurisdicción ilimitada, así que ese no es el problema:)

Es decir. El KeyGenerator se ve así ...

// Get the KeyGenerator
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128); // 192 and 256 bits may not be available

// Generate the secret key specs.
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();

Código tomado de aquí

EDITA

Realmente estaba rellenando la contraseña a 256 bytes, no bits, lo cual es demasiado largo. El siguiente es un código que estoy usando ahora que tengo más experiencia con esto.

byte[] key = null; // TODO
byte[] input = null; // TODO
byte[] output = null;
SecretKeySpec keySpec = null;
keySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
output = cipher.doFinal(input)

Los bits "TODO" que necesita hacer usted mismo: -)

Respuestas a la pregunta(18)

Su respuesta a la pregunta