我正在尝试使用以下方式获取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);
它有效。 但据我所知,基础智能卡提供商是CNG推出之前的提供商。
那么使用CNG KSP进行智能卡的正确供应商名称是什么?
感谢您的帮助!
答案 0 :(得分:1)
问题是您不使用CryptAcquireContext用于CNG提供程序。要打开CNG提供程序,请使用NCryptOpenStorageProvider。