CertCreateContext 関数 (wincrypt.h)

CertCreateContext 関数は、エンコードされたバイトから指定されたコンテキストを作成します。 作成されたコンテキストには、拡張プロパティは含まれません。

構文

const void * CertCreateContext(
  [in]           DWORD                     dwContextType,
  [in]           DWORD                     dwEncodingType,
  [in]           const BYTE                *pbEncoded,
  [in]           DWORD                     cbEncoded,
  [in]           DWORD                     dwFlags,
  [in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);

パラメーター

[in] dwContextType

作成できるコンテキストを指定します。 たとえば、 証明書コンテキストを作成するには、 dwContextType を CERT_STORE_CERTIFICATE_CONTEXT に設定します。

現在定義されているコンテキスト型フラグを次の表に示します。

意味
CERT_STORE_CERTIFICATE_CONTEXT
証明書コンテキスト。
CERT_STORE_CRL_CONTEXT
CRL コンテキスト。
CERT_STORE_CTL_CONTEXT
CTL コンテキスト。

[in] dwEncodingType

使用するエンコードの種類を指定します。 現在、X509_ASN_ENCODINGとPKCS_7_ASN_ENCODINGのみが使用されています。ただし、今後、エンコードの種類が追加される可能性があります。 現在のエンコードの種類の場合は、次の値を使用します。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。

[in] pbEncoded

コピーする既存のエンコードされたコンテキスト コンテンツを含むバッファーへのポインター。

[in] cbEncoded

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

[in] dwFlags

次のフラグ値が定義されており、ビットごとの OR 演算を使用して組み合わせることができます。

意味
CERT_CREATE_CONTEXT_NOCOPY_FLAG
作成されたコンテキストは、割り当てられたコピーではなく pbEncoded が指すコンテンツを直接指します。
CERT_CREATE_CONTEXT_SORTED_FLAG
関数は、並べ替えられたエントリを含むコンテキストを作成します。 現在、このフラグは CTL コンテキストにのみ適用されます。

CCTL の場合、返されるCTL_INFO構造体の cCTLEntry メンバーは常に 0 です。 CertFindSubjectInSortedCTLCertEnumSubjectInSortedCTL を呼び出して、CTL エントリを検索または列挙する必要があります。

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
既定では、CTL コンテキストが作成されると、 その SignedData メッセージに対する HCRYTPMSG ハンドルが作成されます。 このフラグは、このハンドルを作成しないことによってパフォーマンスを向上させるために設定できます。 このフラグは、 dwContextType がCERT_STORE_CTL_CONTEXTされている場合にのみ使用できます。
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
既定では、CTL コンテキストが作成されると、そのエントリがデコードされます。 このフラグを設定すると、エントリはデコードされず、パフォーマンスが向上します。 このフラグは、 dwContextType がCERT_STORE_CTL_CONTEXTされている場合にのみ使用できます。

[in, optional] pCreatePara

CERT_CREATE_CONTEXT_PARA構造体へのポインター。

pCreatePara とその pfnFree メンバーの両方が NULL 以外の場合、pfnFree メンバーを使用して、pvFree メンバーで指定されたメモリを解放します。 pvFree メンバーが NULL の場合、pfnFree メンバーを使用して pbEncoded ポインターを解放します。

pCreatePara またはその pfnFree メンバーが NULL の場合、pbEncoded の解放は試行されません。

戻り値

関数が成功した場合、戻り値は新しく作成されたコンテキストへのポインターです。 作成されたコンテキストを解放するには、pCreatePara のpvFree メンバーを呼び出す必要があります。

関数が失敗した場合は、返される値は NULL です。 拡張エラー情報については、 GetLastError を呼び出します。

GetLastError がERROR_CANCELLEDを返す場合は、PFN_CERT_CREATE_CONTEXT_SORT_FUNCコールバック関数が FALSE を返して並べ替えを停止したことを意味します。

要件

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

こちらもご覧ください

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

証明書と証明書ストアのメンテナンス機能