Laden Sie einen privaten RSA-Schlüssel in Java (algid parse error, keine Sequenz)

8

Ich versuche, einen privaten RSA Schlüssel zu laden, der mit ssl in Java erzeugt wird, mein Code ist:

Generiert den Schlüssel :

%Vor%

Ergebnis:

%Vor%

Laden:

%Vor%

und es wirft ein IOException : algid parse error, not a sequence . Wo ist der Fehler?

%Vor%     
Addev 11.03.2013, 16:52
quelle

6 Antworten

-1

Sie können die Schlüssel bei Bedarf noch laden,

%Vor%

alles, was Sie brauchen, ist der Modul und der Exponent.

    
hellfiend 13.03.2013, 16:49
quelle
14

Wenn Sie nach der Antwort von Julien Kronegg diesen Fehler bekommen, weil Ihre Datei ein PKCS # 1-Format hat, können Sie sie folgendermaßen in eine PKCS # 8-Datei konvertieren:

Speichern Sie zuerst Ihre PKCS # 1-Schlüsseldatei in einer Datei namens priv1.pem :

%Vor%

Führen Sie dann den folgenden Befehl aus:

%Vor%

Dies erzeugt eine Datei namens priv8.pem , die Ihre Schlüsseldatei im PKCS # 8-Format ist:

%Vor%

Ich benutze dies von Java wie folgt:

%Vor%     
Michael Herrmann 04.03.2014 15:56
quelle
11

Hier ist ein geänderter org.apache.jmeter.protocol.oauth.sampler.PrivateKeyReader-Code, der nur Java-Laufzeit verwendet. Es funktioniert für mich, es kann PKCS # 1 oder PKCS # 8 private Schlüsseldatei laden und gibt eine PrivateKey-Klasse zurück. (Bitte lassen Sie es mich wissen, wenn ich beim Kopieren / Einfügen irgendetwas vermasselt habe).

Benutze es so: PrivateKey pk = (neuer PrivateKeyReader ("/ Pfad / zu / meinedatei.der")). GetPrivateKey ();

%Vor%     
misterti 23.04.2015 15:28
quelle
4

Sie erhalten diesen Fehler, weil Sie eine PKCS # 8-Schlüsseldatei lesen, aber Ihre Datei ein PKCS # 1-Format hat (PKCS # 1 hat den Header BEGIN RSA PRIVATE KEY , während PKCS # 8 den Header BEGIN PRIVATE KEY hat).

Um PKCS # 1- und PKCS # 8-PEM-Dateien lesen zu können, verwende ich den Quellcode von Apache JMeters %Co_de% :

PrivateKey pk = (neuer PrivateKeyReader ("/ Pfad / zu / meinedatei.der")). getPrivateKey ();

    
Julien Kronegg 30.01.2014 14:04
quelle
1

Alternativ können Sie mykey.pem in das DER-Format konvertieren und Ihren vorhandenen Code verwenden. Folgendes ist der openssl Befehl, um das zu tun

%Vor%

Die neue formatierte Datei sieht etwas wie

aus %Vor%     
user2866507 24.06.2014 20:34
quelle
1

versuche das:

%Vor%     
Jimmy Chan 06.05.2015 08:41
quelle

Tags und Links