Esiste un modo per generare una coppia di chiavi a 128 bit adatta per la crittografia utilizzando il programma keytool di Sun? Sembra che gli algoritmi disponibili in http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator non siano supportati o non consentano chiavi più corte di 512 bit.Generazione di chiavi a 128 bit con keytool
La coppia di chiavi verrà utilizzata con ff. frammento di codice:
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();
}
cui uscita è alcuni OutputStream in cui i dati criptati vengono salvate e ingresso è qualche InputStream dove verranno letti i dati in chiaro.
stavo cercando di generare un CERT di prova da utilizzare con AES-128. Allora sto andando nel modo sbagliato? –
Potresti spiegare un po 'più in dettaglio cosa vuoi realizzare? –
È stata aggiornata la domanda con lo snippet di codice in cui verranno utilizzate le coppie di chiavi generate. –