2

私はECDsaCng、CngKey、および有効なEC証明書で署名することに頭を悩ませようとしています。証明書は「Symantec Class 3 ECC 256 bit Extended Validation CA」によって発行され、「sha256ECDSA」の署名アルゴリズム、「sha256」の署名ハッシュ アルゴリズム、公開鍵パラメーター = 「ECDSA_P256」、および鍵使用法 = 「デジタル署名 ( 80)」。

ECDsaCng に加えて、証明書で JwtSecurityTokenHandler を使用しようとしましたが、「証明書アルゴリズムがサポートされていません」という例外が発生します。「標準」の2048ビットSSL証明書を使用すると正常に機能します。

私がする必要があるのは、ES256 で JWT に署名することです。これまでのところ、これは ECDsaCng で 256 ビットの「ランダムに生成された」キーを使用することによってのみ機能するため、これらの質問のいずれかに対する答えは本当に私の一日になります:

  1. ES256 署名を行うために JwtSecurityTokenHandler で使用できる有効な証明書を注文するにはどうすればよいですか?

  2. ストアで自分の証明書から CngKey を作成するにはどうすればよいですか? (証明書の秘密鍵はエクスポートできません。)

  3. ストアからエクスポートできない ES256 と証明書の秘密鍵で署名する他の方法はありますか?

どんな助けでも大歓迎です!

よろしくお願いします、

ヘンリク

4

1 に答える 1

1

.NET 4.6.1 では、ECDSA を実行するための大幅に優れたサポートが追加されました。特に、GetECDsaPrivateKey (拡張) メソッド.

署名および検証メソッドは ECDsa 基本クラス (.NET 4.6.1 以降) にあるため、名前付きシステム キーまたはその他の直接的な操作を試みない限り、ECDsaCng タイプを直接操作する必要はありません。システム相互運用。

于 2016-08-12T15:25:19.193 に答える