2016-12-09 7 views
1

PKCS7検証機能は、署名なぜOpenSSLは署名を検証するためにSTACK_OF(X509)を使用しますか?

certs is a set of certificates in which to search for the signer's certificate.

はなぜOpenSSLが、この "証明書のセット" のために、すなわち、なぜスタックのような順序をSTACK_OF()を使用していますか?

int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, int flags);

を持っていますかこれには適切なタイプはX509_STOREではありませんか?

答えて

0

なぜこのような「証明書セット」にOpenSSLはSTACK_OF()を使用しますか?つまり、スタック状の注文はなぜですか? X509_STOREはこれに適したタイプではありませんか? PKCS7_verify man pageから

PKCS7_verifyは()本命は署名者の証明書を検索するここで、証明書の セットです... PKCS#7たsignedData構造を検証します。 ストアは信頼できる証明書ストアです(チェーン検証に使用されます)。 indataは、コンテンツがp7に存在しない場合(すなわち、 がデタッチされている場合)、署名されたデータです。

私が間違っていない場合は、(1)certsはエンドエンティティ証明書のコレクションです。あなたが誰を信頼しているかのリスト。 (2)storeは、CA証明書のコレクションです。そのリストには「誰が信頼を委任するのか」というリストがあります。

項目(1)と項目(2)は全く同じではありません。 CMSとPKCS#7をあまり頻繁に使用しないために交差するかどうかはわかりません。 "チェーン検証"から、私たちはパブリックとプライベートのPKIとパス構築について話していることを知っています。ヒップからシュートすると、私はPKI階層(項目(2))に対するWeb of Trust(項目(1))を推測しています。

関連する問題