CertAddCRLContextToStore 関数 (wincrypt.h)

CertAddCRLContextToStore 関数は、指定した証明書ストアに証明書失効リスト (CRL) コンテキストを追加します

構文

BOOL CertAddCRLContextToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            PCCRL_CONTEXT pCrlContext,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppStoreContext
);

パラメーター

[in] hCertStore

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

[in] pCrlContext

追加する CRL_CONTEXT 構造体へのポインター。

[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] ppStoreContext

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

戻り値

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

関数が失敗した場合、戻り値は FALSE になります。 呼び出された関数 CertAddEncodedCRLToStore および CertSetCRLContextProperty からの エラーは、この関数に反映できます。

拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
CRYPT_E_EXISTS
このエラーは、CERT_STORE_ADD_NEWが設定されていて、CRL がストアに既に存在する場合、または CERT_STORE_ADD_NEWERが設定されていて、追加する CRL の ThisUpdate 日付以上の ThisUpdate 日付を持つ CRL がストアに存在する場合に返されます。
E_INVALIDARG
dwAddDisposition パラメーターは、無効な処理値を指定しました。

解説

CRL コンテキストは、 CertDuplicateCRLContext を使用して複製されません。 代わりに、新しいコピーが作成され、ストアに追加されます。 エンコードされた CRL のコピーに加えて、関数はコンテキストのプロパティをコピーします。

証明書ストアから CRL コンテキストを削除するには、 CertDeleteCRLFromStore 関数を使用します。

要件

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

関連項目

CertAddEncodedCRLToStore

CertDuplicateCRLContext

CertFreeCRLContext

CertSetCRLContextProperty

証明書失効リスト関数