blob: c63c5edd4064a37f07888f9a09e55cbd6f5c8c4b [file] [log] [blame] [view]
nmittler7ec6fc72016-12-12 10:18:12 -08001Conscrypt - A Java Security Provider
2========================================
3
Adam Vartanian17033632018-07-12 19:52:28 +01004Conscrypt is a Java Security Provider (JSP) that implements parts of the Java
5Cryptography Extension (JCE) and Java Secure Socket Extension (JSSE). It uses
6BoringSSL to provide cryptographic primitives and Transport Layer Security (TLS)
7for Java applications on Android and OpenJDK. See [the capabilities
8documentation](CAPABILITIES.md) for detailed information on what is provided.
nmittler7ec6fc72016-12-12 10:18:12 -08009
nmittler243143a2016-12-14 09:34:57 -080010The core SSL engine has borrowed liberally from the [Netty](http://netty.io/) project and their
11work on [netty-tcnative](http://netty.io/wiki/forked-tomcat-native.html), giving `Conscrypt`
12similar performance.
nmittler7ec6fc72016-12-12 10:18:12 -080013
14<table>
15 <tr>
16 <td><b>Homepage:</b></td>
nmittler243143a2016-12-14 09:34:57 -080017 <td>
18 <a href="https://conscrypt.org/">conscrypt.org</a>
19 </td>
nmittler7ec6fc72016-12-12 10:18:12 -080020 </tr>
21 <tr>
22 <td><b>Mailing List:</b></td>
nmittler243143a2016-12-14 09:34:57 -080023 <td>
24 <a href="https://groups.google.com/forum/#!forum/conscrypt">conscrypt@googlegroups.com</a>
25 </td>
nmittler7ec6fc72016-12-12 10:18:12 -080026 </tr>
27</table>
28
29Download
30-------------
Adam Vartanian44810882019-01-10 10:33:56 +000031Conscrypt supports **Java 7** or later on OpenJDK and **Gingerbread (API Level
Adam Vartanian17033632018-07-12 19:52:28 +0100329)** or later on Android. The build artifacts are available on Maven Central.
nmittler7ec6fc72016-12-12 10:18:12 -080033
Adam Vartanian17033632018-07-12 19:52:28 +010034### Download JARs
nmittler243143a2016-12-14 09:34:57 -080035You can download
Adam Vartanianc9976f62017-12-06 13:42:54 +000036[the JARs](http://search.maven.org/#search%7Cga%7C1%7Cg:%22org.conscrypt%22)
nmittler243143a2016-12-14 09:34:57 -080037directly from the Maven repositories.
nmittler7ec6fc72016-12-12 10:18:12 -080038
Adam Vartanian17033632018-07-12 19:52:28 +010039### OpenJDK (i.e. non-Android)
nmittler7ec6fc72016-12-12 10:18:12 -080040
Adam Vartanian17033632018-07-12 19:52:28 +010041#### Native Classifiers
Nathan Mittlera0710a72017-02-21 16:05:34 -080042
Tiago Morais Morgadof2b7ce12017-06-29 15:32:34 +010043The OpenJDK artifacts are platform-dependent since each embeds a native library for a particular
Nathan Mittlera0710a72017-02-21 16:05:34 -080044platform. We publish artifacts to Maven Central for the following platforms:
45
Nathan Mittler42ef2ea2018-02-08 02:14:29 -080046Classifier | OS | Architecture
47-----------| ------- | ---------------- |
48linux-x86_64 | Linux | x86_64 (64-bit)
49osx-x86_64 | Mac | x86_64 (64-bit)
50windows-x86 | Windows | x86 (32-bit)
51windows-x86_64 | Windows | x86_64 (64-bit)
Nathan Mittlera0710a72017-02-21 16:05:34 -080052
Adam Vartanian17033632018-07-12 19:52:28 +010053#### Maven
Nathan Mittlera0710a72017-02-21 16:05:34 -080054
nmittler7ec6fc72016-12-12 10:18:12 -080055Use the [os-maven-plugin](https://github.com/trustin/os-maven-plugin) to add the dependency:
56
Nathan Mittlera0710a72017-02-21 16:05:34 -080057```xml
nmittler7ec6fc72016-12-12 10:18:12 -080058<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>
Pete Bentley10637be2021-02-18 08:28:13 +000071 <version>2.5.2</version>
nmittler7ec6fc72016-12-12 10:18:12 -080072 <classifier>${os.detected.classifier}</classifier>
73</dependency>
74```
75
Adam Vartanian17033632018-07-12 19:52:28 +010076#### Gradle
nmittler243143a2016-12-14 09:34:57 -080077Use 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:
nmittler7ec6fc72016-12-12 10:18:12 -080079
80```gradle
81buildscript {
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
91apply plugin: "com.google.osdetector"
92
93dependencies {
Pete Bentley10637be2021-02-18 08:28:13 +000094 compile 'org.conscrypt:conscrypt-openjdk:2.5.2:' + osdetector.classifier
nmittler7ec6fc72016-12-12 10:18:12 -080095}
96```
97
Adam Vartanian17033632018-07-12 19:52:28 +010098#### Uber JAR
nmittler7ec6fc72016-12-12 10:18:12 -080099
Nathan Mittlera0710a72017-02-21 16:05:34 -0800100For convenience, we also publish an Uber JAR to Maven Central that contains the shared
101libraries for all of the published platforms. While the overall size of the JAR is
102larger than depending on a platform-specific artifact, it greatly simplifies the task of
103dependency management for most platforms.
104
105To depend on the uber jar, simply use the `conscrypt-openjdk-uber` artifacts.
106
Adam Vartanian17033632018-07-12 19:52:28 +0100107##### Maven
Nathan Mittlera0710a72017-02-21 16:05:34 -0800108```xml
109<dependency>
110 <groupId>org.conscrypt</groupId>
111 <artifactId>conscrypt-openjdk-uber</artifactId>
Pete Bentley10637be2021-02-18 08:28:13 +0000112 <version>2.5.2</version>
Nathan Mittlera0710a72017-02-21 16:05:34 -0800113</dependency>
114```
115
Adam Vartanian17033632018-07-12 19:52:28 +0100116##### Gradle
Nathan Mittlera0710a72017-02-21 16:05:34 -0800117```gradle
118dependencies {
Pete Bentley10637be2021-02-18 08:28:13 +0000119 compile 'org.conscrypt:conscrypt-openjdk-uber:2.5.2'
Nathan Mittlera0710a72017-02-21 16:05:34 -0800120}
121```
122
Adam Vartanian17033632018-07-12 19:52:28 +0100123### Android
124
125The Android AAR file contains native libraries for x86, x86_64, armeabi-v7a, and
126arm64-v8a.
127
128#### Gradle
129
130```gradle
131dependencies {
Pete Bentley10637be2021-02-18 08:28:13 +0000132 implementation 'org.conscrypt:conscrypt-android:2.5.2'
Adam Vartanian17033632018-07-12 19:52:28 +0100133}
134```
135
nmittler7ec6fc72016-12-12 10:18:12 -0800136
137How to Build
138------------
139
140If you are making changes to Conscrypt, see the [building
141instructions](BUILDING.md).