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 へのリンクが既にストアに存在する場合に実行するアクションを指定します。 現在定義されている廃棄値とその用途は次のとおりです。
| 値 | 説明 |
|---|---|
|
既存の一致する CRL または一致する CRL へのリンクに対してチェックを行いません。 新しい CRL は常にストアに追加されます。 これにより、ストア内で重複が発生する可能性があります。 |
|
一致する CRL または一致する CRL へのリンクが存在する場合、操作は失敗します。 GetLastError は 、CRYPT_E_EXISTSコードを返します。 |
|
一致する 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の場合と同じですが、古い CRL が置き換えられた場合、古い CRL のプロパティは置換 CRL に組み込まれます。 |
|
一致する CRL または一致する CRL へのリンクが存在する場合は、既存の CRL またはリンクが削除され、新しい CRL が作成されてストアに追加されます。 一致する CRL または一致する CRL へのリンクが存在しない場合は、CRL が追加されます。 |
|
ストアに一致する CRL が存在する場合、新しいコンテキストを作成して追加する前に、既存のコンテキストが削除されます。 追加されたコンテキストは、既存の CRL からプロパティを継承します。 |
|
一致する CRL または一致する CRL へのリンクが存在する場合は、その既存の CRL が使用され、新しい CRL のプロパティが追加されます。 関数は失敗しませんが、新しい CRL は追加されません。
ppCertContext が NULL でない場合、既存のコンテキストが複製されます。
一致する CRL または一致する CRL へのリンクが存在しない場合は、新しい CRL が追加されます。 |
[out, optional] ppStoreContext
デコードされた CRL コンテキストへのポインターへのポインター。 これは省略可能なパラメーターであり、呼び出し元のアプリケーションが追加または既存の CRL のコピーを必要としないことを示す NULL にすることができます。 コピーが作成された場合、そのコンテキストは CertFreeCRLContext を使用して解放する必要があります。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。 呼び出された関数 CertAddEncodedCRLToStore および CertSetCRLContextProperty からの エラーは、この関数に反映できます。
拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次に示します。
| リターン コード | 説明 |
|---|---|
|
このエラーは、CERT_STORE_ADD_NEWが設定されていて、CRL がストアに既に存在する場合、または CERT_STORE_ADD_NEWERが設定されていて、追加する CRL の ThisUpdate 日付以上の ThisUpdate 日付を持つ CRL がストアに存在する場合に返されます。 |
|
dwAddDisposition パラメーターは、無効な処理値を指定しました。 |
解説
CRL コンテキストは、 CertDuplicateCRLContext を使用して複製されません。 代わりに、新しいコピーが作成され、ストアに追加されます。 エンコードされた CRL のコピーに加えて、関数はコンテキストのプロパティをコピーします。
証明書ストアから CRL コンテキストを削除するには、 CertDeleteCRLFromStore 関数を使用します。
要件
| サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
| サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
| 対象プラットフォーム | Windows |
| ヘッダー | wincrypt.h |
| Library | Crypt32.lib |
| [DLL] | Crypt32.dll |