我最近开始摆弄CNG来管理我们应用程序中的智能卡,但仍然有一些不清楚的地方: 如何将密钥导入给定智能卡?在我看来,KSP只是在它看到的第一张卡上创建密钥。
这就是我所做的:
列出通过提供程序可用的密钥会产生以下输出:
Got key:p11#958fb9080419db6e //属于第一个智能卡
获得密钥:p11#9eaad58f1c3a73e5 //属于第一张智能卡
获得密钥:b6b99fb4-01c4-fa18-83db-0e2bb1c80476 //属于第二个智能卡
现在,当我调用NCryptCreatePersistedKey时,新密钥在第二张卡上生成。没有弹出窗口询问我要在哪个卡上创建此密钥。
我做错了什么?
非常感谢您的时间。
答案 0 :(得分:0)
尝试在NCryptCreatePersistedKey中明确设置智能卡阅读器:
NCryptCreatePersistedKey(hProv, phKey, L"alg_id", L"\\\\.\\SmartCard Reader 0\\KeyName", 0, 0);