1*cd0cc2e3SAndroid Build Coastguard WorkerConscrypt - A Java Security Provider 2*cd0cc2e3SAndroid Build Coastguard Worker======================================== 3*cd0cc2e3SAndroid Build Coastguard Worker 4*cd0cc2e3SAndroid Build Coastguard WorkerConscrypt is a Java Security Provider (JSP) that implements parts of the Java 5*cd0cc2e3SAndroid Build Coastguard WorkerCryptography Extension (JCE) and Java Secure Socket Extension (JSSE). It uses 6*cd0cc2e3SAndroid Build Coastguard WorkerBoringSSL to provide cryptographic primitives and Transport Layer Security (TLS) 7*cd0cc2e3SAndroid Build Coastguard Workerfor Java applications on Android and OpenJDK. See [the capabilities 8*cd0cc2e3SAndroid Build Coastguard Workerdocumentation](CAPABILITIES.md) for detailed information on what is provided. 9*cd0cc2e3SAndroid Build Coastguard Worker 10*cd0cc2e3SAndroid Build Coastguard WorkerThe core SSL engine has borrowed liberally from the [Netty](http://netty.io/) project and their 11*cd0cc2e3SAndroid Build Coastguard Workerwork on [netty-tcnative](http://netty.io/wiki/forked-tomcat-native.html), giving `Conscrypt` 12*cd0cc2e3SAndroid Build Coastguard Workersimilar performance. 13*cd0cc2e3SAndroid Build Coastguard Worker 14*cd0cc2e3SAndroid Build Coastguard Worker<table> 15*cd0cc2e3SAndroid Build Coastguard Worker <tr> 16*cd0cc2e3SAndroid Build Coastguard Worker <td><b>Homepage:</b></td> 17*cd0cc2e3SAndroid Build Coastguard Worker <td> 18*cd0cc2e3SAndroid Build Coastguard Worker <a href="https://conscrypt.org/">conscrypt.org</a> 19*cd0cc2e3SAndroid Build Coastguard Worker </td> 20*cd0cc2e3SAndroid Build Coastguard Worker </tr> 21*cd0cc2e3SAndroid Build Coastguard Worker <tr> 22*cd0cc2e3SAndroid Build Coastguard Worker <td><b>Mailing List:</b></td> 23*cd0cc2e3SAndroid Build Coastguard Worker <td> 24*cd0cc2e3SAndroid Build Coastguard Worker <a href="https://groups.google.com/forum/#!forum/conscrypt">[email protected]</a> 25*cd0cc2e3SAndroid Build Coastguard Worker </td> 26*cd0cc2e3SAndroid Build Coastguard Worker </tr> 27*cd0cc2e3SAndroid Build Coastguard Worker</table> 28*cd0cc2e3SAndroid Build Coastguard Worker 29*cd0cc2e3SAndroid Build Coastguard WorkerDownload 30*cd0cc2e3SAndroid Build Coastguard Worker------------- 31*cd0cc2e3SAndroid Build Coastguard WorkerConscrypt supports **Java 8** or later on OpenJDK and **KitKat (API Level 32*cd0cc2e3SAndroid Build Coastguard Worker19)** or later on Android. The build artifacts are available on Maven Central. 33*cd0cc2e3SAndroid Build Coastguard Worker 34*cd0cc2e3SAndroid Build Coastguard Worker### Download JARs 35*cd0cc2e3SAndroid Build Coastguard WorkerYou can download 36*cd0cc2e3SAndroid Build Coastguard Worker[the JARs](http://search.maven.org/#search%7Cga%7C1%7Cg:%22org.conscrypt%22) 37*cd0cc2e3SAndroid Build Coastguard Workerdirectly from the Maven repositories. 38*cd0cc2e3SAndroid Build Coastguard Worker 39*cd0cc2e3SAndroid Build Coastguard Worker### OpenJDK (i.e. non-Android) 40*cd0cc2e3SAndroid Build Coastguard Worker 41*cd0cc2e3SAndroid Build Coastguard Worker#### Native Classifiers 42*cd0cc2e3SAndroid Build Coastguard Worker 43*cd0cc2e3SAndroid Build Coastguard WorkerThe OpenJDK artifacts are platform-dependent since each embeds a native library for a particular 44*cd0cc2e3SAndroid Build Coastguard Workerplatform. We publish artifacts to Maven Central for the following platforms: 45*cd0cc2e3SAndroid Build Coastguard Worker 46*cd0cc2e3SAndroid Build Coastguard WorkerClassifier | OS | Architecture 47*cd0cc2e3SAndroid Build Coastguard Worker-----------| ------- | ---------------- | 48*cd0cc2e3SAndroid Build Coastguard Workerlinux-x86_64 | Linux | x86_64 (64-bit) 49*cd0cc2e3SAndroid Build Coastguard Workerosx-x86_64 | Mac | x86_64 (64-bit) 50*cd0cc2e3SAndroid Build Coastguard Workerwindows-x86 | Windows | x86 (32-bit) 51*cd0cc2e3SAndroid Build Coastguard Workerwindows-x86_64 | Windows | x86_64 (64-bit) 52*cd0cc2e3SAndroid Build Coastguard Worker 53*cd0cc2e3SAndroid Build Coastguard Worker#### Maven 54*cd0cc2e3SAndroid Build Coastguard Worker 55*cd0cc2e3SAndroid Build Coastguard WorkerUse the [os-maven-plugin](https://github.com/trustin/os-maven-plugin) to add the dependency: 56*cd0cc2e3SAndroid Build Coastguard Worker 57*cd0cc2e3SAndroid Build Coastguard Worker```xml 58*cd0cc2e3SAndroid Build Coastguard Worker<build> 59*cd0cc2e3SAndroid Build Coastguard Worker <extensions> 60*cd0cc2e3SAndroid Build Coastguard Worker <extension> 61*cd0cc2e3SAndroid Build Coastguard Worker <groupId>kr.motd.maven</groupId> 62*cd0cc2e3SAndroid Build Coastguard Worker <artifactId>os-maven-plugin</artifactId> 63*cd0cc2e3SAndroid Build Coastguard Worker <version>1.4.1.Final</version> 64*cd0cc2e3SAndroid Build Coastguard Worker </extension> 65*cd0cc2e3SAndroid Build Coastguard Worker </extensions> 66*cd0cc2e3SAndroid Build Coastguard Worker</build> 67*cd0cc2e3SAndroid Build Coastguard Worker 68*cd0cc2e3SAndroid Build Coastguard Worker<dependency> 69*cd0cc2e3SAndroid Build Coastguard Worker <groupId>org.conscrypt</groupId> 70*cd0cc2e3SAndroid Build Coastguard Worker <artifactId>conscrypt-openjdk</artifactId> 71*cd0cc2e3SAndroid Build Coastguard Worker <version>2.5.2</version> 72*cd0cc2e3SAndroid Build Coastguard Worker <classifier>${os.detected.classifier}</classifier> 73*cd0cc2e3SAndroid Build Coastguard Worker</dependency> 74*cd0cc2e3SAndroid Build Coastguard Worker``` 75*cd0cc2e3SAndroid Build Coastguard Worker 76*cd0cc2e3SAndroid Build Coastguard Worker#### Gradle 77*cd0cc2e3SAndroid Build Coastguard WorkerUse the [osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin) 78*cd0cc2e3SAndroid Build Coastguard Worker(which is a wrapper around the os-maven-plugin) to add the dependency: 79*cd0cc2e3SAndroid Build Coastguard Worker 80*cd0cc2e3SAndroid Build Coastguard Worker```gradle 81*cd0cc2e3SAndroid Build Coastguard Workerbuildscript { 82*cd0cc2e3SAndroid Build Coastguard Worker repositories { 83*cd0cc2e3SAndroid Build Coastguard Worker mavenCentral() 84*cd0cc2e3SAndroid Build Coastguard Worker } 85*cd0cc2e3SAndroid Build Coastguard Worker dependencies { 86*cd0cc2e3SAndroid Build Coastguard Worker classpath 'com.google.gradle:osdetector-gradle-plugin:1.4.0' 87*cd0cc2e3SAndroid Build Coastguard Worker } 88*cd0cc2e3SAndroid Build Coastguard Worker} 89*cd0cc2e3SAndroid Build Coastguard Worker 90*cd0cc2e3SAndroid Build Coastguard Worker// Use the osdetector-gradle-plugin 91*cd0cc2e3SAndroid Build Coastguard Workerapply plugin: "com.google.osdetector" 92*cd0cc2e3SAndroid Build Coastguard Worker 93*cd0cc2e3SAndroid Build Coastguard Workerdependencies { 94*cd0cc2e3SAndroid Build Coastguard Worker compile 'org.conscrypt:conscrypt-openjdk:2.5.2:' + osdetector.classifier 95*cd0cc2e3SAndroid Build Coastguard Worker} 96*cd0cc2e3SAndroid Build Coastguard Worker``` 97*cd0cc2e3SAndroid Build Coastguard Worker 98*cd0cc2e3SAndroid Build Coastguard Worker#### Uber JAR 99*cd0cc2e3SAndroid Build Coastguard Worker 100*cd0cc2e3SAndroid Build Coastguard WorkerFor convenience, we also publish an Uber JAR to Maven Central that contains the shared 101*cd0cc2e3SAndroid Build Coastguard Workerlibraries for all of the published platforms. While the overall size of the JAR is 102*cd0cc2e3SAndroid Build Coastguard Workerlarger than depending on a platform-specific artifact, it greatly simplifies the task of 103*cd0cc2e3SAndroid Build Coastguard Workerdependency management for most platforms. 104*cd0cc2e3SAndroid Build Coastguard Worker 105*cd0cc2e3SAndroid Build Coastguard WorkerTo depend on the uber jar, simply use the `conscrypt-openjdk-uber` artifacts. 106*cd0cc2e3SAndroid Build Coastguard Worker 107*cd0cc2e3SAndroid Build Coastguard Worker##### Maven 108*cd0cc2e3SAndroid Build Coastguard Worker```xml 109*cd0cc2e3SAndroid Build Coastguard Worker<dependency> 110*cd0cc2e3SAndroid Build Coastguard Worker <groupId>org.conscrypt</groupId> 111*cd0cc2e3SAndroid Build Coastguard Worker <artifactId>conscrypt-openjdk-uber</artifactId> 112*cd0cc2e3SAndroid Build Coastguard Worker <version>2.5.2</version> 113*cd0cc2e3SAndroid Build Coastguard Worker</dependency> 114*cd0cc2e3SAndroid Build Coastguard Worker``` 115*cd0cc2e3SAndroid Build Coastguard Worker 116*cd0cc2e3SAndroid Build Coastguard Worker##### Gradle 117*cd0cc2e3SAndroid Build Coastguard Worker```gradle 118*cd0cc2e3SAndroid Build Coastguard Workerdependencies { 119*cd0cc2e3SAndroid Build Coastguard Worker compile 'org.conscrypt:conscrypt-openjdk-uber:2.5.2' 120*cd0cc2e3SAndroid Build Coastguard Worker} 121*cd0cc2e3SAndroid Build Coastguard Worker``` 122*cd0cc2e3SAndroid Build Coastguard Worker 123*cd0cc2e3SAndroid Build Coastguard Worker### Android 124*cd0cc2e3SAndroid Build Coastguard Worker 125*cd0cc2e3SAndroid Build Coastguard WorkerThe Android AAR file contains native libraries for x86, x86_64, armeabi-v7a, and 126*cd0cc2e3SAndroid Build Coastguard Workerarm64-v8a. 127*cd0cc2e3SAndroid Build Coastguard Worker 128*cd0cc2e3SAndroid Build Coastguard Worker#### Gradle 129*cd0cc2e3SAndroid Build Coastguard Worker 130*cd0cc2e3SAndroid Build Coastguard Worker```gradle 131*cd0cc2e3SAndroid Build Coastguard Workerdependencies { 132*cd0cc2e3SAndroid Build Coastguard Worker implementation 'org.conscrypt:conscrypt-android:2.5.2' 133*cd0cc2e3SAndroid Build Coastguard Worker} 134*cd0cc2e3SAndroid Build Coastguard Worker``` 135*cd0cc2e3SAndroid Build Coastguard Worker 136*cd0cc2e3SAndroid Build Coastguard Worker 137*cd0cc2e3SAndroid Build Coastguard WorkerHow to Build 138*cd0cc2e3SAndroid Build Coastguard Worker------------ 139*cd0cc2e3SAndroid Build Coastguard Worker 140*cd0cc2e3SAndroid Build Coastguard WorkerIf you are making changes to Conscrypt, see the [building 141*cd0cc2e3SAndroid Build Coastguard Workerinstructions](BUILDING.md). 142