Lesen von PEM RSA Public Key Nur mit Bouncy Castle

8

Ich versuche mit C # eine .pem -Datei einzulesen, die nur einen öffentlichen RSA-Schlüssel enthält. Ich habe weder Zugriff auf die Informationen zum privaten Schlüssel, noch benötigt meine Anwendung dies. Die Datei myprivatekey.pem beginnt mit

-----BEGIN PUBLIC KEY----- und endet mit -----END PUBLIC KEY----- .

Mein aktueller Code ist wie folgt:

%Vor%

Allerdings gibt der Code ein InvalidCastException mit der Nachricht

aus
  

Das Objekt des Typs kann nicht umgewandelt werden   'Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters' einzugeben   'Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair'.

Wie kann ich Bouncy Castle PemReader verwenden, um nur einen öffentlichen Schlüssel zu lesen, wenn keine privaten Schlüsselinformationen verfügbar sind?

    
cytinus 05.07.2012, 14:16
quelle

3 Antworten

14

Der folgende Code liest einen öffentlichen Schlüssel nur mit einem Dateinamen. Die Ausnahmebehandlung sollte für jeden Produktionscode geändert werden. Diese Methode gibt AsymetricKeyParameter zurück.

%Vor%     
cytinus 06.07.2012, 17:41
quelle
2

Als Antwort auf c0d3Junk13 hatte ich das gleiche Problem für einen privaten PEM-Schlüssel, und ich brauchte den ganzen Nachmittag, um die Lösung mit C # BouncyCastle Version 1.7 und Visual Studio 2013 Desktop Express zu finden. Vergessen Sie nicht, den Projektverweis zu BouncyCastle.Crypto.dll

hinzuzufügen %Vor%     
Bertrand_Szoghy 26.05.2015 20:15
quelle
1

Hier ist eine mögliche Lösung, die sowohl öffentliche als auch private PEM-Dateien in RSACryptoServiceProvider liest:

%Vor%

Hoffe das hilft jemandem.

    
Bryan Chong 06.10.2017 03:55
quelle

Tags und Links