Frage

Ich versuche, einen Weg zu finden, eine privateKey erstellt mit OpenSSL PKCS # 8 RSA in C #, ohne Verwendung externer Bibliothek zu lesen.

Hat jemand wissen, wie ich dies tun kann?

War es hilfreich?

Lösung

Der einfachste Weg, dies zu tun mit eine externe Bibliothek wird mit dem (frei) Chillkat Public / private Key Component : dass verwenden, können Sie den Schlüssel importieren Verwendung erfolgen nur ein paar Zeilen Code und wenn Sie bereit sind, die $ 149 oder so für den Rest der Bibliothek zu zahlen, wird es mit der allgemeinen Krypto Konzepte viel einfacher und machen den Umgang.

Und im Gegensatz zu den regulären Microsoft .NET Framework, das Mono-Projekt hat scheint eine PKCS8 Implementierung , für die die full C # source zur Verfügung steht. Dies kann als Ausgangspunkt für den Fall geeignet sein, das Sie absolut nicht auf externe Bibliotheken verlassen können, die (LGPL 2.0) Lizenz für Sie mit dem Mono Code funktioniert im Zusammenhang davon aus ...

Schließlich wird das PKCS # 8-Format nicht zu schwierig zu analysieren, und die RSA / DSA-Schlüsselpaar Objekte sind gemäß

Andere Tipps

Vielen Dank für Ihre Antwort.

Mein Skript RSA-Schlüssel erstellen i verwendet OpenSSL Whit:

(Linux Script)

openssl genrsa -out ${NAME}_openssl.key 2048
openssl pkcs8 -topk8 -in ${NAME}_openssl.key -nocrypt > ${NAME}.key
openssl req -new -x509 -key ${NAME}.key -out ${NAME}.crt -outform DER

In C # müssen wir privateKey im XML-Format. Ich benutzen diese Parser, dies zu tun.

zu entschlüsseln de Herausforderung, die wir verwenden müssen:

  byte[] challange = server.getChallenge();

  RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider();

  rsaProvider.FromXmlString(Demo.Properties.Resources.XmlPrivateKey);

  byte[] plaintext = rsaProvider.Decrypt(challange, false);

So verschlüsseln Sie Whit-Server-Zertifikat benötigen wir verwenden:

  RSACryptoServiceProvider rsaProvider = x509.PublicKey.Key as RSACryptoServiceProvider;

  byte[] answer = RsaProvider.Encrypt(plaintext, false);

Danke für JavaScience Beratung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top