ICertServerPolicy::SetCertificateExtension メソッド (certif.h)

SetCertificateExtension メソッドは、証明書に新しい拡張機能を追加します。

構文

HRESULT SetCertificateExtension(
  [in] const BSTR    strExtensionName,
  [in] LONG          Type,
  [in] LONG          ExtFlags,
  [in] const VARIANT *pvarValue
);

パラメーター

[in] strExtensionName

設定する拡張機能の オブジェクト識別子 (OID) を指定します。 文字列の長さは 31 文字以下である必要があります。

[in] Type

設定する拡張機能の種類を指定します。 Type パラメーターは、VARIANT 構造体の vt フィールドに設定されている pvarValue のデータ型と一致する必要があります。 Type パラメーターは、次のいずれかの型に設定できます。

意味
PROPTYPE_LONG
署名された長いデータ。
PROPTYPE_DATE
日付/時刻。
PROPTYPE_BINARY
拡張値は そのまま設定され、必要に応じて ASN.1 エンコードと見なされます。
PROPTYPE_STRING
拡張値は、新しい証明書に配置される前に、IA5 文字列としてエンコードされた ASN.1 になります。
メモURL を IA5 文字列として自動的にエンコードする場合にのみ、1 つの URL で構成される拡張値には PROPTYPE_STRING を使用する必要があります。 それ以外の場合は、URL を自分で IA5 文字列としてエンコードし、エンコードされた値 をPROPTYPE_BINARYとして渡します。
 

[in] ExtFlags

設定する拡張機能のフラグを指定します。 フラグを設定しない場合は、値 0 を使用するか、次のいずれかのフラグ値を使用します。 これらのフラグは 、OR 演算子を使用して結合できます。また、ポリシープライベート拡張フラグ (EXTENSION_POLICY_MASK フィールドの上位 8 ビット) で OR 演算子を使用してこれらのフラグを結合することもできます。

メモExtFlags が EXTENSION_DISABLE_FLAG に設定されている場合、拡張機能はサーバー ログで無効になり、証明書には追加されません。
 
意味
EXTENSION_CRITICAL_FLAG
これは重要な拡張機能です。
EXTENSION_DISABLE_FLAG
拡張機能は使用されません。

[in] pvarValue

拡張機能に関連付けられている値を指定します。 次の表に示すように、値の VARIANT 型は Type パラメーターと一致する必要があることに注意してください。

意味
PROPTYPE_LONG
VT_I4
PROPTYPE_DATE
VT_DATE
PROPTYPE_BINARY
VT_BSTR
PROPTYPE_STRING
VT_BSTR

戻り値

VB

メソッドが成功した場合、メソッドは S_OKを返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。

注釈

拡張機能を使用して、補足的なサブジェクトや使用状況情報など、証明書に追加情報を含めます。 詳細については、「 拡張ハンドラー」を参照してください。

ICertPolicy2::VerifyRequest メソッドの実装から SetCertificateExtension メソッドを呼び出します。 SetCertificateExtension メソッドを呼び出す前に、ICertServerPolicy::SetContext メソッドを呼び出す必要があります。

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certif.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certcli.dll

こちらもご覧ください

ICertServerPolicy

ICertServerPolicy::SetContext