Vorrei creare un tasto TDES con chiave 128bit e 2KTDES con 192 bit per l'autenticazione in una smart card Desfire. Quindi ho usato il keytool per generare i jceks con il seguente comando. Quando eseguo lo stesso nella cartella C:\Program Files (x86)\Java\jdk1.8.0_25\jre\bin
, posso vedere che l'esecuzione ha esito positivo e che i jceks sono stati creati. Tuttavia, quando esporti il keytool.exe in un'altra posizione, forse il desktop, posso vedere che lo stesso comando non riesce con il seguente errore.
C:\Users\Charan\Desktop\KeyGen>keytool -genseckey -alias TDES -keyalg DESede -keysize 128 -storetype jceks -keystore TDES.jceks -storepass change -keypass change
keytool error: java.security.InvalidParameterException: Wrong keysize: must be equal to 112 or 168
C:\Users\Charan\Desktop\KeyGen>
C:\Users\Charan\Desktop\KeyGen>
Ho provato lo stesso con entrambe le opzioni 112 e 168, in entrambi i casi si esegue senza errori ma le chiavi create in entrambi i casi sono 192 bit. Ma la domanda originale rimane ancora un mistero perché quando ho provato a creare entrambe le chiavi 192 e 256 bit con DESEDE, sono stato in grado di eseguirle quando eseguivo il keytool dalla cartella bin. I file keystore generati avevano la lunghezza corretta della chiave, 192 e 256.