使用存储在智能卡上的公钥和私钥来签名文件

时间:2014-08-29 12:22:31

标签: c# cryptography smartcard apdu

我开发了一个应用程序来使用存储在智能卡上的公钥和私钥( IAS-ECC )对文件XML进行签名。我知道我的智能卡有两个证书(一个用于身份验证,一个用于签名)和私钥。考虑到这一点,我拼命搜索文档和示例以正确签署我的文件(大小在4到10 ko之间变化)。总而言之,我想获得一个P7M文件。

所以,我的问题是:怎么做?我是否使用OpenSSL或PKCS11等库?目前,我只尝试使用APDU命令,但没有结果。我想知道所有这些步骤。

此外,我通过发送APDU命令在智能卡上发现了CSP(“加密服务提供商”)。它有用吗?

我应该指定我使用Compact Framework(3.5)在C#上开发。如果你有一个想法,我很高兴听到这个。

提前感谢您的帮助!

祝你好运

1 个答案:

答案 0 :(得分:1)

如果你有智能卡读卡器和/或智能卡的PKCS11驱动程序DLL,那将是一个理想的选择。这将为您提供易于使用的签名方式。

我不确定OpenSSL是否能够访问智能卡(至少在不修改源代码的情况下),但我不是OpenSSL的专家。我所知道的是我们的SecureBlackbox可以完成这项工作(如果你可以使用PKCS11)。

另一方面,您确定需要获得PKCS#7签名(P7M扩展意味着这一点)吗? XML文件通常使用XMLDSig或XAdES(XMLDSig的扩展)进行签名。或者你可能需要一个独立的PKCS#7签名。您需要检查要求。