C# PKCS#11 C语言库#

C# PKCS#11 C语言库#,c#,dll,pkcs#11,C#,Dll,Pkcs#11,我需要为一些智能卡编写PKCS11库。我是C#开发者,不想使用其他语言。我使用平台调用与卡API通信(它不是PKCS11) 如何使用C#中的PKCS11接口编写库,这不仅适用于.Net。我必须使用什么技术,我必须知道什么(我以前从未做过这种事情)? 我希望,我会在这个主题足够的一些关键字开始。我必须往哪个方向挖 谢谢。搜索“”。然而,我应该说,在C#中创建PKCS#11驱动程序DLL的想法远非理想,原因有很多,您可以在使用上述搜索链接的文章中找到 > P>我不明白你为什么要这么做,但是PKCS

我需要为一些智能卡编写PKCS11库。我是C#开发者,不想使用其他语言。我使用平台调用与卡API通信(它不是PKCS11)

如何使用C#中的PKCS11接口编写库,这不仅适用于.Net。我必须使用什么技术,我必须知道什么(我以前从未做过这种事情)? 我希望,我会在这个主题足够的一些关键字开始。我必须往哪个方向挖


谢谢。

搜索“”。然而,我应该说,在C#中创建PKCS#11驱动程序DLL的想法远非理想,原因有很多,您可以在使用上述搜索链接的文章中找到

> P>我不明白你为什么要这么做,但是PKCS 11不是一个Windows的东西,CSP是,虽然一些应用程序使用像Mozilla的PKCS 11,但是我真的建议如果你想做PKCS 11,在C或C++中只需把代码移植到其他平台,这就需要调整了。当然,但是主要的逻辑代码将保持不变,实际上PKCS#11是linux/unix/bsd/macosx。。另外,C#无法生成stdlib,我假设它生成一个COM/COM+对象,这与PKCS#11的C库完全不同

您可以使用NCryptoki,这是PKCS#11非托管dll的C#接口。 见此:


PKCS#11不仅可用于PKI功能(密钥和证书),还可用于存储和读取智能卡中的数据。这就是为什么Windows上也需要PKCS#11的原因。

您可以使用此库:

用于.Net的Pkcs11包装器,用C#编写。支持的方法:TokeInfo/SlotInfo、打开/关闭会话、登录/注销、查找对象、摘要、签名/验证、加密/解密


您所说的将不仅适用于.Net是什么意思?这是否意味着你希望它被其他语言使用?如果是,那么是什么语言?新读者:请注意,对于实现PKCS#11库,C#远远不是一个好的选择。PKCS#11是安全令牌的C接口规范,它几乎对任何东西都使用“模板”。模板由PKCS#11接口将填充的(部分填充的)数据结构组成。主要数据结构是字节。阅读K&R C语言并继续使用它是一个更好的主意。我为COM/COM+创建了stdlib wrap:)这是一个很好的COM实践,但如果你想让人们使用你的智能卡,除了自定义应用程序(可能是、、我更喜欢PKCS#11或CSP)之外,通常没有什么用处。。i、 e.任何想要使用您的库的人只能在导入此COM的自定义应用程序中使用,不能在通常需要使用此智能卡的任何标准应用程序中使用。。我所说的标准应用程序是指“浏览器、电子邮件客户端应用程序、windows应用程序、基于kerbros的应用程序”,它们都使用CSP或PKCS#11