CryptGetKeyIdentifierProperty 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、暗号化次世代 API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptGetKeyIdentifierProperty は、指定したキー識別子から特定のプロパティを取得します。

構文

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

パラメーター

[in] pKeyIdentifier

キー識別子を含む CRYPT_HASH_BLOB へのポインター。

[in] dwPropId

取得するプロパティを識別します。 dwPropId の値によって、pvData パラメーターの種類と内容が決まります。 任意の証明書プロパティ ID を使用できます。

[in] dwFlags

次のフラグを使用できます。 これらは、ビットごとの OR 演算と組み合わせることができます。

意味
CRYPT_KEYID_MACHINE_FLAG
LocalMachine ( pwszComputerNameNULL の場合) またはリモート コンピューター ( pwszComputerNameNULL でない場合) のキー識別子の一覧を検索します。 詳細については、「 pwszComputerName」を参照してください。
CRYPT_KEYID_ALLOC_FLAG
LocalAlloc() 関数は、pvData にメモリを割り当てるために呼び出されます。 *pvData は、割り当てられたメモリへのポインターで更新されます。 割り当てられたメモリを解放するには、LocalFree() を呼び出す必要があります。

[in] pwszComputerName

検索するリモート コンピューターの名前へのポインター。 CRYPT_KEYID_MACHINE_FLAG フラグが設定されている場合は、リモート コンピューターでキー識別子の一覧を検索します。 ローカル コンピューターがリモート コンピューターではなく検索される場合は、 pwszComputerName を NULL に設定 します

[in] pvReserved

将来使用するために予約されており、 NULL である必要があります。

[out] pvData

dwPropId によって決定されたデータを受け取るバッファーへのポインター。 pvData 構造体内のフィールドが指す要素は、 構造体に従います。 したがって、 pcbData に含まれるサイズが構造体のサイズを超える可能性があります。

dwPropId がCERT_KEY_PROV_INFO_PROP_ID場合、pvData はキー識別子の プロパティを含むCRYPT_KEY_PROV_INFO構造体を指します。

dwPropId がCERT_KEY_PROV_INFO_PROP_IDされていない場合、pvData はキー識別子の プロパティを含むバイト配列を指します。

メモリ割り当てのためにこの情報のサイズを取得するには、CRYPT_KEYID_ALLOC_FLAGが設定されていない場合、このパラメーターを NULL にすることができます 。 詳細については、「 不明な長さのデータの取得」を参照してください。

CRYPT_KEYID_ALLOC_FLAGが設定されている場合、 pvData は更新されるバッファーへのポインターのアドレスです。 メモリが割り当てられ、そのポインターが *pvData に格納されるため、 pvDataNULL にすることはできません。

[in, out] pcbData

pvData パラメーターによって指されるバッファーのサイズ (バイト単位) を含む DWORD へのポインター。 関数が戻ると、 DWORD にはバッファーに格納されているバイト数が含まれます。 pcbData が指す変数に含まれるサイズは、構造体に補助データへのポインターを含めることができるため、CRYPT_KEY_PROV_INFO構造体よりも大きいサイズを示す可能性があります。 このサイズは、構造体とすべての補助データで必要なサイズの合計です。

CRYPT_KEYID_ALLOC_FLAGが設定されている場合、 pcbData は更新される DWORD へのポインターのアドレスです。

メモ バッファーで返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも少し小さくすることができます。 入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます。 出力時に、このパラメーターが指す変数が更新され、バッファーにコピーされたデータの実際のサイズが反映されます。
 

戻り値

関数が成功した場合、関数は 0 以外 (TRUE) を返します。

関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。

要件

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

こちらもご覧ください

CryptEnumKeyIdentifierProperties

CryptSetKeyIdentifierProperty

キー識別子関数