1

PKCS#10 を作成する必要があるコードを実行しています。そのためには、「Certificate Request Info」に署名する必要がありますが、署名すると、アプリケーションは署名が無効であると言います。

P10 を確認するために OpenSSL.exe を使用していますが、エラーは「ANS1_CHECK_TLEN: 間違ったタグ」でした。署名すべきではないものに署名していると思うので、質問は、署名する必要がある「証明書要求情報」の正確な形式は何ですか?

シーケンスで開始する必要があることはわかっていますが、p10 仕様では次のように説明されています。

「署名プロセスは次の 2 つのステップで構成されます。

  1. authenticationRequestInfo コンポーネントの値は DER でエンコードされ、オクテット文字列が生成されます。
  2. ステップ 1 の結果は、指定された署名アルゴリズムの下で認証要求のサブジェクトの秘密鍵で署名され、ビット文字列である署名が生成されます。」

ANS.1 によると、開始が SEQUENCE (0x30 0x82 "the length>256") であるか、または A OCTET STRING (0x04 0x82 "the length>256") であるかはわかりません。

誰かがこの投稿のように答えてくれたら、私は世界で最も幸せな男になることができます. ありがとうございました:

PKCS#11 からのオブジェクト鍵ペアに対する PKCS#10 要求

よろしく、 David M.

4

1 に答える 1

0

PKCS#10 標準のステップ #1 は、要素のエンコードの結果としてのオクテット文字列について述べておりcertificationRequestInfo、ASN.1 タイプについては言及していません。リクエストの署名はこの DER エンコーディングで計算されるため、署名されるオブジェクトは .1SEQUENCEではなくASN.1OCTET STRINGです。

于 2011-06-24T11:21:32.240 に答える