首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Openssl,engine_pkcs11,libp11 11/OpenSC

Openssl,engine_pkcs11,libp11 11/OpenSC
EN

Stack Overflow用户
提问于 2013-10-18 18:23:48
回答 3查看 9.1K关注 0票数 12

朋友们,我有一张智能卡,我想集成OpenSSL。计划通过OpenSSL中的“引擎”系统来实现这一点。然而,我对理解有一个问题。事实上,有engine_pkcs11opensclibp11pkcs11-helper这样的东西。有人能解释一下这段关系吗?什么是什么,首先要编译什么?

为我编写一个具有外部PKCS # 11函数的库以将其连接到openssl是否足够?我必须获取库engine_pkcs11的源代码,并修改它以适应我的卡?我需要这个opensclibp11pkcs11-helper吗?那么,为什么需要这些图书馆呢?

也应该注意到,智能卡不支持RSA算法,它将是另一种算法

真的很期待你的回答!

EN

回答 3

Stack Overflow用户

发布于 2014-02-07 09:29:34

为了使openssl与智能卡之间通过pkcs#11通过pkcs#11进行交互,需要OpenSC为openssl提供openssl引擎。

该引擎是在libp11之上通过OpenSC构建的,这是一个抽象/包装层/接口,构建在pkcs#11标准API上,用于实用目的。

从上到下我们有:

  • openssl (由Openssl提供)
  • openssl pkcs#11引擎(由OpenSC编写)
  • libp11 ( OpenSC)
  • pkcs#11标准api (由RSA实验室提供)
  • pkcs#11模块(由智能卡供应商提供)

因此,在最佳情况下,您只需为特定的智能卡硬件编写pkcs#11模块,然后使用pkcs#11引擎加载它。

这里的问题是pkcs#11引擎目前只支持CKM_RSA_PKCS,所以您可能还必须扩展当前的pkcs#11 openssl引擎。

更多信息请访问https://github.com/OpenSC/OpenSC/wiki

票数 10
EN

Stack Overflow用户

发布于 2016-06-20 09:51:27

我补充了一些最新的信息,这些信息可以帮助那些陷入这个问题的用户。

  • OpenSC -pkcs11也是实现OpenSC API的PKCS#11模块。它是与libopensc.so和其他OpenSC lib油墨的。
  • libp11是一个帮助程序库,旨在使在应用程序中使用PKCS#11变得更容易,而不必对PKCS#11 API进行编程。它将打开一个pkcs#11模块。
  • engine_pkcs11是一个使用libp11的OpenSSL引擎模块,它非常依赖于OpenSSL和libp11的版本,因此它现在包含在libp11中,因为libp11也可以用作引擎。
  • pkcs11 11-helper(我从未使用过)是另一个使使用PKCS#11“更容易”的库。
  • pkcs11 11-间谍是一个PKCS#11 API模块,它跟踪pkcs11 11- PKCS#11打开的另一个PKCS#11模块的所有调用和返回。

了解更多信息

票数 4
EN

Stack Overflow用户

发布于 2019-10-08 13:59:18

此外:

这里是对windows用户的描述

在windows上,需要自己编译engine_pkcs11.dll。它将不再由OpenSC安装程序交付。

这里的说明:https://github.com/OpenSC/libp11/blob/master/INSTALL.md

确保将OpenSSL 64位版本安装到C:\OpenSSL 64

从-https://github.com/OpenSC/libp11/releases下载最新版本)使用x64本机命令提示符编译visual studio

代码语言:javascript
运行
复制
nmake -f Makefile.mak OPENSSL_DIR=C:\OpenSSL-Win64 BUILD_FOR=WIN64

然后你得到了pkcs11.dll。然后将opensc-pkcs11.dll复制到一个目录(名称中没有空格),现在OpenSSL能够加载dll。

代码语言:javascript
运行
复制
engine dynamic -pre ID:pkcs11 -pre SO_PATH:C:\Tools\pkcs11\pkcs11.dll -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:C:\Tools\pkcs11\opensc-pkcs11.dll

现在您可以使用您的OpenSC设备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19456555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档