使用密钥存储提供程序(KSP)的 NCryptCreatePersistedKey - AWS CloudHSM

使用密钥存储提供程序(KSP)的 NCryptCreatePersistedKey

NCryptCreatePersistedKey 函数创建一个新密钥并将其存储在密钥存储提供程序(KSP)中。可以在创建后使用 NCryptSetProperty 函数设置其属性。必须先调用 NCryptFinalizeKey,然后才能使用该密钥。

参数

hProvider [in]

您将在其中创建密钥的密钥存储提供程序的句柄。使用 NCryptOpenStorageProvider 获取此句柄。

phKey [out]

存储密钥句柄的 NCRYPT_KEY_HANDLE 变量的地址。

pszAlgId [in]

指向以 null 结尾的 Unicode 字符串的指针,该字符串指定用于创建密钥的加密算法标识符。

AWS CloudHSM 密钥存储提供程序(KSP)支持以下算法:

常量/值 描述

BCRYPT_RSA_ALGORITHM

"RSA"

RSA 公有密钥算法。

BCRYPT_ECDSA_P256_ALGORITHM

"ECDSA_P256"

256 位素数椭圆曲线数字签名算法(FIPS 186-2)。

BCRYPT_ECDSA_P384_ALGORITHM

"ECDSA_P384"

384 位素数椭圆曲线数字签名算法(FIPS 186-2)。

BCRYPT_ECDSA_P521_ALGORITHM

"ECDSA_P521"

521 位素数椭圆曲线数字签名算法(FIPS 186-2)。

pszKeyName [in, optional]

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含密钥的名称。如果此参数为 NULL,则此函数将创建一个不持久的临时密钥。

dwLegacyKeySpec [in, unused]

AWS CloudHSM 密钥存储提供程序(KSP)不使用此参数。

dwFlags [in]

用于修改函数行为的标志。使用零或以下多个值:

意义

NCRYPT_MACHINE_KEY_FLAG

此标志无效。

NCRYPT_SILENT_FLAG

此标志无效。

NCRYPT_OVERWRITE_KEY_FLAG

指定此标志会覆盖 HSM 中具有相同名称的任何现有密钥。

如果没有此标志,该函数将返回 。

返回值

该函数返回一个状态代码,指示成功或失败。

常见的返回代码包括:

返回代码 描述

ERROR_SUCCESS

函数已成功完成。

NTE_INVALID_PARAMETER

一个或多个参数无效。

NTE_FAIL

操作无法完成。

NTE_BAD_FLAGS

dwFlags 参数包含无效值。

NTE_NOT_SUPPORTED

pszAlgId 参数包含不支持的值。

NTE_EXISTS

已存在具有指定名称的密钥且操作未使用 NCRYPT_OVERWRITE_KEY_FLAG