2017-08-12 14 views
1

dotnet core(1.1)のPEM公開鍵ファイルを使用して文字列を暗号化しようとしています。どうすればよいですか?RSAはdotnetコアのPEM公開鍵から文字列を暗号化します

私は、これは単にのケースだろうと思った:

error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error

PEMファイルは次のようになります。私は、私は次のエラーを取得するまで、新しい証明書にしようとすると、しかし

var cert = new X509Certificate2("path_to_public_key.pem"); 
using (var rsa = cert.GetRSAPublicKey()) 
{ 
    // encrypt here 
} 

私はpemファイルをチェックしました。余分な^ M文字はどこにもありませんエラーの原因を示唆here)。

(つまりはすべての違いを、私はMacOSのシエラによ)

任意の助けいただければ幸いです!

+2

あなたは、公開鍵ではなく、証明書を持っているように見える:あなたは、そのようなを使用することができ、GetRSAProviderFromPemFileからRSAParametersオブジェクトを返すことができます。私は 'X509Certificate2'を使うべきではないと思います。 @ArtjomB。 –

+0

ありがとうございました!あなたは私を正しい道に送りました。 (誰かがそれを指摘すると、それはとても分かります!)。 – stush

答えて

1

Artjom Bさんからのコメントは、私に正しい道を教えてくれました。公開鍵は確かに証明書ではありません。

解決策はthis優れた投稿から来ました。

ドットネット(これはRSACryptoServiceProviderクラスを持たない)の場合、私は少し変更を加えました。

using (var rsa = RSA.Create() 
{ 
    rsa.ImportParameters(GetRSAProviderFromPemFile("path_to_pem.pem")); 
    var encrypted = rsa.Encrypt(...); 
} 
関連する問題