1

我正在尝试使用以下方式获取 Microsoft 智能卡密钥存储提供程序:

CryptAcquireContext(&hProv, contName ,L"Microsoft Smart Card Key Storage Provider", PROV_RSA_FULL , flags);

但是,这失败并出现错误:NTE_KEYSET_NOT_DEF (0x80090019)

如果我使用:

CryptAcquireContext(&hProv, contName ,L" Microsoft Base Smart Card Crypto Provider", PROV_RSA_FULL , flags);

有用。但据我所知,Base Smart Card 提供商是 CNG 推出之前的提供商。

那么,将 CNG KSP 用于智能卡的正确提供商名称是什么?

谢谢你的帮助!

4

1 回答 1

1

问题是您没有将 CryptAcquireContext 用于 CNG 提供程序。要打开 CNG 提供程序,请使用 NCryptOpenStorageProvider。

于 2013-07-31T20:30:21.200 回答