c – 使用来自USB令牌的证书和密钥进行数字签名
我想使用用户的密钥和来自USB令牌(加密狗)的证书来签署文件.
我一直在搜索stackoverflow和其他网站,但除了.NET框架中的一些好的功能(我没有使用)之外,它没有得到任何有用的东西. 似乎由于密钥未公开,加密由硬件本身完成.这是否意味着每个硬件制造商都提供自己的API,并且没有通用的方法来解决这个问题? 此外,我读到,一旦将令牌插入计算机,其证书就会被加载到系统存储中.是否可以使用商店的证书?如何在商店中识别和访问此类证书?私钥怎么样? 当证书可以从.p12或.pfx文件中提取时,我已经使用OpenSSL进行数字签名. 如果我在某个地方错了,请纠正我,我是这个话题的新手. 解决方法
有2种选择:
> PKCS#11.几乎每个USB加密令牌和智能卡供应商都为您可以调用的PKCS#11提供驱动程序DLL.我需要注意的是,PKCS#11接口规范非常松散,这导致了不同供应商之间的怪癖和不兼容性.即您可能需要在一个设备中使用一组证书属性,在另一个设备中使用不同的属性集. 我不认为OpenSSL可以用于您的任务 – 您需要使用CryptoAPI或PKCS#11. 我们的SecureBlackbox产品提供统一的高级接口,用于根据各种加密标准和使用PKCS#11和/或CryptoAPI对数据进行签名.仍然在PKCS#11的情况下(或完成签名的系统的运算符)需要知道PKCS#11驱动程序DLL的路径. SecureBlackbox可以使用其库版本从C中使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |