Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Key agreement
Forum - Java - Key agreement

Avatar
finanza (Normal User)
Rookie


Messaggi: 24
Iscritto: 08/01/2008

Segnala al moderatore
Postato alle 16:39
Lunedì, 21/01/2008
Vi presento l'ennesimo problema: voglio settare una pre-shared key usando Diffie Hellman. Ho fatto tutto seguendo il tutorial presente sulla documentazione java pero quando arriva il momento di creare effettivamente la chiave
SecretKey psk = kAgreement.generateSecret("AES");
moi genera l'errore
Unsupported secret key algorithm: AES.
Se invece provo col "DES" funziona tutto....devo dedurre che DH può essere usato solo per generare chiavi DES o 3DES?? A me ne serve una AES!!!!
Ho aggirato il problema facendo
byte[] clientSharedSecret = ka.generateSecret();
SecretKey psk = new
SecretKeySpec(clientSharedSecret, SYMM_ALG);
poi salvo la chiave, ma quando la rileggo mi dà
Invalid AES key length: 512
MA com'è possibile che mi genera una chiave AES di 512 bit?! Non capisco...

Ultima modifica effettuata da finanza il 21/01/2008 alle 16:45
PM Quote
Avatar
finanza (Normal User)
Rookie


Messaggi: 24
Iscritto: 08/01/2008

Segnala al moderatore
Postato alle 10:31
Martedì, 22/01/2008
Mi sono risolto anche questo problema...ecco la soluzione:

ka.generateSecret(serverSharedSecret, 0);
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(serverSharedSecret);            
byte[] rawKey = new byte[16]; // size of AES key
sr.nextBytes(rawKey);
SecretKey psk = new SecretKeySpec(rawKey, "AES");    



PM Quote