【发布时间】:2020-02-10 10:21:56
【问题描述】:
我正在尝试使用 CNG NCryptOpenStorageProvide "MS_PLATFORM_CRYPTO_PROVIDER" 将密钥存储在 TPM 中。
请任何人帮助了解如何使用 CNG 功能访问 TPM 读写。
【问题讨论】:
我正在尝试使用 CNG NCryptOpenStorageProvide "MS_PLATFORM_CRYPTO_PROVIDER" 将密钥存储在 TPM 中。
请任何人帮助了解如何使用 CNG 功能访问 TPM 读写。
【问题讨论】:
假设“在 TPM 中存储密钥”是指“在 TPM 中创建持久密钥”:
NCRYPT_PROV_HANDLE hProv = NULL;
NCRYPT_KEY_HANDLE hKey = NULL;
PCWSTR keyName = L"MyKey";
NCryptOpenStorageProvider(
&hProv,
MS_PLATFORM_CRYPTO_PROVIDER,
0);
NCryptCreatePersistedKey(
hProv,
&hKey,
BCRYPT_RSA_ALGORITHM,
keyName,
0,
NCRYPT_OVERWRITE_KEY_FLAG);
NCryptFinalizeKey(hKey, 0);
显然你应该检查每个调用函数的返回码。
【讨论】: