none
smart card minidriver测试 RRS feed

  • 问题

  • 下面就是在windows 7系统下运行cmck exec reconnect时遇到的问题,cmck exec certsequences也有类似的问题,在XP下测试均顺利通过。
    在xp下测试程序能够顺利删除容器,可是在win7下测试程序在读完"cardcf"之后就认为容器不存在了,并没有走到CardGetContainerInfo或CardDeleteContainer接口当中,通过日志发现cache文件并没有问题,key上的数据也是正确的,容器是存在的。
    通过查看key上"cmapfile"中的GUID,调用certutil -delkey -csp "Microsoft Base Smart Card Crypto Provider" [Container GUID] 还是提示0x80090016 密钥集不存在,可是在xp下运行certutil则没有问题。

    有人遇到多类似的问题吗?哪位大虾能给解释一下??多谢!

    2010年6月10日 2:21

全部回复

  • 我用相同的卡,在XP和Win7上分别运行certutil -key -csp "Microsoft Base Smart Card Crypto Provider",

    在XP下能够枚举出卡上的那个容器,可是在Win7下却没有枚举到容器。我已经启动了所有该启动的服务和打上了所有的系统补丁,还是不行。

    监控API调用,是调用basecsp的CryptAcquireContext删除容器的时候返回NTE_BAD_KEYSET了,函数内部应该是调了下层minidriver的CardReadFile读取cache文件后就认定容器不存在了,不知道Win7下的basecsp是什么逻辑,很苦恼!!!

    • 已建议为答案 shipeng519 2012年3月6日 8:15
    2010年6月12日 5:59
  • 我用相同的卡,在XP和Win7上分别运行certutil -key -csp "Microsoft Base Smart Card Crypto Provider",

    在XP下能够枚举出卡上的那个容器,可是在Win7下却没有枚举到容器。我已经启动了所有该启动的服务和打上了所有的系统补丁,还是不行。

    监控API调用,是调用basecsp的CryptAcquireContext删除容器的时候返回NTE_BAD_KEYSET了,函数内部应该是调了下层minidriver的CardReadFile读取cache文件后就认定容器不存在了,不知道Win7下的basecsp是什么逻辑,很苦恼!!!

    2010年6月12日 6:21
  • CryptAcquireContext with CRYPT_DELETEKEYSET returns NTE_BAD_KEYSET.
    CryptAcquireContext with CRYPT_NEWKEYSET returns NTE_EXISTS.
    i think maybe it's related to permissions, but what is the access permission to a smart card?
    2010年6月21日 8:19