问题标签 [gnutls]
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.
linux - openssl 对 cryptodev-linux 的支持
看起来 openssl 带有 cryptodev-linux 支持(通过 eng_cryptodev.c)。当我下载 openssl 时,eng_cryptodev.c 文件默认可用。
下面的链接是关于 eng_cryptodev.c 的 openssl 支持:
http://repo.or.cz/w/cryptodev-linux.git/commitdiff/56cc4e3b8b761cb34f928f4eee59755d1f0afc53
注意:看起来对 openssl 源中可用的 eng_cryptodev.c 文件进行了一些额外的更改。
最近似乎有一些可用于 cryptodev-linux 的更改/补丁,下面包含参考信息。
http://rt.openssl.org/Ticket/Display.html?id=2770&user=guest&pass=guest
补丁是:
0001-cryptodev-Fix-issue-with-signature-generation.patch 0002-cryptodev-allow-copying-EVP-contexts.patch
注意:patch -p0 < 0001/2-*.patch 不能正常工作。所以手动应用。
如果我的理解不正确,请告诉我。
BR,
& 萨努马拉
c++ - SSL 现在过时了吗?
我开始学习信息保护,从 OpenSSL 开始。但我在 Wikipedia 上读到 SSL 的安全问题仍未解决,任何人都必须改用 TLS。这是真的吗?这是否意味着 SSL 现在已过时?(因为出现了其他信息保护方式而不是修复 SSL)
git - 如何让 git 告诉 curl 在不重建包的情况下使用 openssl 而不是 gnutls?
我们有一个 GnuTLS 不喜欢的内部服务器,例如:
除了 GnuTLS 之外的所有内容都可以正常运行,但 git 似乎在 Ubuntu 14.04.2 LTS 上使用了开箱即用的 GnuTLS,因此 git 失败并显示:
我们正在努力解决与 GnuTLS 的不兼容问题,但与此同时,有没有办法强制 git 告诉 curl 在运行时使用另一个 SSL 引擎(即不从源代码重建 git)?
python - 使用 context.use_certificate_chain_file 时的“键值不匹配”
使用时context.use_certificate_chain_file
出现关键错误(openssl.Context Python)。错误是:
它说关键值不匹配,但我认为链条不会影响这一点。
如果我评论 context.use_certificate_chain_file 行,它可以完美运行(但在浏览器中会出现 ssl 验证错误)。
这是我的代码片段:
任何想法为什么它给出错误?
port - 如何使用 GnuTLS 连接到特定的 IP 地址和端口
我有一个 TCP 客户端和服务器,我想使用 GnuTLS 实现一个安全层。我已经阅读了 GnuTLS 文档,他们没有谈到连接到特定的 IP 地址或端口。他们确实在可用于生成证书请求的 certtool 模板中设置了 IP 地址。
但就我而言,作为客户端,我在 UDP 会话期间获取服务器地址,然后将我的 TCP 套接字连接到它。
在文档中给出的示例中,有这一行:
(session, GNUTLS_NAME_DNS, "my_host_name", strlen("my_host_name"));
...我相信它负责获取服务器地址。
python - 无法使用 OpenSSL 重新构建 pycurl
由于这个错误,我正在尝试使用 OpenSSL 重建 pycurl 。我用这个例子:
- sudo apt-get install build-essential fakeroot dpkg-dev
- mkdir ~/python-pycurl-openssl
- cd ~/python-pycurl-openssl
- sudo apt-get 源码 python-pycurl
- sudo apt-get build-dep python-pycurl
- sudo apt-get install libcurl4-openssl-dev
- sudo dpkg-source -x pycurl_7.19.3-0ubuntu3.dsc
- cd pycurl-7.19.3
- 编辑 debian/control 文件并用 'libcurl4-openssl-dev' 替换所有 'libcurl4-gnutls-dev' 实例(7 处更改)
- sudo PYCURL_SSL_LIBRARY=openssl dpkg-buildpackage -rfakeroot -b
- sudo dpkg -i ../python-pycurl_7.19.3-0ubuntu3_amd64.deb
但毕竟我仍然坚持使用 pycurl 的 GnuTLS 构建。
操作日志(有一些错误的回溯): http: //pastebin.com/6hUEUGar
我用:
我究竟做错了什么?
我可以使用 pip 解决问题:
现在:
但我不确定它是否正确。为什么系统中有两个包?或者没关系,python 只是链接到其中之一?
linux - GNUTLS 客户端-服务器 TLS 握手错误
我正在使用 gnutls 给出的两个示例:
- “支持 X.509 证书的简单客户端示例”没有任何更改
“带有 X.509 身份验证的 Echo 服务器”。我使用 certtool 和自签名证书“cert.pem”生成了私钥“key.pem”,并在示例中使用它。
服务器正常工作...输出如下:
服务器准备好了。监听端口“5556”
但是如果我运行客户端示例,它会返回以下错误:
握手失败 GnuTLS 错误:TLS 连接未正确终止
服务器返回:
来自 127.0.0.1 的连接,端口 58587 握手失败(请求无效。)
问题是什么?我需要更改客户端示例吗?如果没有,如何检查 TLS 握手过程以及客户端和服务器之间发送的数据?
c - GnuTLS 扩展
我尝试使用本网站 ( http://www.wikinology.cn/wiki/GnuTLS_Extension_Development_Notes ) 中定义的 gnutls 添加我自己的 TLS 扩展,所以让我一步一步解释:
注意:我使用了 gnutls-3.3.14 和扩展名为:SupportedAndAcceptedCertType。
1- m4/hooks.m4:
2- gnutls_int.h:
GNUTLS_EXTENSION_SupportedAndAcceptedCertType=9999
3-在 gnutls_extensions.c 中:
/ * 测试 * /
/*结束测试*/
4-在 ext 文件中创建 SupportedAndAcceptedCertType.h:
5-在 ext 文件中创建 SupportedAndAcceptedCertType.c:
6-在 Makefile.am 中:
现在基于网站“ http://www.wikinology.cn/wiki/GnuTLS_Extension_Development_Notes ”,我目前在步骤“更新模板文件:
必须更新这些文件:
库/Makefile.in
lib/includes/gnutls/gnutls.h.in
我该怎么做这一步?在这一步之后,我可以在握手中看到我的扩展(ClientHello 和 ServerHello)吗?
谢谢
c++ - 无法静态链接 libgnutls.a
我尝试链接 gnutls 库静态(libgnutls.a)。我已经用 OpenSSL 做了类似的事情,它完美地使用了命令行:g++ test.cpp -statical -lcrypto -ldl -o test。但是,如果我尝试使用 gnuTLS 库(g++ test.cpp -statical -lgnutls -ldl -o test),我会收到很多这样的错误:
是否有可能静态链接 gnuTLS 库?
ssl - 由于通过 _asn1_ordering_set_of 重新排序而导致签名验证失败
我正在使用GnuTLS 3.4.1。我有一个 x509 证书,里面有一组序列。证书以这种方式存储在智能卡上。
GnuTLS 正在通过 function 重新排列序列_asn1_ordering_set_of
,这似乎导致验证失败。
这是序列的样子:
OpenSSL(可能还有 Java PKCS11 提供者)按原样加载此结构。加载证书时的 GnuTLS 将此结构排序为_asn1_ordering_set_of
. 这样就变成了:
为什么 GnuTLS 对序列集进行排序?应该怎么做,是 GnuTLS 错误还是其他库只是省略了排序?