commit | d935af2e5cb18afc03d41fd1942c295735f745df | [log] [tgz] |
---|---|---|
author | Paul Duffin <paulduffin@google.com> | Fri Jul 15 16:15:24 2022 +0000 |
committer | Cherrypicker Worker <android-build-cherrypicker-worker@google.com> | Mon Jul 18 13:58:47 2022 +0000 |
tree | 9a2633f995b829f45760f079c0c5761e455e1f17 | |
parent | 57b81b0327cb9dead2a36357d4937e3accb4376f [diff] |
Added visibility needed for the S snapshot Change https://r.android.com/1762266 moved some modules that depended upon conscrypt.module.public.api from libcore, and some modules that depended upon conscrypt.module.platform.api from libcore/mmodules/core_platform_api to build/soong/java/core-libraries. As part of that work the visibility rules that were no longer needed were removed from those modules. Unfortunately, an sdk snapshot generated after that change will not work in S because it still has the dependencies from before the change but there are no matching visibility rules. This change adds the visibility back along with a message explaining why it is needed and cannot be removed. Bug: 239121291 Test: m conscrypt-module-sdk # Check that it has the missing visibility rules. Change-Id: I9ff48adeea7638ce9b20e5677f2c7dda7c73590c (cherry picked from commit 26897ffc1bae7b68fd8ba6e018a2fd36f5621fed) Merged-In: I9ff48adeea7638ce9b20e5677f2c7dda7c73590c
Conscrypt is a Java Security Provider (JSP) that implements parts of the Java Cryptography Extension (JCE) and Java Secure Socket Extension (JSSE). It uses BoringSSL to provide cryptographic primitives and Transport Layer Security (TLS) for Java applications on Android and OpenJDK. See the capabilities documentation for detailed information on what is provided.
The core SSL engine has borrowed liberally from the Netty project and their work on netty-tcnative, giving Conscrypt
similar performance.
Conscrypt supports Java 7 or later on OpenJDK and Gingerbread (API Level 9) or later on Android. The build artifacts are available on Maven Central.
You can download the JARs directly from the Maven repositories.
The OpenJDK artifacts are platform-dependent since each embeds a native library for a particular platform. We publish artifacts to Maven Central for the following platforms:
Classifier | OS | Architecture |
---|---|---|
linux-x86_64 | Linux | x86_64 (64-bit) |
osx-x86_64 | Mac | x86_64 (64-bit) |
windows-x86 | Windows | x86 (32-bit) |
windows-x86_64 | Windows | x86_64 (64-bit) |
Use the os-maven-plugin to add the dependency:
<build> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.4.1.Final</version> </extension> </extensions> </build> <dependency> <groupId>org.conscrypt</groupId> <artifactId>conscrypt-openjdk</artifactId> <version>2.5.2</version> <classifier>${os.detected.classifier}</classifier> </dependency>
Use the osdetector-gradle-plugin (which is a wrapper around the os-maven-plugin) to add the dependency:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gradle:osdetector-gradle-plugin:1.4.0' } } // Use the osdetector-gradle-plugin apply plugin: "com.google.osdetector" dependencies { compile 'org.conscrypt:conscrypt-openjdk:2.5.2:' + osdetector.classifier }
For convenience, we also publish an Uber JAR to Maven Central that contains the shared libraries for all of the published platforms. While the overall size of the JAR is larger than depending on a platform-specific artifact, it greatly simplifies the task of dependency management for most platforms.
To depend on the uber jar, simply use the conscrypt-openjdk-uber
artifacts.
<dependency> <groupId>org.conscrypt</groupId> <artifactId>conscrypt-openjdk-uber</artifactId> <version>2.5.2</version> </dependency>
dependencies { compile 'org.conscrypt:conscrypt-openjdk-uber:2.5.2' }
The Android AAR file contains native libraries for x86, x86_64, armeabi-v7a, and arm64-v8a.
dependencies { implementation 'org.conscrypt:conscrypt-android:2.5.2' }
If you are making changes to Conscrypt, see the building instructions.