问题标签 [libressl]
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.
c - 在纯 C 中将 HTTP 连接传输到 HTTPS
我在将 HTTP 连接套接字程序转移到 HTTPS 连接套接字代码时遇到严重问题,如何在纯 C 中仅建立 HTTPS 连接?
我正在开发包管理器并正在重写 connection.c 文件,该文件包含的唯一内容是用于与包含包的服务器建立初始连接的代码,它什么也不做。我通过 HTTP 连接可以 100% 工作,但是我需要转移到 HTTPS 连接并且需要使用 LibreSSL;目前我正在尝试使用 OpenSSL,因为我在 LibreSSL 上找不到任何东西。我的HTTP代码如下:
这 100% 有效,我只想将其移植到 HTTPS。在查看了格式可怕的 OpenSSL client.c 示例(请参见此处:https ://wiki.openssl.org/index.php/SSL/TLS_Client )后,我让该代码在我的系统上运行(必须对其进行一些更改) ,然后将我的 HTTP 代码移植到 HTTPS。我研究了一段时间,并认为我让它工作了,我一直在调试它,但不知道为什么它一直失败。代码如下:
现在我知道它缺少一些明显的东西,例如编写我自己的 initssl(我不确定为什么它还没有在 lib 中,但我开始明白为什么 OpenBSD 决定分叉)。我把它们排除在外,因为我对使用 LibreSSL 更感兴趣,并且不相信你需要它们来使用 LibreSSL。我尝试使用打印语句进行调试,但即使在 main() 的顶部给出它们也不会被打印。我不确定为什么这不起作用,需要一些帮助才能移植。我编写的其他文件 repos.h 和 resolv.c 如下所示:
我知道其中一些调用由于 IPv6 而过时,但在我让这一切正常工作并从 BSD libc 移植到 musl libc 之后,我将添加 IPv6。
我希望 HTTPS 代码能够运行并连接到服务器,从而打印连接,但它只是运行并且不会失败或打印任何内容。
facebook-graph-api - FacebookAds\Exception\Exception,代码:35:LibreSSL SSL_connect:SSL_ERROR_SYSCALL 连接到 graph.facebook.com:443
似乎出乎意料(即我最近没有编辑代码),在过去的几天里,我开始在我的 cron 作业中收到很多这样的错误消息:
FacebookAds\Exception\Exception, Code: 35: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to graph.facebook.com:443
作为测试,我能够通过 SSH 连接到我的服务器并毫无问题地运行它:curl -vvv https://www.facebook.com
此外,每 5 分钟运行一次并经常导致此错误的 cron 作业并不总是会导致此错误。在我手动发送作业的几次中,我没有看到错误。
这是什么意思,是什么突然导致我的 cron 工作经常抛出这个错误,我该如何解决?
PS 这些似乎是相关的问题,但似乎没有关于 LibreSSL 和 Facebook 的答案:
openssl - If intermediate certificate has expiry date after root certificate, does it throw any error with openssl?
If intermediate certificate has expiry date after root certificate, does it throw any error with openssl?
I recently encountered openssl error 7 : X509_V_ERR_CERT_SIGNATURE_FAILURE
with cert chain . I wonder if above question could cause this issue as intermediate cert had expiry after root.
libressl - 无法验证 smime 签名
我在 macOS 上使用 LibreSSL 2.8.3 签署了这样的文件:
现在我想立即验证同一个文件。我正在尝试以下命令
但这失败并出现以下错误。验证签名的正确语法是什么?
读取 S/MIME 消息
时出错 4550921836:error:0DFFF0A8:asn1 encoding routines:CRYPTO_internal:wrong tag:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/crypto/ asn1/tasn_dec.c:1144:
4550921836:error:0DFFF03A:asn1 编码例程:CRYPTO_internal:nested asn1 错误:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8 /crypto/asn1/tasn_dec.c:317:Type=PKCS7
我基本上这样做是因为我想尝试快速实现登录。我知道上面的 sign 命令可以正常工作,所以如果我能弄清楚如何验证文件,那么我就可以正确测试我的 Swift 实现是否有效。
WWDR.pem 文件来自http://www.apple.com/certificateauthority,是全球开发者关系证书。
为了获取passcertificate.pem
和passkey.pem
文件,我去了 Apple Developer 门户并生成了通过证书,将其导入 mac Keychain Access,将其导出到 Certificates.p12,然后运行以下两个命令:
perl - 使用 Carton 和自定义 LibreSSL/OpenSSL 安装 IO::Socket::SSL 的正确方法是什么
Perl 框架Mojolicious使用可选模块IO::Socket::SSL进行安全连接。
Mojolicious和IO::Socket::SSL必须使用Carton安装(cpanfile包含依赖项列表)。
为了使用IO::Socket::SSL我需要安装Net::SSLeay。
Net::SSLeay需要安装 LibreSSL 或 OpenSSL。
在开发者的服务器上,确定的 Perl 项目必须使用确定的 LibreSSL/OpenSSL 版本:
我的解决方案是在之前更改$PATH系统变量(用于本地自定义 LibreSSL/OpenSSL):
这是正确的方式吗?
macos - 运行 pip 生成 cryptography.exceptions.InternalError: Unknown OpenSSL error
我试图将 pip 从 9.x 升级到 19.3.1。最初,此回溯仅在发出pip
. 现在它在尝试时发生pip list/install/uninstall
。我已经尝试了一些东西,包括这里的解决方案:
'pip install' 对每个包都失败(“找不到满足要求的版本”)
这里的 curl 命令也会生成相同的回溯。
我已经尝试过sudo easy_install -U pip
,这允许我在没有回溯的情况下运行 pip,但是在尝试列出/安装/卸载时我仍然有回溯。
这是回溯:
macOS 版本:10.14.6
openssl 版本:LibreSSL 3.0.2(brew 安装并添加到 .zshrc 中的 PATH)
pip 版本:来自 /Library/Python/2.7/site-packages/pip-19.3.1-py2.7.egg/pip (python 2.7) 的 pip 19.3.1
compiler-errors - Solaris 10 上的 LibreSSL 3.0.2 编译错误:未定义对符号“SHA512Final”的引用
我们正在尝试在 Solaris 10 上编译 LibreSSSL 3.0.2。我们正在使用 GNU gcc 4.6.2 并遇到以下问题:
错误是“未定义对符号 'SHA512Final 的引用”
提出的命题是'SHA512Final' 在 DSO /lib/libmd.so.1 中定义,因此请尝试将其添加到链接器命令行。但是就在我们遇到错误“/lib/libmd.so.1:无法读取符号:无效操作”之后,显然编译器已经尝试从该库中读取符号而没有成功。
在 Solaris 上成功编译 LibreSSL 有什么想法吗?
我补充一些细节...
编译是在 Solaris 10 for i386上使用 GNU gcc 编译器 4.6.2 进行的。我没有为编译设置位。
GNU gcc 使用选项 -v 显示以下信息
uname -a 选项显示:
我刚刚用标志重新编译:
现在的错误是
所以现在使用的库是 64 位库,但问题仍然存在...... :-|
希望能帮助到你。目前我们将使用成功编译的 OpenSSL 1.1.1。
问候
openssl - LibreSSL 为 aes-256-gcm 提供身份验证标签
我目前正在运行我的命令:
该命令的输出是bad decrypt
. 我的输出文件看起来也只是解密了一半,文件看起来像
Object(id=998fdsa981sdafkj@ÛP²•v’@v[ðt
- 这是完全解密的吗?我相信这些符号代表二进制,但看起来我的对象只有一半被解密
- 我一直在查找
bad decrypt
,似乎它与未提供用于解密的 GCM 加密身份验证标签有关。有没有办法将它提供给 Libre 命令?我一直在通过https://www.libressl.org/浏览 LibreSSL,但似乎没有任何类型的文档。
postgresql - macOS 自带的 OpenSSL 包的头文件和库在哪里?
我刚刚安装了 macOS Catalina 版本 10.15.4 (19E287)。
它安装了 OpenSSL(实际上是 LibreSSL)。
我通过提供--with-openssl
命令行选项来从源“支持 SSL(加密)连接”安装 PostgreSQL configure
。
那么我在哪里告诉编译器寻找“所需的头文件和库”呢?
即,我应该为--with-includes
和--with-libraries
命令行选项添加configure
什么?
我不想使用 Homebrew。如果必须,我宁愿从源代码安装 LibreSSL。
ssl - macOS 上的 Homebrew:brew update 说 LibreSSL 错误:SSL_ERROR_SYSCALL,errno 54
由于我更新到最新版本的 macOS 10.15.4 Catalina,所以当我更新brew update
到此错误时:
致命:无法访问“ https://github.com/Homebrew/homebrew-cask/ ”:LibreSSL SSL_read:SSL_ERROR_SYSCALL,errno 54
在更新之前我曾经很好(已经有 Catalina)。不确定发生了什么变化。
我确实搜索并找到了关于这个问题的几个主题(也是较旧的主题),无论是在这里还是在 github 上。不幸的是,没有一个建议对我有用:
- 禁用 ipv6
- 禁用代理(我没有使用)
- 禁用卡巴斯基或其他防病毒软件(我没有运行)
- 重新启动
export HOMEBREW_FORCE_BREWED_CURL=1
接着brew update
echo '--no-alpn' > ~/.curlrc
;export HOMEBREW_CURLRC=1
;brew update
一切都无济于事,错误不断出现。
它没有提到任何与 curl 相关的内容,但是从有关此问题的其他主题中,我知道它很可能与 curl 有关。我自己没有改变任何与 curl 相关的东西(尽管可能最新的 Catalina 补丁做了,不确定)。直到几天前它确实工作正常。
我还发现了一些看起来不太可能的其他建议,而且它们似乎改变了一些我真的希望避免的基本操作系统安装(害怕它会导致其他不兼容)。
有没有一种简单、安全的方法来解决这个问题?
仅供参考,我正在使用 Homebrew 2.2.15。