我正在开展与 minidriver 相关的项目,以便在智能卡中执行操作。
我已在注册表中注册智能卡,并提供正确的ATR和微型驱动程序信息。 现在我尝试使用 CNG生成密钥对 - > minidriver - >智能卡 。
为了达到这个目的,我从测试应用程序中调用了 NcryptOpenStorageProvider ,并返回成功。
现在,当我打电话给 NCryptCreatePersistedKey 和 NCryptFinalizeKey 时,它无法与智能卡通信。
在迷你驱动程序中它会调用" CardAuthenticateEX "并且在 SCardTransmit 中失败,但先前用于查找路径和搜索 CardGetProperty,CardReadFile 等对象的命令可以成功与智能卡通信。
答案 0 :(得分:0)
是的,hSCardCtx
的 hScard
或 CARD_DATA
字段的值可以在调用 CardAcquireContext
后更改。因此,永远不要存储这些句柄以在后续函数调用中使用它们,而是每个微型驱动程序函数都应从其 PCARD_DATA
参数中检索这些句柄。否则会导致您所描述的问题。