公用密钥密码术标准 #11 用法

应用程序要使用 PKCS #11 子系统,子系统的槽管理器守护程序必须正在运行,而且应用程序必须装入 API 的共享对象。

通常在引导时,inittab 调用 /etc/rc.pkcs11 脚本来启动槽管理器。 在启动槽管理器守护程序前,该脚本验证系统中的适配器。 因此,在用户登录系统前,插槽管理器守护程序是不可用的。 守护程序启动后,在没有系统管理员干预的情况下,子系统将对支持适配器的数目和类型的所有更改进行合并。

可以通过运行时链接到对象中或使用延迟的符号解析将 API 装入。 例如,应用程序可以用以下方式获取 PKCS #11 函数列表:

d CK_RV (*pf_init)();
void *d;
CK_FUNCTION_LIST *functs;

d = dlopen(e, RTLD_NOW);
if ( d == NULL ) {
   return FALSE;
}

pfoo = (CK_RV (*)())dlsym(d, “C_GetFunctionList”);
if (pfoo == NULL) {
   return FALSE;
}

rc = pf_init(&functs);