首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与opensc-pkcs的连接错误

与opensc-pkcs的连接错误
EN

Stack Overflow用户
提问于 2014-03-31 14:35:46
回答 1查看 599关注 0票数 0

我正在尝试使用opensc-pkcs11,这是我在Redhat linux 5上构建的。然而,当我尝试在一个示例程序中使用时,它给出了一个链接错误:

代码语言:javascript
复制
main.cpp:(.text+0x265): undefined reference to `C_Initialize'

示例代码片段如下所示:

代码语言:javascript
复制
int main()
{
CK_RV l_rv = 0;     
l_rv = C_Initialize(NULL_PTR);
//other staffs ...

}

如果我看到opensc-pkc11的nm输出,那么它显示:

代码语言:javascript
复制
-bash-3.2$ nm opensc-pkcs11.so |grep C_Initialize
0000000000008c70 t C_Initialize

T的意思是什么?我看不是“T”。但也不是“U”。有人能告诉我发生了什么事吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 18:15:01

PKCS#11库opensc-pkcs11是作为OpenSC项目GetFunctionList函数的一部分开发的,它提供指向所有其他PKCS#11函数的指针。使用dlopen()动态加载PKCS#11库非常有用,因为不需要使用dlsym()调用获取所有60+函数的函数指针。

在您的情况下,您需要先调用C_GetFunctionList,然后通过返回的指针调用其余的函数。下面是RSA .创建的PKCS#11 v2.20规范的示例:

代码语言:javascript
复制
CK_FUNCTION_LIST_PTR pFunctionList; 
CK_C_Initialize pC_Initialize; 
CK_RV rv; 

/* It’s OK to call C_GetFunctionList before calling 
C_Initialize */ 
rv = C_GetFunctionList(&pFunctionList); 
assert(rv == CKR_OK); 
pC_Initialize = pFunctionList -> C_Initialize; 

/* Call the C_Initialize function in the library */ 
rv = (*pC_Initialize)(NULL_PTR); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22764447

复制
相关文章

相似问题

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