Esiste la possibilità di generare un java.security.cert.X509Certificate da un byte []?Genera X509Certificate dal byte []?
40
A
risposta
58
Sicuro.
Gli oggetti certificato possono essere creati da un'istanza di CertificateFactory - in particolare, una configurata per creare certificati X509. Questo può essere creato in questo modo:
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
allora avete bisogno di passare un InputStream contenente i byte del certificato. Ciò può essere ottenuto avvolgendo l'array di byte in un ByteArrayInputStream:
InputStream in = new ByteArrayInputStream(bytes);
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in);
-1
InputStream stream = null;
byte[] bencoded = javax.xml.bind.DatatypeConverter.parseBase64Binary(x509CertificateStr);
try {
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
cert = (X509Certificate) certFactory.generateCertificate(stream);
} catch (java.security.cert.CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
La domanda non menziona base-64 e manca l'inizializzazione di 'stream'. Questo codice genererà un 'NullPointerException'. – EJP
Problemi correlati
- 1. X509Certificate Constructor Eccezione
- 2. Genera byte casuali Cocoa?
- 3. Esporta chiave privata dall'oggetto X509Certificate
- 4. Crea StringBuilder dal byte []
- 5. Byte InputRange dal file
- 6. crea AudioClip dal byte []
- 7. Generazione di X509Certificate utilizzando bouncycastle X509v3CertificateBuilder
- 8. Immagine PIL aperta dal file di byte
- 9. lettura Crash byte dal getsectbyname
- 10. Generazione di X509Certificate con BouncyCastle con Java
- 11. Conversione del certificato X509Certificate2 in BouncyCastle X509Certificate
- 12. Genera un nome utente univoco dal nome e dal cognome?
- 13. Instantiate vista dal pennino genera errore
- 14. Android: genera AlertDialog dal thread di sfondo
- 15. Genera l'albero delle chiamate dal database cscope
- 16. Genera URL in MVC dal Codice Dietro
- 17. Ottieni un bit specifico dal byte
- 18. OpenCV creare Mat dal array di byte
- 19. Come creare un Drawable dal byte []? (Android)
- 20. Creare un java.io.File temporaneo dal byte []
- 21. Elimina ultimi N byte dal file
- 22. Individuazione del ContentType di un'immagine dal byte []
- 23. Genera un numero di 8 byte in Java
- 24. Conversione del byte del certificato [] in X509Certificato in Java
- 25. Impossibile analizzare il certificato: java.io.IOException: input vuoto X509Certificate
- 26. SslStream TcpClient: ha ricevuto un EOF imprevisto o 0 byte dal flusso di trasporto
- 27. Genera un'interfaccia dal file di classe solido in Eclipse
- 28. Genera database SQL CE dal codice EF: prima classe DbContext
- 29. Genera data dal numero della settimana in moment.js
- 30. Laravel/lumen 5.2 genera tabelle di migrazione dal database esistente
Grazie per la risposta. Ma sto diventando "(java.security.cert.CertificateException) java.security.cert.CertificateException: Impossibile analizzare il certificato: java.io.IOException: input vuoto" sull'ultima riga. InputStream non è vuoto, ma genera Eccezione – 0bj3ct
La stessa cosa è successa a me all'inizio perché non stavo pensando attentamente a quello che stavo facendo. Nel mio caso era perché stavo cercando di fare quanto sopra con i byte da un keystore piuttosto che il certificato nel keystore. Estrarre il certificato dal keystore, ottenere i byte codificati, e quindi lavorare su quelli è stato ciò che ha reso questa risposta sopra funzionante per me. –
Nel mio caso il problema era che il byte [] era codificato in base 64 ... Il messaggio di errore era "Input vuoto" leggermente fuorviante. Forse aiuta qualcuno a volte ... – riskop