¿Hay alguna forma de generar un par de claves de 128 bits adecuado para el cifrado mediante el programa de herramientas de claves de Sun? Parece que los algoritmos disponibles en http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator no son compatibles o no permiten claves de menos de 512 bits.Generación de claves de 128 bits con keytool
El par de claves se usará con el ff. fragmento de código:
Security.addProvider(new BouncyCastleProvider());
KeyStore keyStore = KeyStore.getInstance("PKCS12");
FileInputStream keyStoreSource = new FileInputStream("keystore");
try {
keyStore.load(keyStoreSource, "password".toCharArray());
} finally {
keyStoreSource.close();
}
String alias = (String) keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, "password".toCharArray());
X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);
CMSEnvelopedDataStreamGenerator generator = new CMSEnvelopedDataStreamGenerator();
generator.addKeyTransRecipient(certificate);
OutputStream output2 = generator.open(output, CMSEnvelopedDataGenerator.AES128_CBC, BouncyCastleProvider.PROVIDER_NAME);
try {
IOUtils.copy(input, output2);
} finally {
output2.close();
output.close();
}
donde la producción es un poco de OutputStream donde se guardarán los datos cifrados y la entrada es un poco de InputStream, donde se leerán los datos de texto.
que estaba buscando para generar un certificado de prueba para utilizar con AES-128. ¿Lo estoy haciendo mal entonces? –
¿Podría explicar con más detalle lo que desea lograr? –
Pregunta actualizada con fragmento de código donde se usará el par de claves generado. –