ho generare un certificato utilizzando il comando keytool:PKCS # 12: DerInputStream.getLength() eccezione
keytool -genkeypair -alias myRSAKey -keyalg RSA -keysize 1024 -keystore test.p12 -storepass test -storetype pkcs12
Poi se provo a caricarlo utilizzando API di sicurezza di Java, dopo aver ottenuto il file come un byte [] :
KeyStore ks = KeyStore.getInstance("PKCS12");
try{
ks.load(new ByteArrayInputStream(data), "test".toCharArray())
} catch (Exception e){
...
}
Ottengo un DerInputStream.getLength(): lengthTag = 127, un'eccezione troppo grande.
Cosa c'è che non va?
Grazie. Il messaggio di errore è davvero fuorviante. Nel mio caso 'data' (la chiave) era un array di byte vuoto e questo ha causato questo errore. E tutto perché ho riutilizzato il flusso di input. – Stroboskop
La prima causa che fai notare è IMO la causa più comune: file normalmente sbagliato. cioè a volte mi capita quando provo ad usare un file di archivio di chiavi 'JKS' con un' KeyStore.getInstance ("PKCS12") 'o reversal':) '. – albciff