2013-03-20 2 views
2

Когда я делаю X509Certificate2 x509 = new X509Certificate2(certificateFile);, в каком формате должен быть сертификат?X509 Формат сертификата

У меня есть секретный ключ:

-----BEGIN RSA PRIVATE KEY----- 
...... 
-----END RSA PRIVATE KEY----- 

и сертификат:

Certificate: 
    Data: 
     Version: 3 (0x2) 
     Serial Number: 
      .............. 
     Signature Algorithm: sha1WithRSAEncryption 
     Issuer: C=IL, ST=SS, L=...., O=....., OU=....., CN=...../emailAddress=..... 
     Validity 
      Not Before: Mar 19 14:45:09 2013 GMT 
      Not After : Mar 19 14:45:09 2014 GMT 
     Subject: C=IL, ST=SS, L=...., O=....., OU=....., CN=...../emailAddress=..... 
     Subject Public Key Info: 
      Public Key Algorithm: rsaEncryption 
       Public-Key: (2048 bit) 
       Modulus: 
        ................... 
       Exponent: 65537 (0x10001) 
     X509v3 extensions: 
      X509v3 Subject Key Identifier: 
       ......... 
      X509v3 Authority Key Identifier: 
       keyid:.......... 

      X509v3 Basic Constraints: 
       CA:TRUE 
    Signature Algorithm: sha1WithRSAEncryption 
     ..... 

Тем не менее, я могу загрузить ни с помощью кода C# выше. Что мне не хватает?

+0

Что вы подразумеваете под "не в состоянии загрузить"? Вы получаете исключение? Есть ли трассировка стека? –

+0

«Не удается найти запрошенный объект» – user2191209

+0

В соответствии с [документацией] (http://msdn.microsoft.com/en-us/library/ms148415.aspx) поддерживаются форматы DER или Base64. –

ответ

1

-----BEGIN RSA PRIVATE KEY----- - это заголовок для секретного ключа RSA в формате PKCS # 1 (незашифрованный). Этот формат используется в файлах PEM Private Key.

.NET Framework не предлагает готового метода прямого экспорта частного ключа в этом формате, поэтому вы должны его реализовать самостоятельно.

This document может вам помочь - есть пример декодирования секретного ключа RSA. Кодирование - это просто обратная операция.

Смежные вопросы