问题标签 [nss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
220 浏览

c - getpwnam_r() 是可重入的要求吗?

getpwnam_r() 根据许多手册页是可重入的。但是,仅标准状态

getpwnam_r() 函数是线程安全的,并在用户提供的缓冲区中返回值,而不是使用可能被每次调用覆盖的静态数据区域。

我很困惑。NSS 模块的 ...getpwnam_r() 函数必须可重入吗?或者只是线程安全就足够了?

0 投票
0 回答
656 浏览

java - NSS PKCS11 不能作为 jsse 提供者正常工作

我正在使用网络安全服务作为我的 Java 应用程序的 Sun PKCS#11提供程序,但我遇到了一些不受欢迎的行为。

将相同的受信任证书重新插入密钥库将删除最初插入证书时成功设置的信任属性。

下面是一些不完整的代码来演示问题的本质:

我仍然能够重新加载相同的密钥库(和证书)并且 SSL 身份验证工作完美,但是,当重新启动应用程序并再次重新加载密钥库时,证书在受信任的别名列表中不可用。

为什么只有在重新启动应用程序时才能正常工作,这对我来说也是一个谜。

我在http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6298106上阅读了一些似乎相关的内容,但它似乎并不适用于 100%,而且我不了解 nss 的内部构造完整的感觉。

有人理解这种行为吗?

谢谢,迈克

0 投票
1 回答
5633 浏览

java - 尝试在 Java 中使用带有 NSS 的 SunPKCS11 启用 FIPS 模式

我正在开发一个需要经过 FIPS 140-2 验证的密码学的项目,并且我正在尝试将 NSS 与 SunPKCS11 令牌接口一起使用,并且我已经开始工作,直到在 NSS 中打开 FIPS 模式。我收到一个错误,CKR_USER_NOT_LOGGED_IN,我只是不知道该怎么做。关于我应该做什么的任何建议?

我是安全领域的新手,所以这段代码是从 Oracle Java 教程中的示例、SunPKCS11 参考页面以及在网络上以 FIPS 模式使用 NSS 的建议拼凑而成的。

这是我正在使用的代码:

这是我用于 nss 的配置。

当我运行此代码时,我得到以下堆栈跟踪。

这是 CKR_USER_NOT_LOGGED_IN 错误,我不知道该怎么办。

如果我将 NSS 配置更改为不使用 FIPS 模式,则程序运行正常并对文件进行签名、签名并提供公钥。

我在 NSS 配置文件中列出的相应目录中使用以下命令创建了 NSS 数据库。

0 投票
2 回答
4242 浏览

php - PHP cURL 和 SSL 的奇怪超时

尝试访问 Amazon Cloudfront 时,我在使用 cURL 和 PHP 时遇到了奇怪的超时。这似乎会影响所有无效请求、创建分发等。cURL 要么报告接收 0 个字节,要么报告接收到很少的字节,然后超时: Operation timed out after 120000 milliseconds with 88 out of 619 bytes received

延长超时设置似乎没有什么不同。

使用跟踪CURLOPT_VERBOSE会产生以下输出:

这似乎类似于这个问题。但是,在我的情况下,看起来 curl 实际上确实得到了响应,但不知何故忽略了它并超时?据我所知,收到了响应(201 Created...),并且没有 SSL 错误。那么为什么 curl 超时?

cURL 版本信息

0 投票
1 回答
1079 浏览

curl - 64位机器上的卷曲错误77

当我在 64 位 RHEL6.2 上运行 32 位二进制文​​件时,我从 Curl 获得以下输出,返回值为 0f 77,

我做了一点研究,发现 nss 库有问题
我的要求是在使用 libcurl 动态库的 64 位机器上运行 32 位二进制文​​件。有人有任何解决方法可以在 RHEL 6.2 x64 机器上实现这一目标吗?

我可以根据要求提供更多详细信息..

语言:C
平台:Linux (RHEL 6.2 x64)

提前谢谢:)

0 投票
1 回答
5089 浏览

java - 从 Java 访问 Firefox 的证书信任库

我几乎对这个失去了希望。我正在尝试通过 PKCS#11 使用 Firefox 安装随附的 NSS 库从 Java 7 访问 Firefox 信任库。

这是代码:

以下是 PKCS#11 配置的内容:

当我运行应用程序时,我还设置了属性-Djava.library.path=/usr/lib/firefox/

当我运行应用程序时,我得到以下信息:

您实际上可以看到“trustanchors”模块在初始化步骤没有加载,但我不知道为什么。这里的文档:http: //docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#NSS

如果 secmod.db 已配置为包含信任锚库,则 trustanchors 模块允许通过 PKCS11 KeyStore 访问 NSS 信任锚证书。

但我不知道这意味着什么。值得注意的是,我在 Windows XP 32 位和 Ubuntu 11.10 64 位上都得到了相同的行为。pkcs11.cfg 似乎是正确的,就好像我更改了应用程序将因其他错误而失败的任何路径一样。

有什么好主意吗?

0 投票
1 回答
2730 浏览

libcurl - 使用 nss 支持构建 libcurl

我构建了 nss 的 64 位版本,并尝试使用 --without-ssl 和 --with-nss=NSS_ROOT 选项使用它来构建 curl 库。

在配置阶段,我看到以下内容:

最后 libcurl 是在没有 https 支持的情况下构建的。

有人可以告诉我如何解决这个问题吗?

0 投票
1 回答
388 浏览

javascript - 从命令行调用 nsIX509CertDB.nsIX509CertDB 失败

我正在尝试开发一个调用 nsIX509CertDB.nsIX509CertDB 的 FF 扩展。从 xpcshell 调用此函数时,我总是收到错误 0x80004005 (NS_ERROR_FAILURE)。我怀疑它失败了,因为在 xpcshell 环境中无法提示我输入密码。有没有办法从命令行提供它?

我的代码:

0 投票
1 回答
870 浏览

java - NSS 共享数据库不适用于 SunPKCS11

我已将 NSS 3.12.4 配置为在 FIPS 模式下使用 SunPKCS11 提供程序与我的 java 程序一起使用,并且一切正常。现在我按照https://blogs.oracle.com/meena/entry/what_s_new_in_nss1中提到的步骤使 NSS 作为共享数据库工作。

当我在共享数据库模式下配置 NSS 时,secmod.db 文件按预期被 pkcs11.txt 替换。但是现在 SunPKCS11 无法初始化,因为在初始化期间似乎检查了 secmod.db。我还尝试使用 sql: 为 configDir 加上前缀,但这也不起作用。

我收到以下异常。

任何人都尝试过使用 java 或任何方式解决此问题的 NSS 共享数据库?

0 投票
1 回答
343 浏览

javascript - 从 firefox 扩展替换 nsICertificateDialogs

我正在尝试nsICertificateDialogs用我自己的实现替换对话框。我已经有一个扩展来处理来自 webmail 的 smime 邮件。我希望能够将 Mozilla 证书存储与我的扩展一起使用。我发现导出 smime 证书/密钥(在我的扩展中使用它)的唯一可能性是通过导出 pfx 文件。

我从命令行调用 nsIX509CertDB.nsIX509CertDB 时取消了原始证书 teddialog 并按照此处所述注册了我的失败(取消注册旧工厂并使用正确的 contractID 注册我的)。当我打电话时,Cc[@mozilla.org/nsCertificateDialogs;1].getService(Ci.nsICertificateDialogs);我的班级被实例化。调用时certDB.importPKCS12File(null, certfile)我得到一个NS_ERROR_FAILURE并且我的对话框类没有被实例化。

FF 实例化证书对话框有什么区别。我该如何测试它?我错过了什么?

编辑:我的证书对话框类不会被 ff 实例化 - 即使使用有效令牌调用 certDB.importPKCS12File(token, certfile); 在更改调用 var certdialogInterface = Cc[sMimeCertificateDialog.mozillaContractID] .getService(Ci.nsICertificateDialogs); 正确实例化我的类(随后是一些 QueryInterface 调用)

编辑:我上传了一个(希望如此)简单的复制器到http://www.sodgeit.de/dialog_reproducer.zip查看 src/chrome/components/smime_certificate_dialog.js 和 src/tests/smime_certificate_dialog_test.js