PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC回调函数 (wincrypt.h)

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

PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC 函数对私钥进行加密,并在 pbEncryptedKey 参数中返回加密的内容。 它是在 CRYPT_PKCS8_EXPORT_PARAMS 结构中标识的回调函数,用于创建 PKCS #8 CRYPT_ENCRYPTED_PRIVATE_KEY_INFO 结构。 该函数必须由开发人员实现,以适应每个应用程序。

语法

PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC PcryptEncryptPrivateKeyFunc;

BOOL PcryptEncryptPrivateKeyFunc(
  [out]     CRYPT_ALGORITHM_IDENTIFIER *pAlgorithm,
  [in]      CRYPT_DATA_BLOB *pClearTextPrivateKey,
  [out]     BYTE *pbEncryptedKey,
  [in, out] DWORD *pcbEncryptedKey,
  [in]      LPVOID pVoidEncryptFunc
)
{...}

参数

[out] pAlgorithm

指向 CRYPT_ALGORITHM_IDENTIFIER 结构的指针,用于接收用于加密 PKCS #8 标准中的 PrivateKeyInfo ASN.1 类型的算法。

[in] pClearTextPrivateKey

指向包含要加密的纯文本私钥的CRYPT_DATA_BLOB结构的指针。

[out] pbEncryptedKey

指向用于接收加密密钥 BLOBBYTE 缓冲区的指针。 如果此参数为 NULL则在 后续调用此函数时,将返回包含加密密钥所需的内存大小(以字节为单位)。

[in, out] pcbEncryptedKey

指向包含 pbEncryptedKey 缓冲区大小(以字节为单位)的 DWORD 变量的指针。 如果 pbEncryptedKey 为 NULL,则 为加密密钥所需的大小(以字节为单位)。 有关详细信息,请参阅 检索长度未知的数据

[in] pVoidEncryptFunc

包含用于加密的数据(例如密钥、初始化向量和密码)的 LPVOID 变量。

返回值

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

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

要求

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

另请参阅

CRYPT_PKCS8_EXPORT_PARAMS

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC