Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › IX509AttributeRenewalCertificate

IX509AttributeRenewalCertificate

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID728ab326-217d-11da-b2a4-000e7bbb2b09継承元IX509Attribute呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl10

公式ドキュメント

更新される証明書を格納する属性を表します。この属性は PKCS に自動的に配置されます

メソッド 3

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 10 HRESULT InitializeEncode(EncodingType Encoding, LPWSTR strCert)

更新対象の証明書を使用して属性を初期化します。

EncodingEncodingTypeinstrCert パラメーターに格納される証明書に適用される Unicode エンコードの種類を指定する EncodingType 列挙値です。
strCertLPWSTRin

DER エンコードされた証明書を格納する BSTR 変数です。

Windows 7 および Windows Server 2008 R2 以降では、エンコードされた証明書の代わりに、証明書のサムプリントまたはシリアル番号を指定できます。その場合、関数は一致する証明書を探して適切なローカルストアを検索します。次の点に注意してください。

  • BSTR は 16 進数の桁数が偶数でなければなりません。
  • 16 進数のペア間の空白は無視されます。
  • Encoding パラメーターには XCN_CRYPT_STRING_HEXRAW を設定する必要があります。
  • 秘密キーが必要な場合は、個人ストアと要求ストアのみが検索されます。
  • 秘密キーが不要な場合は、ルートストアと中間 CA ストアも検索されます。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

解説(Remarks)

この属性の オブジェクト識別子 (OID) は XCN_OID_RENEWAL_CERTIFICATE (1.3.6.1.4.1.311.13.1) です。詳細については、CERTENROLL_OBJECTID を参照してください。

IX509AttributeRenewalCertificate オブジェクトを使用する前に、InitializeEncode または InitializeDecode のいずれかを呼び出す必要があります。この 2 つのメソッドは互いに補完し合います。InitializeEncode メソッドは生データからエンコードされた Abstract Syntax Notation One (ASN.1) 構造を構築でき、InitializeDecode メソッドはエンコードされた ASN.1 構造から生データを初期化できます。RenewalCertificate プロパティを呼び出して生データを取得できます。

vtbl 11 HRESULT InitializeDecode(EncodingType Encoding, LPWSTR strEncodedData)

更新対象の証明書を格納した Distinguished Encoding Rules (DER) エンコードのバイト配列からオブジェクトを初期化します。

EncodingEncodingTypein入力文字列に適用される Unicode エンコードの種類を指定する EncodingType 列挙値です。
strEncodedDataLPWSTRin

DER エンコードされた証明書を格納する BSTR 変数です。

Windows 7 および Windows Server 2008 R2 以降では、エンコードされた証明書の代わりに、証明書のサムプリントまたはシリアル番号を指定できます。その場合、関数は一致する証明書を探して適切なローカルストアを検索します。次の点に注意してください。

  • BSTR は 16 進数の桁数が偶数でなければなりません。
  • 16 進数のペア間の空白は無視されます。
  • Encoding パラメーターには XCN_CRYPT_STRING_HEXRAW を設定する必要があります。
  • 秘密キーが必要な場合は、個人ストアと要求ストアのみが検索されます。
  • 秘密キーが不要な場合は、ルートストアと中間 CA ストアも検索されます。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

解説(Remarks)

この属性の オブジェクト識別子 (OID) は XCN_OID_RENEWAL_CERTIFICATE (1.3.6.1.4.1.311.13.1) です。詳細については、CERTENROLL_OBJECTID を参照してください。

属性値を格納する DER エンコードされた Abstract Syntax Notation One (ASN.1) オブジェクトがある場合は、このメソッドを使用できます。DER エンコードされたオブジェクトは Unicode エンコードの文字列で指定する必要があります。詳細については、IBinaryConverter インターフェースを参照してください。

IX509AttributeRenewalCertificate オブジェクトを使用する前に、InitializeEncode または InitializeDecode のいずれかを呼び出す必要があります。この 2 つのメソッドは互いに補完し合います。InitializeEncode メソッドは生データからエンコードされた ASN.1 構造を構築でき、InitializeDecode メソッドはエンコードされた ASN.1 構造から生データを初期化できます。RenewalCertificate プロパティを呼び出して生データを取得できます。

vtbl 12 HRESULT get_RenewalCertificate(EncodingType Encoding, LPWSTR* pValue)

更新対象の証明書を取得します。

EncodingEncodingTypein出力する pValue の希望するエンコード形式を指定する EncodingType 値である。
pValueLPWSTR*out指定エンコード形式による更新対象証明書の文字列を受け取る出力先である。

解説(Remarks)

RenewalCertificate プロパティを初期化するには、InitializeEncode メソッドまたは InitializeDecode メソッドを呼び出します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IX509AttributeRenewalCertificate "{728AB326-217D-11DA-B2A4-000E7BBB2B09}"
#usecom global IX509AttributeRenewalCertificate IID_IX509AttributeRenewalCertificate "{}"
#comfunc global IX509AttributeRenewalCertificate_InitializeEncode        10 int,wstr
#comfunc global IX509AttributeRenewalCertificate_InitializeDecode        11 int,wstr
#comfunc global IX509AttributeRenewalCertificate_get_RenewalCertificate  12 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。