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

IX509PrivateKey

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

メソッド 58

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

vtbl 7 HRESULT Open()
vtbl 8 HRESULT Create()
vtbl 9 HRESULT Close()
vtbl 10 HRESULT Delete()
vtbl 11 HRESULT Verify(X509PrivateKeyVerify VerifyType)
VerifyTypeX509PrivateKeyVerifyin実行する検証の種類を指定する X509PrivateKeyVerify である。
vtbl 12 HRESULT Import(LPWSTR strExportType, LPWSTR strEncodedKey, EncodingType Encoding)
strExportTypeLPWSTRinインポートするデータの形式 (エクスポート種別) を指定する。
strEncodedKeyLPWSTRinインポートするエンコード済みの鍵データを指定する。
EncodingEncodingTypein入力データのエンコード形式を指定する EncodingType である。
vtbl 13 HRESULT Export(LPWSTR strExportType, EncodingType Encoding, LPWSTR* pstrEncodedKey)
strExportTypeLPWSTRinエクスポートするデータの形式 (エクスポート種別) を指定する。
EncodingEncodingTypein出力データのエンコード形式を指定する EncodingType である。
pstrEncodedKeyLPWSTR*outエクスポートされたエンコード済みの鍵データを受け取る文字列ポインタである。
vtbl 14 HRESULT ExportPublicKey(IX509PublicKey** ppPublicKey)
ppPublicKeyIX509PublicKey**outこの秘密鍵に対応する公開鍵を表す IX509PublicKey オブジェクトを受け取るインターフェイスポインタへのポインタである。
vtbl 15 HRESULT get_ContainerName(LPWSTR* pValue)
pValueLPWSTR*out鍵コンテナー名を受け取る文字列ポインタである。
vtbl 16 HRESULT put_ContainerName(LPWSTR Value)
ValueLPWSTRin設定する鍵コンテナー名を指定する。
vtbl 17 HRESULT get_ContainerNamePrefix(LPWSTR* pValue)
pValueLPWSTR*out鍵コンテナー名のプレフィックスを受け取る文字列ポインタである。
vtbl 18 HRESULT put_ContainerNamePrefix(LPWSTR Value)
ValueLPWSTRin設定する鍵コンテナー名のプレフィックスを指定する。
vtbl 19 HRESULT get_ReaderName(LPWSTR* pValue)
pValueLPWSTR*outスマートカードリーダーの名前を受け取る文字列ポインタである。
vtbl 20 HRESULT put_ReaderName(LPWSTR Value)
ValueLPWSTRin設定するスマートカードリーダーの名前を指定する。
vtbl 21 HRESULT get_CspInformations(ICspInformations** ppValue)
ppValueICspInformations**out利用可能な CSP 情報のコレクションを受け取るインターフェイスポインタへのポインタである。
vtbl 22 HRESULT put_CspInformations(ICspInformations* pValue)
pValueICspInformations*inoptional設定する CSP 情報のコレクションを表す ICspInformations へのポインタである。
vtbl 23 HRESULT get_CspStatus(ICspStatus** ppValue)
ppValueICspStatus**out現在の CSP 状態を表す ICspStatus オブジェクトを受け取るインターフェイスポインタへのポインタである。
vtbl 24 HRESULT put_CspStatus(ICspStatus* pValue)
pValueICspStatus*inoptional設定する CSP 状態を表す ICspStatus へのポインタである。
vtbl 25 HRESULT get_ProviderName(LPWSTR* pValue)
pValueLPWSTR*out使用するプロバイダー名を受け取る文字列ポインタである。
vtbl 26 HRESULT put_ProviderName(LPWSTR Value)
ValueLPWSTRin設定するプロバイダー名を指定する。
vtbl 27 HRESULT get_ProviderType(X509ProviderType* pValue)
pValueX509ProviderType*outプロバイダーの種類を受け取る X509ProviderType へのポインタである。
vtbl 28 HRESULT put_ProviderType(X509ProviderType Value)
ValueX509ProviderTypein設定するプロバイダーの種類を表す X509ProviderType である。
vtbl 29 HRESULT get_LegacyCsp(VARIANT_BOOL* pValue)
pValueVARIANT_BOOL*outレガシー CSP (CAPI) を使用するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 30 HRESULT put_LegacyCsp(VARIANT_BOOL Value)
ValueVARIANT_BOOLinレガシー CSP (CAPI) を使用するかどうかを指定する VARIANT_BOOL である。
vtbl 31 HRESULT get_Algorithm(IObjectId** ppValue)
ppValueIObjectId**out鍵アルゴリズムの OID を表す IObjectId オブジェクトを受け取るインターフェイスポインタへのポインタである。
vtbl 32 HRESULT put_Algorithm(IObjectId* pValue)
pValueIObjectId*inoptional設定する鍵アルゴリズムの OID を表す IObjectId へのポインタである。
vtbl 33 HRESULT get_KeySpec(X509KeySpec* pValue)
pValueX509KeySpec*out鍵指定 (KeySpec) を受け取る X509KeySpec へのポインタである。
vtbl 34 HRESULT put_KeySpec(X509KeySpec Value)
ValueX509KeySpecin設定する鍵指定 (KeySpec) を表す X509KeySpec である。
vtbl 35 HRESULT get_Length(INT* pValue)
pValueINT*out鍵長 (ビット数) を受け取る INT へのポインタである。
vtbl 36 HRESULT put_Length(INT Value)
ValueINTin設定する鍵長 (ビット数) を指定する。
vtbl 37 HRESULT get_ExportPolicy(X509PrivateKeyExportFlags* pValue)
pValueX509PrivateKeyExportFlags*out鍵のエクスポートポリシーを受け取る X509PrivateKeyExportFlags へのポインタである。
vtbl 38 HRESULT put_ExportPolicy(X509PrivateKeyExportFlags Value)
ValueX509PrivateKeyExportFlagsin設定する鍵のエクスポートポリシーを表す X509PrivateKeyExportFlags である。
vtbl 39 HRESULT get_KeyUsage(X509PrivateKeyUsageFlags* pValue)
pValueX509PrivateKeyUsageFlags*out鍵の用途を受け取る X509PrivateKeyUsageFlags へのポインタである。
vtbl 40 HRESULT put_KeyUsage(X509PrivateKeyUsageFlags Value)
ValueX509PrivateKeyUsageFlagsin設定する鍵の用途を表す X509PrivateKeyUsageFlags である。
vtbl 41 HRESULT get_KeyProtection(X509PrivateKeyProtection* pValue)
pValueX509PrivateKeyProtection*out鍵の保護レベルを受け取る X509PrivateKeyProtection へのポインタである。
vtbl 42 HRESULT put_KeyProtection(X509PrivateKeyProtection Value)
ValueX509PrivateKeyProtectionin設定する鍵の保護レベルを表す X509PrivateKeyProtection である。
vtbl 43 HRESULT get_MachineContext(VARIANT_BOOL* pValue)
pValueVARIANT_BOOL*outマシンコンテキストを使用するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 44 HRESULT put_MachineContext(VARIANT_BOOL Value)
ValueVARIANT_BOOLinマシンコンテキストを使用するかどうかを指定する VARIANT_BOOL である。
vtbl 45 HRESULT get_SecurityDescriptor(LPWSTR* pValue)
pValueLPWSTR*out鍵に設定されているセキュリティ記述子 (SDDL 形式) を受け取る文字列ポインタである。
vtbl 46 HRESULT put_SecurityDescriptor(LPWSTR Value)
ValueLPWSTRin設定するセキュリティ記述子 (SDDL 形式) を指定する。
vtbl 47 HRESULT get_Certificate(EncodingType Encoding, LPWSTR* pValue)
EncodingEncodingTypein出力データのエンコード形式を指定する EncodingType である。
pValueLPWSTR*out鍵に関連付けられた証明書 (エンコード済み) を受け取る文字列ポインタである。
vtbl 48 HRESULT put_Certificate(EncodingType Encoding, LPWSTR Value)
EncodingEncodingTypein入力データのエンコード形式を指定する EncodingType である。
ValueLPWSTRin鍵に関連付ける証明書 (エンコード済み) を指定する。
vtbl 49 HRESULT get_UniqueContainerName(LPWSTR* pValue)
pValueLPWSTR*out鍵の一意な (内部的な) コンテナー名を受け取る文字列ポインタである。
vtbl 50 HRESULT get_Opened(VARIANT_BOOL* pValue)
pValueVARIANT_BOOL*out鍵が開かれているかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 51 HRESULT get_DefaultContainer(VARIANT_BOOL* pValue)
pValueVARIANT_BOOL*out既定のコンテナーを使用するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 52 HRESULT get_Existing(VARIANT_BOOL* pValue)
pValueVARIANT_BOOL*out既存の鍵を使用するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 53 HRESULT put_Existing(VARIANT_BOOL Value)
ValueVARIANT_BOOLin既存の鍵を使用するかどうかを指定する VARIANT_BOOL である。
vtbl 54 HRESULT get_Silent(VARIANT_BOOL* pValue)
pValueVARIANT_BOOL*outUI を表示せずに処理する (サイレントモード) かどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 55 HRESULT put_Silent(VARIANT_BOOL Value)
ValueVARIANT_BOOLinUI を表示せずに処理する (サイレントモード) かどうかを指定する VARIANT_BOOL である。
vtbl 56 HRESULT get_ParentWindow(INT* pValue)
pValueINT*outUI 表示時の親ウィンドウハンドル (値) を受け取る INT へのポインタである。
vtbl 57 HRESULT put_ParentWindow(INT Value)
ValueINTinUI 表示時の親ウィンドウハンドル (値) を指定する。
vtbl 58 HRESULT get_UIContextMessage(LPWSTR* pValue)
pValueLPWSTR*outUI に表示するコンテキストメッセージを受け取る文字列ポインタである。
vtbl 59 HRESULT put_UIContextMessage(LPWSTR Value)
ValueLPWSTRinUI に表示するコンテキストメッセージを指定する。
vtbl 60 HRESULT put_Pin(LPWSTR Value)
ValueLPWSTRinスマートカードなどの鍵にアクセスするための PIN を指定する。
vtbl 61 HRESULT get_FriendlyName(LPWSTR* pValue)
pValueLPWSTR*out鍵の表示名 (フレンドリ名) を受け取る文字列ポインタである。
vtbl 62 HRESULT put_FriendlyName(LPWSTR Value)
ValueLPWSTRin設定する鍵の表示名 (フレンドリ名) を指定する。
vtbl 63 HRESULT get_Description(LPWSTR* pValue)
pValueLPWSTR*out鍵の説明を受け取る文字列ポインタである。
vtbl 64 HRESULT put_Description(LPWSTR Value)
ValueLPWSTRin設定する鍵の説明を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IX509PrivateKey "{728AB30C-217D-11DA-B2A4-000E7BBB2B09}"
#usecom global IX509PrivateKey IID_IX509PrivateKey "{}"
#comfunc global IX509PrivateKey_Open                     7
#comfunc global IX509PrivateKey_Create                   8
#comfunc global IX509PrivateKey_Close                    9
#comfunc global IX509PrivateKey_Delete                   10
#comfunc global IX509PrivateKey_Verify                   11 int
#comfunc global IX509PrivateKey_Import                   12 wstr,wstr,int
#comfunc global IX509PrivateKey_Export                   13 wstr,int,var
#comfunc global IX509PrivateKey_ExportPublicKey          14 sptr
#comfunc global IX509PrivateKey_get_ContainerName        15 var
#comfunc global IX509PrivateKey_put_ContainerName        16 wstr
#comfunc global IX509PrivateKey_get_ContainerNamePrefix  17 var
#comfunc global IX509PrivateKey_put_ContainerNamePrefix  18 wstr
#comfunc global IX509PrivateKey_get_ReaderName           19 var
#comfunc global IX509PrivateKey_put_ReaderName           20 wstr
#comfunc global IX509PrivateKey_get_CspInformations      21 sptr
#comfunc global IX509PrivateKey_put_CspInformations      22 sptr
#comfunc global IX509PrivateKey_get_CspStatus            23 sptr
#comfunc global IX509PrivateKey_put_CspStatus            24 sptr
#comfunc global IX509PrivateKey_get_ProviderName         25 var
#comfunc global IX509PrivateKey_put_ProviderName         26 wstr
#comfunc global IX509PrivateKey_get_ProviderType         27 var
#comfunc global IX509PrivateKey_put_ProviderType         28 int
#comfunc global IX509PrivateKey_get_LegacyCsp            29 var
#comfunc global IX509PrivateKey_put_LegacyCsp            30 int
#comfunc global IX509PrivateKey_get_Algorithm            31 sptr
#comfunc global IX509PrivateKey_put_Algorithm            32 sptr
#comfunc global IX509PrivateKey_get_KeySpec              33 var
#comfunc global IX509PrivateKey_put_KeySpec              34 int
#comfunc global IX509PrivateKey_get_Length               35 var
#comfunc global IX509PrivateKey_put_Length               36 int
#comfunc global IX509PrivateKey_get_ExportPolicy         37 var
#comfunc global IX509PrivateKey_put_ExportPolicy         38 int
#comfunc global IX509PrivateKey_get_KeyUsage             39 var
#comfunc global IX509PrivateKey_put_KeyUsage             40 int
#comfunc global IX509PrivateKey_get_KeyProtection        41 var
#comfunc global IX509PrivateKey_put_KeyProtection        42 int
#comfunc global IX509PrivateKey_get_MachineContext       43 var
#comfunc global IX509PrivateKey_put_MachineContext       44 int
#comfunc global IX509PrivateKey_get_SecurityDescriptor   45 var
#comfunc global IX509PrivateKey_put_SecurityDescriptor   46 wstr
#comfunc global IX509PrivateKey_get_Certificate          47 int,var
#comfunc global IX509PrivateKey_put_Certificate          48 int,wstr
#comfunc global IX509PrivateKey_get_UniqueContainerName  49 var
#comfunc global IX509PrivateKey_get_Opened               50 var
#comfunc global IX509PrivateKey_get_DefaultContainer     51 var
#comfunc global IX509PrivateKey_get_Existing             52 var
#comfunc global IX509PrivateKey_put_Existing             53 int
#comfunc global IX509PrivateKey_get_Silent               54 var
#comfunc global IX509PrivateKey_put_Silent               55 int
#comfunc global IX509PrivateKey_get_ParentWindow         56 var
#comfunc global IX509PrivateKey_put_ParentWindow         57 int
#comfunc global IX509PrivateKey_get_UIContextMessage     58 var
#comfunc global IX509PrivateKey_put_UIContextMessage     59 wstr
#comfunc global IX509PrivateKey_put_Pin                  60 wstr
#comfunc global IX509PrivateKey_get_FriendlyName         61 var
#comfunc global IX509PrivateKey_put_FriendlyName         62 wstr
#comfunc global IX509PrivateKey_get_Description          63 var
#comfunc global IX509PrivateKey_put_Description          64 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。