次の方法で共有


PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC コールバック関数 (wincrypt.h)

シグネチャにエンコードされたパラメーターが含まれている場合は、ハッシュ アルゴリズム識別子と必要に応じてシグネチャ パラメーターをデコードして返すために、 PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC コールバック関数が呼び出されます。

構文

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC PfnCryptExtractEncodedSignatureParametersFunc;

BOOL PfnCryptExtractEncodedSignatureParametersFunc(
  [in]            DWORD dwCertEncodingType,
  [in]            PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [out, optional] void **ppvDecodedSignPara,
  [out]           LPWSTR *ppwszCNGHashAlgid
)
{...}

パラメーター

[in] dwCertEncodingType

使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING 現在定義されているエンコードの種類は次のとおりです。

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

署名オブジェクト識別子 (OID) とそのオプションのエンコードされたパラメーターを含むCRYPT_ALGORITHM_IDENTIFIER構造体へのポインター。

[out, optional] ppvDecodedSignPara

デコードおよび割り当てられた署名パラメーターのデータ構造のアドレスへのポインター。 デコードされたバッファーの返しは省略可能です。

[out] ppwszCNGHashAlgid

エンコードされた署名パラメーターから抽出された CNG ハッシュ アルゴリズム識別子を表す、割り当てられた Unicode 文字列のアドレスへのポインター。 この関数が TRUE を返す場合は、NULL 以外のポインターを返す必要があります。

戻り値

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

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

このコールバック関数がシグネチャ アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTEDを使用して SetLastError を呼び出す必要があります。

注釈

ppvDecodedSignPara パラメーターと ppwszCNGHashAlgid パラメーターのメモリは、LocalAlloc 関数を使用して割り当てる必要があります。

OID サポート関数を使用して、このコールバック関数を展開できます。 Wincrypt.h は、この目的のために次の定数を定義します。

常時 定義
CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC "CryptDllExtractEncodedSignatureParameters"

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wincrypt.h