Share via


CertAddEncodedCRLToStore 関数 (wincrypt.h)

CertAddEncodedCRLToStore 関数は、エンコードされた CRL から証明書失効リスト (CRL) コンテキストを作成し、証明書ストアに追加します。 関数は、CRL コンテキストをストアに追加する前に、CRL コンテキストのコピーを作成します。

構文

BOOL CertAddEncodedCRLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwCertEncodingType,
  [in]            const BYTE    *pbCrlEncoded,
  [in]            DWORD         cbCrlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppCrlContext
);

パラメーター

[in] hCertStore

証明書ストアのハンドル。

[in] dwCertEncodingType

使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING 現在定義されているエンコードの種類は次のとおりです。

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

証明書ストアに追加するエンコードされた CRL を含むバッファーへのポインター。

[in] cbCrlEncoded

pbCrlEncoded バッファーのサイズ (バイト単位)。

[in] dwAddDisposition

一致する CRL または一致する CRL へのリンクが既にストアに存在する場合に実行するアクションを指定します。 現在定義されている廃棄値とその用途は次のとおりです。

意味
CERT_STORE_ADD_ALWAYS
既存の一致する CRL または一致する CRL へのリンクに対してチェックを行いません。 新しい CRL は常にストアに追加されます。 これにより、ストア内で重複が発生する可能性があります。
CERT_STORE_ADD_NEW
一致する CRL または一致する CRL へのリンクが存在する場合、操作は失敗します。 GetLastError は 、CRYPT_E_EXISTSコードを返します。
CERT_STORE_ADD_NEWER
一致する CRL または一致する CRL へのリンクが存在する場合、CRL の ThisUpdate 時間が比較されます。 既存の CRL の ThisUpdate 時間が新しい CRL の ThisUpdate 時間より短い場合、古い CRL またはリンクはCERT_STORE_ADD_REPLACE_EXISTINGと同様に置き換えられます。 既存の CRL に追加する CRL の ThisUpdate 時間以上の ThisUpdate 時間がある場合、この関数は失敗し、 GetLastError はCRYPT_E_EXISTS コードを返します。

一致する CRL または一致する CRL へのリンクがストアに見つからない場合は、新しい CRL がストアに追加されます。

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
アクションは、CERT_STORE_ADD_NEWERの場合と同じですが、古い CRL が置き換えられた場合、古い CRL のプロパティは置換 CRL に組み込まれます。
CERT_STORE_ADD_REPLACE_EXISTING
一致する CRL または一致する CRL へのリンクが存在する場合、その既存の CRL またはリンクが削除され、新しい CRL が作成されてストアに追加されます。 一致する CRL または一致する CRL へのリンクが存在しない場合は、CRL が追加されます。
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
ストアに一致する CRL が存在する場合、その既存のコンテキストは、新しいコンテキストを作成して追加する前に削除されます。 新しいコンテキストは、既存の CRL からプロパティを継承します。
CERT_STORE_ADD_USE_EXISTING
一致する CRL または一致する CRL へのリンクが存在する場合は、その既存の CRL が使用され、新しい CRL のプロパティが追加されます。 関数は失敗しませんが、新しい CRL は追加されません。 ppCertContextNULL でない場合、既存のコンテキストが複製されます。

一致する CRL または一致する CRL へのリンクが存在しない場合は、新しい CRL が追加されます。

[out, optional] ppCrlContext

デコードされた CRL_CONTEXT 構造体へのポインターへのポインター。 これは、呼び出し元のアプリケーションが新規または既存の CRL のコピーを必要としないことを示す 、NULL を指定できる省略可能なパラメーターです。 コピーが作成された場合、そのコンテキストは CertFreeCRLContext を使用して解放する必要があります。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
CRYPT_E_EXISTS
CERT_STORE_ADD_NEWが設定され、CRL がストアに既に存在するか、CERT_STORE_ADD_NEWERが設定され、ストア内に、CRL が追加される ThisUpdate 時間以上の ThisUpdate 時間を持つ CRL があります。
E_INVALIDARG
無効な処理値が dwAddDisposition パラメーターで指定されたか、無効なエンコードの種類が指定されました。 現在、X509_ASN_ENCODINGエンコードの種類のみがサポートされています。
 

関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

こちらもご覧ください

CertAddCRLContextToStore

CertFreeCRLContext

証明書失効リスト関数