【问题标题】:Failing to add pkcs#11 module to secmod database无法将 pkcs#11 模块添加到 secmod 数据库
【发布时间】:2025-12-09 13:40:02
【问题描述】:

我正在尝试通过 MSI 设置应用程序将 PKCS#11 模块安装到 Mozilla Firefox 中。在互联网上进行了一些搜索后,我偶然发现了modutil 工具,该工具具有广泛的职责,尤其是在我将 PKCS#11 模块安装/卸载到 NSS 安全数据库的情况下。我下载了modutil的最新源代码,并使用MozillaBuild构建。

另外,我编写了一个 C 代码来使用 secmod_addnewmodule 将模块添加到数据库,它返回“-1”作为错误。

以下是我添加模块的代码,其中configdirsecmoddb database 的路径。

int rv = NSS_Initialize(configdir, "", "", SECMOD_DB, NSS_INIT_FORCEOPEN );
hr = SECMOD_AddNewModule("test","D:\\Pkcs\\PKCS11_VSC.dll",internalMechanismFlags,internalEnableFlags);

有谁知道我可以如何克服这个问题,以及使用这个实用程序是否有任何看不见的方面。此外,是否有一种解决方案可以使用一个通用流程为所有用户配置文件安装/卸载 pkcs#11 模块。最后,是否有更好的解决方案来使用我的设置完成安装任务。我正在使用 WiX Toolset 创建 MSI 设置

【问题讨论】:

    标签: c firefox pki windows-installer pkcs#11


    【解决方案1】:

    如果 NSS_Initialize 无法打开 secmod 数据库,我们无法将模块添加到数据库。 nss 库自动采用添加数据库所需的默认标志。 secmod _deletemodule 删除添加到数据库中的模块。

    【讨论】: