BoringSSL

OpenSSL 分支
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 加密/解密软件包
软件类型 开源软件
地区 不详
投 递 者 郭洋
操作系统 Linux
开源组织
适用人群 未知
 软件概览

BoringSSL 是谷歌创建的 OpenSSL 分支,但使用BoringSSL的代码不能保证API或ABI的稳定性,所以谷歌会继续向 OpenSSL递交bug修正,继续资助Core Infrastructure Initiative和OpenBSD基金会。

背景:谷歌使用了超过70个OpenSSL补丁,部分被接受合并到了OpenSSL主库,但大部分没有。随着Android、Chrome和其它项目开始需要这些补丁的子集,事情日益变得复杂,要保证所有补丁在不同代码库正常工作需要太多精力。所以他们决定创建OpenSSL分支。

  • BUILDING boringssl 需要go 类似: wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local 我用了1.18 https://go.dev/dl/go1.18.linux-amd64.tar.gz root@k8s-master-2K4G:/o

  • 代码下载 git clone https://github.com/google/boringssl.git 编译 编译前需要安装go sudo apt install golang cd boringssl mkdir build cd build cmake .. make -j16 测试 boringssl提供了bssl工具进行测试。 语句如下: ./tool/bssl client -de

  • https://imququ.com/post/optimize-ssl-ciphers-with-boringssl.html 首先,获取编译所需的 Nginx 和 BoringSSL 源码,Nginx 从 1.7.4 开始支持 BoringSSL,这里我直接使用最新版: BASHwget http://nginx.org/download/nginx-1.9.6.tar.gz tar xzf

  • NDK 编译 Boringssl 获取so文件 Mirror of BoringSS 源码地址 如果需要手动编译可以使用上述方式 Android6.0更新openssl成boringssl, 如果通过JAVA调用系统的加密方法, 从Android6.0之后调用的就是boringssl, 官方建议通过JNI用C调用Java的加密方法, 而不是自己编译

  • 以下是在 CentOS 上编译 BoringSSL 的步骤: 安装依赖项 在终端中执行以下命令安装必要的依赖项: sudo yum install git gcc cmake make golang 克隆代码 克隆 BoringSSL 的代码库: git clone https://github.com/google/boringssl.git cd boringssl 配置 CMake 创建一个

  • 1、下载boringssl(https://boringssl.googlesource.com/boringssl/) 2、下载NDK及环境变量配置(NDK 下载  |  Android NDK  |  Android Developers (google.cn)) NDK下载好后,配置一下NDK的环境变量,我是在/etc/profile 进行配置的。 配置如下: export NDK_HOME

  • 1. 从 github 下载 boringssl 代码包,直接下载 zip 包即可,git clone 很慢;    网址:https://github.com/google/boringssl 2. 安装必要工具: Android NDK Android SDK GO    https://studygolang.com/dl/golang/go1.14.3.windows-amd64.msi

  • 参考 boringssl 根目录下的BUILDING.md 安装相关编译依赖项 ## Build Prerequisites   * [CMake](https://cmake.org/download/) 2.8.11 or later is required.   * Perl 5.6.1 or later is required. On Windows,     [Active State

  • 1. 下载和编译 boringssl  $ git clone https://boringssl.googlesource.com/boringssl $ cd boringssl $ mkdir build $ cd build $ cmake .. $ make 编译前需要安装 cmake,zlib,go等软件: sudo apt-get install -y build-essential

  • 背景是我们的项目有用到boringssl。然后用户(魅族手机)报了一个bug,使用arm64的库的时候,会crash。但是使用armv7的库时不会。 我找了日志,定位到代码crash的代码在 https://boringssl.googlesource.com/boringssl/+/refs/heads/master/crypto/fipsmodule/rand/urandom.c#171 //

  • 现象 系统版本:iOS12 build configuration: Release 场景: 后台收到Push进入前台,触发网络请求。 Xcode 输出: nw_socket_handle_socket_event [C58:1] Socket SO_ERROR [9: Bad file descriptor] nw_socket_get_input_frames [C58:1] recvmsg(

  • boringssl_self_test.cpp /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance wit

  • Netty-Tcp using openssl/boringssl for ssl Pom.xml: 若发现找不到对应classifier变量,可以尝试重新编译 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <versi

  • 转载https://www.jianshu.com/p/0cc0cfcb858d 018-10-18 11:02:14.647218+0800 AutumnTest[1917:573781] [BoringSSL] nw_protocol_boringssl_error(1584) [C4.1:2][0x103b0c3a0] Lower protocol stack error: 54 2018-

  • 1 建议采用boringssl 替代 openssl 目前Android6.0以后已经采用boringssl而非openssl,故如果网络框架中需要采用ssl加密,建议采用boringssl。而且Android平台需要openssl 1.0.1x,采用工具链编译坑也比较多,boringssl有google官方支持。 2 下载boringssl 编写 配置环境NDK环境变量 boringssl 准备

  • SSL介绍 SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。 SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认

  • tensorflow中,grpc使用boringssl进行加密,boringssl是google基于openssl自行开发的一条分支,有许多相同函数,但底层实现以及支持的加密类型有不同。 且tensorflow中,boringssl是以静态库形式编译的,一旦在BUILD中加入openssl及grpc,就会产生冲突。 最好的规避方式是放弃openssl,使用tensorflow中的boringssl

 相关资料
  • 分支变换与组合变换恰好相反,它通常是由一个上游节点以特定的规则分离出不同的下游节点。下面是全部的分支变换形式。 switch-case-default switch-case-default 变换是通过给出的 block 将每个上游的值代入,求出唯一标识符,再分离这些标识符的一种操作。我们举例一个分离剧本的例子: EZRMutableNode<NSString *> *node = [EZRMut

  • 开发项目的时候,有了新的想法,但你又不太确定想法是否可行,或者你打算为项目开发一项新功能。都可以去创建一个新的分支,在上面去实践你的想法,如果可行,或者在新分支上完成了你想要的功能,你可以再把在这个分支上对项目做的修改合并到主分支或开发分支上。完成以后,可以保留这些分支,也可以把它们删除掉。 列出分支 git branch 创建分支 git branch 新分支 删除分支 git branch

  • 简介 上一章中,我讲解了如何定义函数。本章中,我会讲解如何通过条件编写过程。这个是编写使用程序很重要的一步。 if表达式 if表达式将过程分为两个部分。if的格式如下: (if predicate then_value else_value) 如果predicate部分为真,那么then_value部分被求值,否则else_value部分被求值,并且求得的值会返回给if语句的括号外。true是除

  • 远程引用是对远程仓库的引用(指针),包括分支、标签等等。 你可以通过 git ls-remote (remote) 来显式地获得远程引用的完整列表,或者通过 git remote show (remote) 获得远程分支的更多信息。 然而,一个更常见的做法是利用远程跟踪分支。 远程跟踪分支是远程分支状态的引用。 它们是你不能移动的本地引用,当你做任何网络通信操作时,它们会自动移动。 远程跟踪分支像

  • 现在已经创建、合并、删除了一些分支,让我们看看一些常用的分支管理工具。 git branch 命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表: $ git branch iss53 * master testing 注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当前 HEAD 指针所指向的分支)。 这意味着如果在这时候提

  • 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。 有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢?

  • 我看到了这张非常漂亮的信息图,它大致估计了用于某些操作的CPU周期。在学习的时候,我注意到了一个条目“如果的右分支”,我假设如果满足条件,“如果”将要分支(编辑:正如评论中指出的,“右”实际上意味着“正确预测的分支”)。这让我怀疑if分支与else分支相比是否存在任何(甚至如此微小)速度差异。 例如,比较以下非常简洁的代码: 演示 它在x86 64bit中生成此程序集: 如您所见,右边的分支为“a

  • 分支是任何编程语言中最重要的方面。 在编写程序时,您可能会遇到必须做出决定的情况,或者您必须从给定的多个选项中选择一个选项。 下图显示了一个简单的场景,其中程序需要根据给定条件采用两个路径之一。 Euphoria提供以下三种类型的决策(分支或条件)声明 - if 语句 switch 语句 ifdef statement 让我们详细看一下这些陈述 -