1

切り離された PKCS#7 署名を検証しようとしています。WIN32 CryptoAPI 関数 CryptSignMessage() を使用して生成されたファイル。ファイルはクライアント側で署名されていますが、サーバー側の FreeBSD で検証する必要があります。そのため、CryptoAPI を使用できません。

この種のタスクに OpenSSL を使用する方法を決定するのを手伝ってください。これで、署名情報を含む FILENAME.xml と FILENAME.xml.sig の 2 つのファイルができました。仕様によると、このファイルには「指定されたコンテンツのハッシュ、ハッシュへの署名、および元のメッセージ コンテンツと署名付きハッシュの両方のエンコード」が含まれます。私が理解したように、証明書も含まれています。openssl を使用すると、このファイルから公開鍵と証明書を取得できますが、署名情報を取得する方法がわかりません。

そのため、このファイルから公開鍵や署名などの情報を取得して、openssl コマンドで使用しようとしています。

openssl dgst -verify PUBLIC_KEY_FILE -signature SIGNATURE_FILE -md_gost94 FILENAME.xml 検証エラー

また、このファイルからすべての情報を読み込めるサービスもあります。http://notary.cryptopro.ru/Detached.aspx

Information about EDS:
Algortim hashing:
Name:
GOST R 34.11-94
ID:
1.2.643.2.2.9
Algortim public key:
Name:
GOST R 34.10-2001
ID:
1.2.643.2.2.19
Value:
2DEA 8713 5AS2 69AA 34E0 B333 EF61 3773 5CF1
3BC4 BAD0 1745 0DDD 9577 FFAE BA4A A9EB A8CF
64B9 C338 1513 8BDB C478 BA3A 5409 6419 03A6
DD3A 04D2 D132 3319 8031
Serial Number: 1F11 EF05 0001 0000 1032

たぶん私は何かを理解していません。助けてください。それはまったく可能ですか?

4

1 に答える 1

1

関数を使用CryptSignMessage()した場合は、この公開鍵の証明書があります。そのため、サービスを使用できますopenssl cms(一部のディストリビューションでは、openssl はサービスなしでビルドされます。この場合、enable-cmsオプションで再コンパイルできます)。

サンプル コマンドは次のとおりです。

openssl cms -verify -nointern -noverify -certfile CERTIFICATE_FILE -inform DER -in SIGNATURE_FILE -content CONTENT_FILE -out /dev/null

CERTIFICATE_FILE はBase64形式の証明書です。

PS GOST アルゴリズムのサポートについてはよくわかりません。最初に sha1RSA を試してください。

于 2013-02-04T09:33:50.690 に答える