Salve a tutti sto imparando a usare BouncyCastle per la crittografia e mi trovo in difficoltà con l'applicazione dell'algoritmo di Diffie-Hellman, per lo scambio di chiavi private su connessioni non sicure.
Qui di seguito c'è la porzione di codice che riguarda Diffie-Hellman :
In pratica creo un generatore di coppie di chiavi (pubblica e privata) per Diffie-Hellman e genero le chiavi. Inizializzo l'agreement con la chiave privata e calcolo il passaggio con la chiave pubblica.codice:DHParametersGenerator DHParamGenerator = new DHParametersGenerator(); DHParamGenerator.init(1024, 80, new SecureRandom()); //Generazione dei parametri DH AsymmetricCipherKeyPairGenerator DHGenerator=new DHKeyPairGenerator(); DHGenerator.init(new DHKeyGenerationParameters(new SecureRandom(),DHParamGenerator.generateParameters())); AsymmetricCipherKeyPair DHKeyPair=DHGenerator.generateKeyPair(); DHBasicAgreement agreement=new DHBasicAgreement(); agreement.init(DHKeyPair.getPrivate()); agreement.calculateAgreement(DHKeyPair.getPublic());
calculateAgreement restituisce un valore BigInteger, quindi non restituisce una chiave che invece è di tipo byte[].
A questo punto non riesco a capire come generare la chiave privata.
Con il provider standard di java bastava fare :
secretKey=agreement.generateSecret("DES");
per ottenere la chiave privata. Ma con BouncyCastle?!?!
qualcuno sa aiutarmi?
grazie anticipatamente.
ciao ciao

Rispondi quotando