2016-01-20 2 views
2

J'essaie de réutiliser la paire de clés que j'ai générée pour créer une demande de signature de certificat PKCS10, mais je n'arrive pas à comprendre le format de cette clé privée.C# CX509PrivateKey Format

Pour créer la clé, j'utilise la classe CERTENROLLLib CX509PrivateKey.

J'ai mis la clé privée ProviderType à XCV_PROV_RSA_FULL, et quand je l'exporter (à essayer de comprendre quel est son format) J'utilise

Export("PRIVATEBLOB", EncodingType.XCN_CRYPT_STRING_BASE64) 

Quand je l'exporter, la clé privée commence toujours avec "BwIAAACkAABSU0E"

Est-ce que quelqu'un sait quel est ce format? Je pensais ANS.1 DER Encoding a toujours commencé avec "MII" ou quelque chose comme ça.

Répondre

2

Je pense avoir répondu à ma propre question:

La commande

Export("PRIVATEBLOB", EncodingType.XCN_CRYPT_STRING_BASE64) 

exporte la clé privée comme un blob CSP codé BASE64. Afin d'importer utilise les bibliothèques C# RSA que je devais utiliser ce qui suit:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); 
byte[] CryptoKey = Convert.FromBase64String(base64CspBlob); 
rsa.ImportCspBlob(CryptoKey); 

Cela fait!

+0

Merci de votre intérêt. Je l'ai deviné mais je n'ai pas pu tester, j'ai manqué de temps. Documentation de l'API horrible, heureux que vous l'ayez compris. –