PKCS # 11 library in C#

本文关键字:in library PKCS | 更新日期: 2023-09-27 18:11:49

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

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

谢谢。

PKCS # 11 library in C#

您可以使用这个库:pkcs11.net

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

搜索"如何在c#中创建非托管DLL "。然而,我应该说,在c#中创建pkcs# 11驱动程序DLL的想法远非理想,因为您将在使用上述搜索链接的文章中找到许多原因。

我不明白你为什么要这样做,然而pkcs# 11不是一个windows的东西,CSP是,虽然一些应用程序使用pkcs# 11像Mozilla,但我真的建议如果你想做pkcs# 11,做它在C或c++只是为了代码可移植到其他平台,这可能需要调整(#if #else)当然,但主要的逻辑代码将保持不变,真正的pkcs# 11是linux/unix/bsd/macosx的东西。c#也不能生成stdlib,我假设它生成一个COM/COM+对象,这与pkcs# 11的C库完全不同。

您可以使用NCryptoki,这是pkcs# 11非托管dll的c#接口。参见:http://www.ncryptoki.com

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