问题标签 [boringssl]

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 回答
108 浏览

c++ - 如何在 C++ 中使用 Tink 从安全的 websocket 中读取数据

我正在开发一个需要从安全 websocket 读取的 C++ 客户端应用程序。在查看了一些 websocket 库后,我想使用easywsclient,但它不支持 TLS。我尝试按照这篇文章使用 OpenSSL 添加对以 wss 开头的 URL 的支持,但希望避免从文件中加载证书和私钥(如果可能的话)。我研究了这是如何在 boost asio 中完成的,他们建议使用certify来访问平台的 TLS 密钥库。我还研究了 chrome 浏览器,发现它使用了 BoringSSL,这让我找到了 Tink。但是,我找不到如何使用 Tink/BoringSSL 来保护 websocket 并处理客户端证书和密钥的示例。有人可以指出我正确的方向吗?

0 投票
1 回答
73 浏览

linux - /usr/bin/ld: /usr/include/c++/8/bits/stl_construct.h:107: 未定义对 *** 的引用

在我的 Raspberry Pi 4B 上编译 Google 的 BoringSSL for NGINX QUIC 时遇到错误,其中运行 Raspberry Pi OS,又名 Raspbian buster。

我用来编译的命令

正如谷歌的文档所说,我使用了这些命令:

我也试过cmake不通过就跑-DCMAKE_BUILD_TYPE=Release

错误输出

这是错误消息的一部分。我没有显示整个输出,因为它太长了(有 352 行)。告诉我是否需要整个输出来解决这个问题。

附加信息

搜索谷歌,但我找不到任何类似的案例。我需要帮助。非常感谢。

这个问题也可以在 Chromium bug tracker 中找到:https://crbug.com/boringssl/422。您可以在附件中找到完整的错误输出。

0 投票
0 回答
15 浏览

boringssl - Java 中的 BoringSSL SSL 日志

有没有办法从 Java 中的 BoringSSL 获取 SSL 协议日志?如果相关的话,这是从 ServiceTalk 使用的。

如果我将 SSL 提供程序切换到 JDK,那么我可以获得ClientHello,ServerHello等消息,但我看不到让 BoringSSL 执行此操作的方法。

0 投票
1 回答
118 浏览

python-3.x - 来自 conda-forge 或 pypi 的 python 包 grpcio 是使用boringssl 构建的吗?

我想确定grpcio我需要安装的 python 包(版本> = 1.38.1)使用的是 BoringSSL 而不是 OpenSSL。我正在寻找 conda- forge conda - forge或 pypi pypi或在 grpc 站点grpc但可以找到此信息。我发现一些博客提到使用了boringssl,但没有任何参考博客。任何建议如何找到此信息?或者它将使用系统中可用的 SSL 库?

0 投票
0 回答
6866 浏览

json - Swift Boringssl_metrics_log_metric_block_invoke(144) 无法记录指标

在从 API 链接获取 JSON 数据时,我只是收到一个错误“[boringssl]boringssl_metrics_log_metric_block_invoke(144) 无法记录指标”。在它工作之前,我刚刚更新了 Xcode 13.1 版。我正在检查每个论坛,但我找不到解决它的方法。以前有人遇到过同样的问题,请帮帮我。谢谢你。

0 投票
0 回答
103 浏览

flutter - 如何为 Dart/Flutter HttpClient 编写自定义 SSL 主机名验证器

我有多个设备,每个设备都公开了一个带有我自己的 CA 签名的 X509 证书的 HTTPS 服务器。客户端通过本地网络中的 IP 调用这些服务器,但事先不知道 IP,因此证书不包含 IP,但它们具有自定义(不可解析)DNS 名称。

在客户端(现在是移动应用程序),我使用带有SecureContext的 dart HttpClient将我的 CA 证书设置为受信任并调用服务器。

但是证书验证和连接失败,因为虽然证书是由我的 CA 签名的,但证书名称不等于用于调用服务器的本地 IP 地址。

允许HostnameVerifier的 Android/Java 支持此用例。而且似乎也可以在 iOS 中使用SecPolicyCreateSSL 来实现

所以我可以在每个平台上编写一个 Flutter 插件,但在我看来,正确的方法是直接在 Dart 中支持这一点,它使用 BoringSSL 来构建 SecureSocket。

我正在尝试编写一个允许主机名验证器的 Dart 库,我认为我必须以某种方式覆盖 HttpClient 使用的SecureSocket,但我不确定我是否必须直接调用 Dart 包含的 BoringSSL 库(如何我应该这样做吗?)或者希望只是在 Dart 中完成。

看起来可以使用openssl完成此验证。BoringSSL中的handshake_client.cc似乎拥有大部分需要的东西。

谁能给我一些关于如何在 Dart 中实现这一点的想法/提示?

顺便说一句,我已经尝试过badCertificateCallback,但它并没有一致地返回服务器证书,在 Android 中它返回叶/服务器证书,在 iOS 中它返回颁发者 CA 证书。无论哪种方式,它似乎都包含足够的数据来验证服务器证书实际上是否由 CA 正确签名。

0 投票
0 回答
122 浏览

java - Netty 套接字 SSLHandshakeException WRONG_VERSION_NUMBER

我在 netty 管道上使用证书时遇到问题。Netty 管道由 Spring 执行,但 SSL 只是 Netty 部分的一部分。

对于依赖项,我使用的是 netty 和boringssl

我通过添加 sslhandler 开始我的管道

从函数中获取处理程序

最后制作上下文

PrivateKey 和 CertChain 构造正确,但是一旦客户端第一次尝试连接,我就会得到

io.netty.handler.codec.DecoderException:javax.net.ssl.SSLHandshakeException:错误:100000f7:SSL 例程:OPENSSL_internal:WRONG_VERSION_NUMBER

我过去有这个工作,连接到一个单独的服务器,然后它工作得很好。通道正在初始化,尝试从套接字读取时崩溃。它没有命中我的尝试捕获,并且只报告下面的堆栈跟踪。

我知道目前我正在处理一个 TLSv1.3,在此之前我不知道具体使用了什么。另外,我在发现这个问题的时候使用的是JDK 1.8,我目前在使用JDK 17。我注意到有人说不是所有的1.8 版本都支持TLSv1.3。

0 投票
2 回答
303 浏览

xcode - 如何消除boringssl日志警告?

我构建了一个货币转换器应用程序,它通过 API 获取实时货币值并显示它。在物理手机上测试我的应用程序运行良好且没有崩溃。

但是每当我进行 API 调用时,我都会在模拟器中收到如下警告:

这是我如何使用 URLSession

我尝试更改一些值,但没有任何效果

  • OS_ACTIVITY_MODE = 默认
  • DEBUG_ACTIVITY_MODE -> 调试 -> 任何 iOS 模拟器 SDK = 默认

我的疑问是:

  1. 如何消除此警告?
  2. 我可以忽略这个警告吗?
  3. Apple 会接受带有此警告的我的应用程序吗?
0 投票
0 回答
17 浏览

ssl - Boringssl 中是否有任何函数返回对等方的经过验证的证书链?

在 openssl 中,函数 SSL_get0_verified_chain 用于返回经过验证的证书链 [1]。但这在boringssl中被删除了。在boringssl中是否有任何替代方案,删除有什么好处?

[1] https://www.openssl.org/docs/man1.1.1/man3/SSL_get0_verified_chain.html

0 投票
1 回答
14 浏览

go - 如何找到 dev.boringcrypto 二进制文件中使用的 boressl 的 CMVP 证书

我决定使用https://go-boringcrypto.storage.googleapis.com/go1.14.15b4.linux-amd64.tar.gz

我想知道哪个确切的 NIST CMVP 证书编号适用于该版本的 BoringCrypto 模块?

从 NIST 的快速搜索中,我可以找到这些证书 -

a) 3753 b) 3678 c) 3318 d) 2964

有没有办法找到这个?如果以后我们决定升级并使用其他版本,这将很有帮助。