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

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

NCryptGetProperty 函数检索密钥存储对象的属性值。

参数

hObject [in]

要检索其属性的对象的句柄。您可以使用:

  • 提供程序句柄(NCRYPT_PROV_HANDLE

  • 密钥句柄(NCRYPT_KEY_HANDLE

pszProperty [in]

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要检索的属性名称。

使用 NCRYPT_PROV_HANDLE 时,AWS CloudHSM 密钥存储提供程序(KSP)支持以下 KSP 标识符:

标识符/值 描述

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

包含定义提供程序实现详细信息的标志的 DWORD

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

包含永久密钥名称的最大长度(以字符为单位)的 DWORD。

NCRYPT_NAME_PROPERTY

L"Name"

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含 KSP 名称。

NCRYPT_VERSION_PROPERTY

L"Version"

包含提供程序版本的 DWORD(高字:主要版本,低字:次要版本)。

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

指向以 null 结尾的 Unicode 字符串的指针,该字符串描述了操作上下文。

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

表示提供程序是否支持密钥的安全描述符。

使用 NCRYPT_KEY_HANDLE 时,AWS CloudHSM 密钥存储提供程序(KSP)支持以下 KSP 标识符:

标识符/值 描述

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

以 null 结尾的 Unicode 字符串,该字符串包含密钥的算法名称。

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

包含以字节为单位的加密块长度的 DWORD。

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

包含标志的 DWORD,所述标志指定持久密钥的导出策略。

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

包含标志的 DWORD,所述标志定义密钥用量详细信息。

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

包含标志的 DWORD,所述标志定义密钥类型。

NCRYPT_LENGTH_PROPERTY

L"Length"

包含以位为单位的密钥长度的 DWORD。

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

指向包含支持的密钥大小的 NCRYPT_SUPPORTED_LENGTHS 结构的指针。

NCRYPT_NAME_PROPERTY

L"Name"

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含密钥名称。

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

指向包含密钥访问控制信息的 SECURITY_DESCRIPTOR 结构的指针。

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

以 null 结尾的 Unicode 字符串,该字符串包含对象的算法组名称。

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含密钥的唯一名称。

注意

值是宽字符字符串文字,如文字前的 L 所示。

pbOutput [out]

用于存储属性值的缓冲区的地址。使用 cbOutput 指定缓冲区大小。

要确定所需的缓冲区大小,请将此参数设置为 NULL。该函数将所需的大小(以字节为单位)存储在 pcbResult 所指向的位置。

cbOutput [in]

pbOutput 缓冲区的大小,以字节为单位。

pcbResult [out]

指向 DWORD 变量的指针,该变量存储复制到 pbOutput 缓冲区的字节数。

如果 pbOutput 为 NULL,则存储所需的大小(以字节为单位)。

dwFlags [in]

用于修改函数行为的标志。可以使用零或:

意义

NCRYPT_SILENT_FLAG

此标志无效。

当 pszProperty 为 NCRYPT_SECURITY_DESCR_PROPERTY 时,使用以下方法之一或组合使用以下方法:

意义

OWNER_SECURITY_INFORMATION

此标志无效。

GROUP_SECURITY_INFORMATION

此标志无效。

DACL_SECURITY_INFORMATION

此标志无效。

LABEL_SECURITY_INFORMATION

此标志无效。

SACL_SECURITY_INFORMATION

此标志无效。

返回值

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

常见的返回代码包括:

返回代码 描述

ERROR_SUCCESS

操作已成功完成。

NTE_INVALID_PARAMETER

一个或多个参数无效。

NTE_FAIL

操作无法完成。

NTE_BAD_FLAGS

dwFlags 参数包含无效值。

NTE_NOT_SUPPORTED

pszAlgId 参数包含不支持的值。

NTE_INVALID_HANDLE

hObject 中的句柄无效。

NTE_BUFFER_TOO_SMALL

cbOutput 参数对于返回值来说太小。