2014-01-23 2 views
1

я проблемы для создания зашифрованного PEM отформатирован RSA секретный ключ C# У меня есть это:Генерация шифрованных RSA PEM с C#

-----BEGIN PRIVATE KEY----- 

MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOWsj2WijN35Rxbt 
ge2omKZCPNf3AchRxzUpnIEEHz/l9myBn+yZZLhJ3oec+z0ZJO2dOYzhsSDHbw3e 
6VSyFpoES1mje2yPCQFX/JVDdJHIwOSoEDY0SNty6b578x0IweI8jV5IYcSl0RK3 
nlrRLo3bg9bvfZebdlsaA6nW2G3XAgMBAAECgYEA31S3r52rmuEdtnbHI8EQhoLc 
RSikLBURP2myDGZkuK61u3ckel4CaY0y/O2yBAxiM0fyQULpCTXEkFlUzI3LmKoj 
/L0cSlk58xf8hB837/fn/bulnATWSajKn/p4ecXpBlPTySf9MPwoyNwXdyjjz0bQ 
c6oo1U42VybQRNgvWGECQQD/bs/aDjypd9AGUVFn6l6zoQEFRjNLevsHUEveD871 
UUmdkE9AXNyUR1k9W+OH1V74eS29spNphEnnCVV7ANVHAkEA5i8bXxa7g6Tue2/N 
kOjFK5i54RTaGPbjvPcg1N1Wq8pew0lx0lY3q7A+qH3VjiJHwSRifY7n92zkxutS 
qF4q8QJBAIcopYcmfWbW5RZStRadZ1r5WMbnrIDGJEpsbJimGMaqKp/bGnReLsGv 
N0NGehEIEGa+CDwWX/Y3b7t2ruqVOEUCQEVgw2Y4qtH13y9zNklL70nBoZzWtRm7 
KE8nSUz/XYUv3LoNo/HarLLhzzDnpHtPl8L+HXVsojvwJVBTUzmOEHECQAbb2iy3 
tRNcIWj770+6+9qj5fKKvhNNtBoh5rzu79PA9Un8pxEy7OTSVQJ+HtwoRzUrxK07 
IYp9K9Sbyy0yqkc= 

-----END PRIVATE KEY----- 

Но мне это нужно:

-----BEGIN RSA PRIVATE KEY----- 

Proc-Type: 4,ENCRYPTED 

DEK-Info: DES-EDE3-CBC,A07111D1F6B87B67 

mPmRmxCSDcdP6JW9BG12vp33aV1oxc3PRKwbBZJx8noV8RzqR4OnPEI9YzyvhLPT 
APy1XWNhlNa0CPIPEPr1XAJBgkmIBH4RAcjqAvW7X3FbDt5TTkCWad15aCQdRiZN 
vsab9/zX96GePrRyPkiVvTebhyHb0bsEaTl5ryYRcEos0aPreOSm+QJrQ4437I7C 
X5rLMm5mfh7a/BoYN4weH3rOku4+ZFQp3UMPM5HWEoAK/F2hFYPcR0p9h84QrlPO 
WVg5A5dN+28tk6LkWmdfTCXzV3r5jI3Pwo5eI8N6EWCyHMIfwZYIDKymSrCvF5i/ 
XXTh3OFtH1RoFJ9mchWacBN5lDck/2+/GBN5uQs3/Am7pQ4u/S1PBnT4bK4EjAf9 
P6kYKT4aPIarqR2tIJ9HDfEZ3JbsvLbvqJSaxGGhXsRzSylL6W3/IpoxKNFCF39x 
xEqXlN7OvW4fWA5HfM+fBQWNMcyt9FIv418+Z+GmT5TFG8BgaDcniKIk0XnfdDAw 
AajBobsGnFYe/Bk8qbMBQSDs9j0kGV2UE9LCPOh1P1JnLgiBsQeocbVc6FO3v7Kr 
kD3/aGRYMBJ80//0AzIJ/8m2Y+8y9D4i70KSCuC7WjTB85Nl6I77y8w1q3md4WJW 
TbINsCOmb8MpMLIOuS800PgCDM423FaekrmDnfRQKgv0aBPQd5+PY56t+kRzAXCT 
uihv+Pq7Rjpwbjewf/LI4Slt6o8o69VaNjDTOZiW3CYrxv4QQjKmdNdo12av+aJg 
9ts6SgEd6w0nyl/niBMWHhMCV6aZT7SAm0k3GJoDpJN+CbxiJaHV9g== 

-----END RSA PRIVATE KEY----- 

ПОМ из вершина была сгенерирована с C# и Bouncy Castle, вторая - с openssl.exe.

С уважением

+0

OpenSSL имеет функции для преобразования между различными форматами ключевых/сертификатов. Я бы предложил использовать их, а не пытаться сам его закодировать. – twalberg

+0

Спасибо. Второй PEM был сгенерирован с помощью «openssl rsa file.pem -des3 file_enc.enk.key -passout pass: myp @ ss» Мне нужно это с C# – tyrodeveloper

ответ

0

Я не уверен, если это то, что вам нужно, и я новичок в использовании этих рамок. Но если вы используете замок Bouncy, вот пример зашифрованного закрытого ключа. Заголовки Я думаю, что вы можете найти в объекте PEM (pem.Headers) и начать конец строки только для показа:

static void Main(string[] args) 
    { 
     Console.WriteLine(GeneratePrivateKey("12345", 4096, 4)); 
     Console.ReadLine(); 
    } 

    static string GeneratePrivateKey(string password, int strength, int iterationCount) 
    { 
     var rsa = new Org.BouncyCastle.Crypto.Generators.RsaKeyPairGenerator(); 
     rsa.Init(new Org.BouncyCastle.Crypto.KeyGenerationParameters(new Org.BouncyCastle.Security.SecureRandom(), strength)); 
     var asym = rsa.GenerateKeyPair(); 
     var generator = new Org.BouncyCastle.OpenSsl.Pkcs8Generator(asym.Private, Org.BouncyCastle.OpenSsl.Pkcs8Generator.PbeSha1_3DES); 
     generator.IterationCount = iterationCount; 
     generator.Password = password.ToCharArray(); 
     var pem = generator.Generate(); 
     return Convert.ToBase64String(pem.Content); 
    } 
Смежные вопросы