PCRYPT_DECRYPT_PRIVATE_KEY_FUNC回调函数 (wincrypt.h)

[ PCRYPT_DECRYPT_PRIVATE_KEY_FUNC 函数可用于“要求”部分中指定的操作系统。 在后续版本中,它可能已更改或不可用。]

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC函数解密私钥,并在 pbClearTextKey 参数中返回解密的密钥。 PCRYPT_DECRYPT_PRIVATE_KEY_FUNC 是在 CRYPT_PKCS8_IMPORT_PARAMS 结构中指定的回调函数。 当 CRYPT_ENCRYPTED_PRIVATE_KEY_INFO 结构包含需要解密的私钥时,将使用它。 CryptImportPKCS8 函数使用此函数。 该函数必须由开发人员实现,以适应每个应用程序。

语法

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC PcryptDecryptPrivateKeyFunc;

BOOL PcryptDecryptPrivateKeyFunc(
  [in]      CRYPT_ALGORITHM_IDENTIFIER Algorithm,
  [in]      CRYPT_DATA_BLOB EncryptedPrivateKey,
  [out]     BYTE *pbClearTextKey,
  [in, out] DWORD *pcbClearTextKey,
  [in]      LPVOID pVoidDecryptFunc
)
{...}

参数

[in] Algorithm

一个CRYPT_ALGORITHM_IDENTIFIER结构,用于标识用于加密 PKCS #8 标准中的 PrivateKeyInfo ASN.1 类型的算法。

[in] EncryptedPrivateKey

标识加密密钥 BLOB的CRYPT_DATA_BLOB值。

[out] pbClearTextKey

指向用于接收纯文本BYTE 缓冲区的指针。 此参数可以为 NULL。 有关详细信息,请参阅 检索长度未知的数据

[in, out] pcbClearTextKey

指向 DWORD 值的指针,该值标识 pbClearTextKey 缓冲区的大小(以字节为单位)。 如果大小为零,则应使用解密密钥所需的大小(以字节为单位)填充 并且 应忽略 pbClearTextKey

[in] pVoidDecryptFunc

提供解密中使用的数据的 LPVOID 值,例如密钥、初始化向量和密码。

返回值

如果函数成功,则函数) 返回非零 (TRUE

如果函数失败,则返回零 (FALSE) 。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wincrypt.h

另请参阅

CRYPT_ENCRYPTED_PRIVATE_KEY_INFO

CRYPT_PKCS8_IMPORT_PARAMS

CryptImportPKCS8