使用CNG导入给定令牌上的密钥

问题描述 投票:0回答:1

我最近开始摆弄CNG来管理我们应用程序中的智能卡,还有一些不为人知的问题:如何将密钥导入给定的智能卡?在我看来,KSP只是在它看到的第一张卡上创建了密钥。

这是我做的:

  • 2个智能卡连接到我的机器,来自同一供应商。
  • 所述供应商实施了他自己的KSP,当我用NCryptEnumStorageProviders列出KSP时出现。
  • 列出通过提供程序提供的键可产生以下输出: 得到的关键:p11#958fb9080419db6e //属于第一张智能卡 得到钥匙:p11#9eaad58f1c3a73e5 //属于第一张智能卡 得到的关键:b6b99fb4-01c4-fa18-83db-0e2bb1c80476 //属于第二张智能卡

现在,当我调用NCryptCreatePersistedKey时,新密钥在第二张卡上生成。没有任何弹出窗口询问我想要创建此密钥的卡。

我做错了什么 ?

非常感谢你的时间。

smartcard cng
1个回答
0
投票

尝试在NCryptCreatePersistedKey中明确设置智能卡读卡器:

NCryptCreatePersistedKey(hProv, phKey, L"alg_id", L"\\\\.\\SmartCard Reader 0\\KeyName", 0, 0);
© www.soinside.com 2019 - 2024. All rights reserved.