用CSP枚举UKey

操作未知UKey, 需要知道CspProvider, CspContainer, UKey支持的加密和签名的算法标识.

 

线索 <CryptGetProvParam>

 

资源:

http://msdn.microsoft.com/en-us/library/aa380196%28VS.85%29.aspx

 

手头有一只工行U盾和农行金e顺.

 

先拿U盾做实验。

 

U盾上写着硬件型号为金邦达2006, 下载点: http://www.goldpac.com/c/service/download.html, 工行-GemPCkey(金邦达2006)

安装后有管理工具, 输入口令后,可以看到证书, 只有一张签名证书. 管理工具和普通Ukey不同,不显示provider和container.

可以导出签名证书. 带私钥的.pfx导不出来, 听同事说过,实验验证了这一点.

 

枚举算法完成

 

<2010_0922_1832>

CSP枚举工具完成, CryptGetProvParam里面涉及到的枚举情况全部实验完.

 

通过实验,确定'Gemplus GemSAFE Card CSP',就是金邦达2006的CSP驱动。

不插入UKey(金邦达2006)时, 枚举后无法看到容器名称.

插入UKey(金邦达2006)时, 枚举后可以看到容器名称<b437c305-0830-4e53-aab9-c2f92516f695>.

 

现在已经知道UKey(金邦达2006)CspProvider, CspContainer, UKey支持的加密和签名的算法标识.

现在可以在知道口令的情况下,用金邦达2006进行签名,验签,加密解密了.

 

<2010/10/12>

枚举到Provider列表后, 枚举所有容器时,先得到默认容器名称。

需要用默认容器(当前容器)名称去连接csp上下文.

这样才能得到所有的容器列表.

 

/**
* @file ChangeLog.txt
* @note 记录编码历史

* <2010/10/14><company><LostSpeed><CspProviderEnumerat>
* 1. 在枚举具体CSP时, 先得到用默认容器名称(NULL)和默认提供者得到当前容器名称
*    然后关闭CSP上下文. 再用当前容器名称和默认提供者来得到具体的CSP信息,
*    这样做的好处是: 如果该CSP有多个容器名称, 我们可以得到. 和CSP硬件有关系,
*    有的CSP硬件如果没有指定非空存在的容器名称, 则无法枚举得到全部的容器列表.
* 2. 在具体的CSP信息页面中, 加入右键菜单: 导出指定容器中的签名和加密证书.
*    导出后的证书文件在"C://xx.cer", 导出结果是否成功有提示
*/

 

今天csdn上传功能不正常,改天上传。

 

这个工具的潜在用户是程序员,程序员的辅助工具, 用来侦测CSP参数。

还可以加入在指定容器上进行加解密和签名验签的功能,需要用户来选择算法标称, 不专业。

特定UKey的CSP操作参数是不同的, 无法保证所有CSP操作的成功.

对于有些csp不是UKey类型的, 没有签名加密证书, 再进行继续的操作,好像不恰当, 也不会成功.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值