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