Предполагая, что «сохранить ключ в доверенном платформенном модуле», вы имеете в виду «создать постоянный ключ в доверенном платформенном модуле»:
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);
Очевидно, вы должны проверить код возврата каждой вызванной функции.