CertRetrieveLogoOrBiometricInfo 関数 (wincrypt.h)
CertRetrieveLogoOrBiometricInfo 関数は、szOID_LOGOTYPE_EXTまたはszOID_BIOMETRIC_EXT証明書拡張機能で指定されたロゴまたは生体情報の URL 取得を実行します。 szOID_BIOMETRIC_EXT拡張機能 (IETF RFC 3739) では、署名の追加や、証明書の人間の所有者の絵画表現がサポートされています。 szOID_LOGOTYPE_EXT拡張機能 (IETF RFC 3709) では、証明書での組織図表現の追加がサポートされています。
構文
BOOL CertRetrieveLogoOrBiometricInfo(
[in] PCCERT_CONTEXT pCertContext,
[in] LPCSTR lpszLogoOrBiometricType,
[in] DWORD dwRetrievalFlags,
[in] DWORD dwTimeout,
[in] DWORD dwFlags,
void *pvReserved,
[out] BYTE **ppbData,
[out] DWORD *pcbData,
[out] LPWSTR *ppwszMimeType
);
パラメーター
[in] pCertContext
証明書を含む CERT_CONTEXT 構造体のアドレス。
[in] lpszLogoOrBiometricType
取得する情報の種類を識別する オブジェクト識別子 (OID) 文字列を含む null で終わる ANSI 文字列のアドレス。
このパラメーターには、次の定義済みの値のいずれかを含めることもできます。
[in] dwRetrievalFlags
情報の取得方法を指定するフラグのセット。 このパラメーターは、CryptRetrieveObjectByUrl 関数の dwRetrievalFlags として渡されます。
[in] dwTimeout
取得を待機する最大時間 (ミリ秒単位)。
[in] dwFlags
このパラメーターは使われていないので、0 にする必要があります。
pvReserved
このパラメーターは使用されず、 NULL である必要があります。
[out] ppbData
ロゴタイプまたは生体認証データを受け取る BYTE ポインターのアドレス。 このメモリは、このポインターを CryptMemFree 関数に渡すことによって不要になった場合に解放する必要があります。
[out] pcbData
ppbData バッファー内のバイト数を受け取る DWORD 変数のアドレス。
[out] ppwszMimeType
データの多目的インターネット メール拡張機能 (MIME) 型を受け取る null で終わる Unicode 文字列へのポインターのアドレス。 この情報が不要な場合、このパラメーターは NULL にすることができます。 このメモリは、このポインターを CryptMemFree 関数に渡すことによって不要になった場合に解放する必要があります。
このアドレスは、生体認証の種類では常に NULL を 受け取ります。 メモリへのアクセスを試みる前に、必ずこのパラメーターに有効なメモリ アドレスが含まれていることを確認する必要があります。
戻り値
成功した場合は 0 以外、それ以外の場合は 0 を返します。
拡張エラー情報については、 GetLastError を呼び出します。 GetLastError 関数によって返される可能性のあるエラー コードには、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
計算されたハッシュ値が証明書のハッシュ値と一致しません。 |
|
証明書に szOID_LOGOTYPE_EXT または szOID_BIOMETRIC_EXT 拡張子が含まれていないか、指定された lpszLogoOrBiometricType が見つかりませんでした。 |
|
1 つ以上のパラメーターが無効です。 |
|
証明書拡張機能で指定された URL からデータを取得できませんでした。 |
|
証明書は、必要な拡張機能をサポートしていません。 |
|
ハッシュ アルゴリズム OID が不明です。 |
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |