问题标签 [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 回答
1057 浏览

android - 使 Android 应用程序使用 FIPS 140-2 验证加密

我有客户希望我们的应用程序使用FIPS 140-2 验证的密码学。该应用程序使用Okhttp 并执行一些 HTTPS 请求。AFAIK Android 使用 OpenSSL C 库并使用 java 包装器 javax/net/ssl

问题:

  1. 如何使 android 应用程序 FIPS 140 -2 投诉?

  2. 堆栈(操作系统)级别的 android 是否应该使用符合 FIPS 的 OpenSSL,因此所有应用程序都默认符合 FIPS 140 -2 标准?

  3. 或者我们的应用程序应该使用经过 FIPS 140-2 验证的密码学并让 java javax/net/ssl 使用它?可行的?

  4. 是否有可以插入 OKhttp 的 FIPS 140-2 JCE 库?

谢谢

0 投票
1 回答
2697 浏览

android - 在 Android Studio 中使用 Prebuilt 库

我正在android中制作一个jni函数来使用BoringSSL生成文件checkSum。

所以我将boringssl构建到共享库中,以便在Android Studio中使用Prebuilt Library。

像这样的构建输出。 在此处输入图像描述

我将 *.so 文件复制到我的项目 src/main/jniLibs/lib 和 BoringSSL 包含文件夹到 src/main/jni

我引用了这个项目并应用于我的项目。

https://github.com/googlesamples/android-ndk/tree/master/hello-libs

我的build.gradle文件是这样的。我正在使用 gradle-experimental:0.7.0( 和 Window10, Android Studio 2.1.2 )

这是我的项目结构。

在此处输入图像描述

我想我正确地应用了示例项目,因为它没有发生 gradle sync 错误。

当我使用 MD5 函数时,Android Studio 自动完成函数名称是这样的。 在此处输入图像描述

但是我点击运行它发生了这样的错误...... 在此处输入图像描述

我在 google、github 中搜索了很多项目,当然还有 stackoverflow 以前的答案,但我仍然没有解决我的问题。

我尝试更改 gradle 版本,但其他 gradle 版本在自动生​​成的 jni 函数中发生错误,除了 gradle-experimental:0.7.0。

谁能指出我正确的方向甚至解决方案?

感谢您阅读我的问题。

0 投票
0 回答
1316 浏览

java - HTTPS 连接完成,Android 6.0 上的连接被对等方关闭

我在 Android 设备(使用 Android 6.0 的三星 Galaxy)和使用 com.sun.net.httpserver.HttpsServer 的简单 Java 应用程序之间通过 SSL (TSL) 进行通信时遇到问题。我不得不说,在其他装有 Android 4.4 的设备上一切正常。

当 Android 6.0 尝试进行握手时,服务器端完成通信,在 android 上看到下面的堆栈跟踪

用于 SSL 启动的 Android 代码

和一个服务器代码:

`

我检查过的内容:

  • 输入标题后 google 和 stackoverflow 建议的每个链接(特别是链接Https 连接在 android 5.0 lollipop 中被对等方关闭- 但没有运气)
  • 两个设备上的 Cipher siute 理论上都应该能够完成握手。有相应的算法。
  • 我检查了与wireshark的通信。我发现即使我 delcare(在 Android 中)TLSv1.2 版本 TLS 1.0 在 SSL 标头中发送(请参阅 附加的 wireshark 转储- 使用“解码为”-> SSL)在第 140 行我们看到来自 Android 6.0 的通信,Bellow(在第 145 行,我们看到来自 Android 4.4 的工作通信)10.0.0.203 是 Android 6.0,10.0.0.99 是服务器,10.0.0.200 是 Android 4.4
  • 我读到“连接被对等方关闭”并且在许多主题中人们都在谈论错误的证书,但就我而言,我认为 SSL 在协议协商期间崩溃,而不是在证书交换期间(稍后出现)。

服务器站点有点旧(它是一个 SOAP 服务),但我认为服务器提供什么并不重要。

请帮忙,这是我的第一篇文章。

0 投票
0 回答
450 浏览

android - 在 Android 上添加自定义 TLS 扩展

我正在开发一个 Android 应用程序,并希望在 TLS/SSL ClientHello 握手上添加一个自定义扩展。OpenSSL 和 BoringSSL 都支持添加自定义扩展所需的功能和回调,但不幸的是,Android JSSE 提供程序似乎没有公开此功能。

我相信我至少有两个选择:

  1. 一种方法是修改 conscrypt,添加对自定义扩展的支持,并在我的应用程序中捆绑库(本机 .so + .jar)。

  2. 寻找另一个支持自定义扩展或者比 conscrypt 更容易修改和捆绑的 JSEE 提供程序。

Rgearding (1),我找不到任何关于如何将 conscrypt 与特定应用程序捆绑的好的说明,并且第一次尝试针对源代码构建并在我的应用程序中手动添加库不起作用(我无法导入任何东西来自 conscrypt)。即使解决了,也很可能发生类冲突。

为我的应用程序添加支持的最佳方式是什么?

谢谢。

0 投票
1 回答
1609 浏览

java - Cloud Speech API 返回码 = UNAUTHENTICATED,原因 =java.io.IOException:获取服务帐户的访问令牌时出错:

我在我的应用程序中使用 Google Cloud Speech API(通过 gRPC 的 StreamingRecognize)进行语音识别。我遇到了在 Android 设备 API 级别 < 23 上进行身份验证的问题。

我不会每次都收到此错误,但仅限于特定情况。我有两个活动。让我们命名 A 和 B。

Activity A 有一个按钮,用于启动 Activity B。Activity B 与 Google Cloud Speech API 通信并在 TextView 中显示结果。

执行以下步骤后出现此错误(在三星 GT-P5110 (Android 4.2.2) 上):

  1. 启动 Activity A -> 按 Button 启动 Activity B。

// 第一次一切正常。我从服务器接收结果并显示这个。

  1. 关闭活动 B(按返回按​​钮或调用 onBackPressed 或完成)。

  2. 按下按钮开始活动 B。

// 此时我得到错误,如上所示。

我在 Lenovo A1000 (API 5.0.1) 和 Xiaomi Mi4c (5.0.1) 上收到此错误后:

  1. 启动 Activity A -> 按 Button 启动 Activity B。

  2. 关闭活动 B(按返回按​​钮或调用 onBackPressed 或完成)。

  3. 按下按钮开始活动 B。

// 一切正常

  1. 关闭活动 B(按返回按​​钮或调用 onBackPressed 或完成)。

  2. 最小化应用程序。

  3. 5-6 分钟或更长时间后回到活动 A。

  4. 开始活动 B。

// 在这一刻我总是得到这个错误。

重新启动应用程序后一切正常,但重新打开 Activity B 后出现错误。

谁知道我该如何解决这个问题?

我使用 Play Services Dynamic Security Provider(gRPC 需要它)。我安装了最新版本的 Google Play 服务(9.6.83)。它不能解决问题。

我通过以下代码创建 ManagedChannel:

创建 SpeechGrpc.SpeechStub :

build.gradle(模块:app)

build.gradle (项目)

感谢您的时间 :)

0 投票
0 回答
406 浏览

android-source - 基于linux的android repo构建boringssl libcrypto-host undefined reference to `sha512_block_data_order'

在 linux Ubuntu 16.04 x86-64 主机上编译 android 固件时

Boringssl 模块中出现以下错误:

还有一长串专门针对 libcrypto-host 模块的其他符号。

通过删除“external/boringssl/Android.mk”中的 linux 平台转义来尝试并解决

曾是:

现在只是:

请确认这是正确的方法还是有其他方法可以修复丢失的标志应用程序?

0 投票
1 回答
667 浏览

android - 由于 Android Zygote,将 OpenSSL 编译为不同的名称

我可以使用GitHub stdchpie/android-openssl为 android(libcrypto.so 和 libssl.so)成功构建 openssl-1.0.2j :

  • 环境:Linux OS,(我用的是Mac OS)

  • 安卓 NDK:12b

在 Android 5.x 上,如果使用:

它将与也具有相同名称的本机操作系统库发生冲突。不幸的是,手动更改他们的名字不起作用。所以我想把它们编译成不同的名字,比如 libcryptox.so 和 libsslx.so

我尝试整天玩 Makefile.org,但并不幸运。所以请有人告诉我该怎么做。

0 投票
0 回答
1591 浏览

android - 使用 OkHttp 时找不到证书路径的信任锚

我正在使用RetrofitOKHttp进行联网。使用 API 时,出现以下错误:

java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。

我搜索了 SO,但无法理解如何解决它。请提出一些片段、链接或建议。

0 投票
1 回答
298 浏览

android - 如何使用 MIPS 架构构建无聊的 SSL?

我正在尝试在我的 Android 项目的主分支上构建无聊的SSL。我还需要构建它以支持 MIPS 和 MIPS64。但是,该CMakeLists.txt文件根本没有此拱门的定义,并且在生成构建脚本时出现错误。

我做了一些简单的更新来解锁构建脚本:

构建工作到目前为止。但我认为谷歌禁用 MIPS 支持是有原因的。我想知道我会遇到什么风险/问题。

0 投票
1 回答
3258 浏览

curl - 如何用boringssl构建curl?

我正在尝试在 Ubuntu 16.04 上使用boringssl 构建 curl。

我的boringssl建好了。

使用 curl 7.53 我配置使用:

并且输出显示“SSL 支持:启用(BoringSSL)”OK。

但是当我make开始时,我会收到错误

并以

我不确定/usr/include/openssl/ui.h当 curl 配置为使用boringssl 构建时是否应该使用此标头,看来此文件仅存在于OpenSSL 中,而不存在于boringssl 中。