2010-12-26 11 views
2

RSA 1024ビットの「PEMヘッダーのないPKCS1公開鍵」を作成し、バイト配列として格納する必要があります。 In Net。フレームワーク私は2つの配列を持っています:RSAParameters.ModulusとRSAParameters.Exponent(私が理解するように公開鍵を構成します)。 これらの2つの配列を「PEMヘッダーのないPKCS1公開鍵」に変換するにはどうすればよいですか?Net FrameworkでPKCS1公開鍵を作成する

ありがとうございます。

答えて

1

はもっと簡単な方法がなければならない、しかし、1つの方法は、Bouncycastle C# libraryと、次の例のように、そのクラスのいくつかを使用することです:

using System.Security.Cryptography; 
using Org.BouncyCastle.Asn1; 

    public static byte[] DEREncode(RSACryptoServiceProvider rsa) 
    { 
     RSAParameters rsaParams = rsa.ExportParameters(false); 
     DerInteger n = new DerInteger(rsaParams.Modulus); 
     DerInteger e = new DerInteger(rsaParams.Exponent); 
     DerSequence seq = new DerSequence(new Asn1Encodable[] {n, e}); 
     return seq.GetEncoded(); 
    } 
2

あなただけのRSA公開鍵をエンコードする必要がある場合は、することができます独自のラッパーを書くと、5行のコーディングが必要になります。 ::

のRSAPublicKey = SEQUENCE { モジュラスINTEGER、 - nは publicExponent INTEGER - 電子 }

しかし、これはあなたが必要になります。 RSA公開鍵は、以下のASN.1構造として表現されなければなりませんいくつかのASN.1の基本を学びます。 また、この形式でのみ保存する必要があることを確認する必要があります。また、アプリケーションでalgorithmIdentifierを追加する必要もあります。

関連する問題