使用密钥存储提供程序(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 |
|
|
NTE_NOT_SUPPORTED |
|
|
NTE_EXISTS |
已存在具有指定名称的密钥且操作未使用 |