CertAddEncodedCertificateToStore 関数 (wincrypt.h)

CertAddEncodedCertificateToStore 関数は、エンコードされた証明書から証明書コンテキストを作成し、証明書ストアに追加します。 作成されたコンテキストには、拡張プロパティは含まれません。

CertAddEncodedCertificateToStore 関数は、ストアに証明書を追加する前に、エンコードされた証明書のコピーも作成します。

構文

BOOL CertAddEncodedCertificateToStore(
  [in]            HCERTSTORE     hCertStore,
  [in]            DWORD          dwCertEncodingType,
  [in]            const BYTE     *pbCertEncoded,
  [in]            DWORD          cbCertEncoded,
  [in]            DWORD          dwAddDisposition,
  [out, optional] PCCERT_CONTEXT *ppCertContext
);

パラメーター

[in] hCertStore

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

[in] dwCertEncodingType

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

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCertEncoded

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

[in] cbCertEncoded

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

[in] dwAddDisposition

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

意味
CERT_STORE_ADD_ALWAYS
関数は、既存の一致する証明書または一致する証明書へのリンクに対するチェックを行いません。 新しい証明書は常にストアに追加されます。 これにより、ストア内で重複が発生する可能性があります。
CERT_STORE_ADD_NEW
一致する証明書または一致する証明書へのリンクがストアに存在する場合、操作は失敗します。 GetLastError は 、CRYPT_E_EXISTSコードを返します。
CERT_STORE_ADD_REPLACE_EXISTING
一致する証明書または一致する証明書へのリンクがストアに存在する場合は、既存の証明書またはリンクが削除され、新しい証明書が作成されてストアに追加されます。 一致する証明書または一致する証明書へのリンクが存在しない場合は、新しい証明書が作成され、ストアに追加されます。
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
ストアに一致する証明書が存在する場合、新しいコンテキストを作成して追加する前に、その既存のコンテキストが削除されます。 新しいコンテキストは、既存の証明書からプロパティを継承します。
CERT_STORE_ADD_USE_EXISTING
一致する証明書または一致する証明書へのリンクが存在する場合は、その既存の証明書またはリンクが使用され、新しい証明書のプロパティが追加されます。 関数は失敗しませんが、新しいコンテキストは追加されません。 ppCertContextNULL でない場合、既存のコンテキストが複製されます。

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

[out, optional] ppCertContext

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

戻り値

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

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

リターン コード 説明
CRYPT_E_EXISTS
このコードは、CERT_STORE_ADD_NEWが設定されていて、証明書が既にストアに存在する場合、またはCERT_STORE_ADD_NEWERが設定されていて、追加する証明書の NotBefore 日付以上の NotBefore 日付を持つ証明書がストアに存在する場合に返されます。
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

こちらもご覧ください

CertAddCertificateContextToStore

CertFreeCertificateContext

証明書関数