读写PKCS#11对象

时间:2015-03-26 03:43:39

标签: pkcs#11

我正在尝试将一些PCSC代码转换为C中的PKCS#11调用。在PCSC中,要访问EF,我必须首先选择它,然后读取或写入它。我正在查看PKCS#11文档,但我没有看到相应的对象管理功能。最接近似乎是C_GetAttributeValue和C_SetAttributeValue,但我不确定如何使用它们,即使在查看一些示例代码之后。例如,如何选择要访问的数据对象?另外,我该如何设置模板?一些示例C代码会有所帮助。

谢谢!

编辑:经过一些研究后,似乎是SelectFile()大致映射到C_FindObjectsInit()和C_FindObjects(),它返回一个CK_OBJECT_HANDLE,而ReadFile()大致映射到C_GetAttributeValue()。我正在尝试使用此模型,但我第一次调用C_FindObjectsInit()会返回CKR_ARGUMENTS_BAD。这是我的来源:

unsigned char *tokenLabel;
CK_ATTRIBUTE labelTemplate[] = {
    {CKA_LABEL, NULL_PTR, 0}
};
tokenLabel = (unsigned char *) malloc(labelLen);
// Sets the tokenLabel here
labelTemplate[0].pValue = tokenLabel;
labelTemplate[0].ulValueLen = labelLen;
ret = C_FindObjectsInit(hSession, labelTemplate, 1);
if(ret != CKR_OK)
{
    return -1;
}

我做错了什么?我只是想找到一个与特定标签匹配的对象。

0 个答案:

没有答案