Abrufen des öffentlichen Schlüssels aus dem Zertifikat
Ich versuche, beschaffen Sie den public key von einem Zertifikat mit der Methode:
FileInputStream fin = new FileInputStream("PathToCertificate");
CertificateFactory f = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
aber ich erhalte die folgende Fehlermeldung:
Exception in thread "main" java.lang.ClassCastException: sun.security.x509.X509CertImpl cannot be cast to codec.x509.X509Certificate
at sergas_testcertificates.Main.main(Main.java:54)
Weiß jemand, was dieser Fehler ist?
Vielen Dank im Voraus
InformationsquelleAutor der Frage javi | 2011-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie die falsche Klasse importiert für
X509Certificate
.Sind Sie wahrscheinlich auf der Suche für
java.security.cert.X509Certificate
nichtcodec.x509.X509Certificate
.InformationsquelleAutor der Antwort Dan
da Sie nur ziehen Sie die öffentlichen Schlüssel, können Sie das Zertifikat der Klasse. Die factory-Klasse wird entscheiden, welche Art von Zertifikat zurück.
Wenn Sie brauchen, um Besetzung dieser für ein anderes Grund ist, überprüfen Sie Ihre Importe und ändern Sie es, X509Certificate kommen aus javax.Sicherheit.cert
InformationsquelleAutor der Antwort Sean