Question

Je suis en train de trouver un moyen de lire un privateKey créé à l'aide OpenSSL PKCS # 8 RSA en C # sans utiliser la bibliothèque externe.

Quelqu'un sait comment je peux le faire?

Était-ce utile?

La solution

La meilleure façon de le faire avec une bibliothèque externe, utilise le (gratuit) Chillkat publique / clé privée composante : à l'aide que l'importation de la clé peut être fait en utilisant seulement quelques lignes de code et si vous êtes prêt à payer 149 $ ou pour le reste de la bibliothèque, il fera face à des concepts généraux crypto beaucoup plus facile ainsi.

Et à la différence du .NET Framework régulière Microsoft, le projet Mono ne semblent avoir un la mise en œuvre de PKCS8 pour laquelle le full C # source de est disponible. Cela peut convenir comme point de départ dans le cas où vous ne pouvez absolument pas compter sur les bibliothèques externes, en supposant la licence (LGPL 2.0) associé au code Mono fonctionne pour vous ...

Enfin, le PKCS # format 8 n'est pas trop difficile à analyser, et les objets clés RSA / DSA paire sont comme par

Autres conseils

Merci pour votre réponse.

Mon script pour créer la clé RSA i utilisé Whit OpenSSL:

(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

En C #, nous avons besoin privateKey au format XML. Je cet analyseur pour le faire.

Pour déchiffrer de défi que nous devons utiliser:

  byte[] challange = server.getChallenge();

  RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider();

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

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

Pour chiffrer un certificat de serveur Whit, nous devons utiliser:

  RSACryptoServiceProvider rsaProvider = x509.PublicKey.Key as RSACryptoServiceProvider;

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

Merci pour JavaScience Conseil

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top