CertAddCRLLinkToStore 関数 (wincrypt.h)

CertAddCRLLinkToStore 関数は、ストア内のリンクを別のストアの証明書失効リスト (CRL) コンテキストに追加します。 この関数は、CRL の複製を作成して追加する代わりに、元の CRL コンテキストへのリンクを追加します。

構文

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

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

CERT_STORE_ADD_REPLACE_EXISTING
一致する CRL へのリンクが存在する場合、その既存のリンクが削除され、新しいリンクが作成され、ストアに追加されます。 一致する CRL または一致する CRL へのリンクが存在しない場合は、新しいリンクが追加されます。
CERT_STORE_ADD_USE_EXISTING
一致する CRL または一致する CRL へのリンクが存在する場合は、その既存のリンクが使用されます。 関数は失敗しませんが、新しいリンクは追加されません。 一致する CRL または CRL へのリンクが存在しない場合は、新しいリンクが追加されます。

[out, optional] ppStoreContext

作成されたリンクのコピーのポインターへのポインター。 リンクのコピーが不要であることを示すには、 ppStoreContext パラメーターに NULL を 指定できます。 リンクのコピーが作成された場合、そのコピーは CertFreeCRLContext を使用して解放する必要があります。

戻り値

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

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

リターン コード 説明
CRYPT_E_EXISTS
CERT_STORE_ADD_NEWの dwAddDisposition の場合、CTL はストアに既に存在します。
E_INVALIDARG
無効な廃棄値が dwAddDisposition パラメーターで指定されました。

注釈

リンクは元の CRL コンテキストへのアクセスを提供するため、リンクされた CRL コンテキストで拡張プロパティを設定すると、CRL の元の場所とその CRL への他のリンク内の拡張プロパティが変更されます。

コレクションとして開かれているストアにリンクを追加することはできません。 コレクションとして開かれたストアには、CERT_STORE_PROV_SYSTEMまたはCERT_STORE_PROV_COLLECTIONを使用して CertOpenSystemStore または CertOpenStore で開かれたすべてのストアが含まれます。 詳細については、「 CertAddStoreToCollection」を参照してください。

リンクが使用され、 CertCloseStore が CERT_CLOSE_STORE_FORCE_FLAG で呼び出される場合は、元のコンテキストを含むストアを閉じる前に、リンクを使用するストアを閉じる必要があります。 CERT_CLOSE_STORE_FORCE_FLAGを使用しない場合は、2 つのストアをどちらの順序でも閉じることができます。

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

要件

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

こちらもご覧ください

CertAddCTLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertCloseStore

CertFreeCRLContext

CertOpenStore

CertOpenSystemStore

証明書失効リスト関数