Conscrypt is a Java Security Provider that implements parts of the Java Cryptography Extension and Java Secure Socket Extension.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
android-stub Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
android Merge ConscryptSocketBase and AbstractConscryptSocket (#529) Aug 10, 2018
api-doclet Various build fixes from 1.0.0.RC8 release (#210) Jun 16, 2017
benchmark-android Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
benchmark-base Expanding cipher benchmarks (#338) Sep 22, 2017
benchmark-graphs Support Java 6 Runtime (#299) Aug 15, 2017
benchmark-jmh Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
common/src Fix X509_verify exceptions (#537) Sep 18, 2018
constants Support TLS 1.3 (#524) Sep 10, 2018
gradle/wrapper Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
libcore-stub Support TLS 1.3 (#524) Sep 10, 2018
licenses Fix git issue on windows/osx Jan 6, 2017
openjdk-integ-tests Fix X509_verify exceptions (#537) Sep 18, 2018
openjdk-uber Add sources to uberjar source jar. (#468) Apr 17, 2018
openjdk Support TLS 1.3 (#524) Sep 10, 2018
platform Merge ConscryptSocketBase and AbstractConscryptSocket (#529) Aug 10, 2018
release Tag release containers with release name (#528) Aug 8, 2018
testing Make TestUtils.readPublicKeyPemFile Windows-compatible (#533) Sep 10, 2018
.clang-format Restructuring conscrypt into submodules Nov 29, 2016
.gitignore Implement Caliper benchmarks for running on Android devices (#10). (#278 Aug 7, 2017
.travis.yml Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
Android.bp Update Android.bp with changes from AOSP (#536) Sep 14, 2018
BUILDING.md Update AppVeyor to use MSVC 2017 and Platform SDK 10 (#342) Sep 26, 2017
CAPABILITIES.md Support TLS 1.3 (#524) Sep 10, 2018
CONTRIBUTING.md Update basic docs (#519) Jul 12, 2018
CPPLINT.cfg Lint C++ code and fix errors (#270) Aug 2, 2017
LICENSE Preparing for move to github. Dec 12, 2016
MODULE_LICENSE_APACHE2 Add NOTICE and MODULE_LICENSE files Mar 12, 2015
NOTICE Fix git issue on windows/osx Jan 6, 2017
PREUPLOAD.cfg PREUPLOAD: Remove clang_format options Oct 26, 2016
README.md Start 1.3 development cycle (#526) Aug 4, 2018
appveyor.yml Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
build.gradle Start 1.4 development cycle (#540) Sep 19, 2018
gradlew Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
gradlew.bat Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
jarjar-rules.txt Move JSSE to new package Apr 29, 2013
settings.gradle Add client socket Android benchmark (#285) Aug 8, 2017
test_logging.properties Refactoring externalization of SSLSessions (#383) Dec 8, 2017

README.md

Conscrypt - A Java Security Provider

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.

Homepage: conscrypt.org
Mailing List: conscrypt@googlegroups.com

Download

Conscrypt supports Java 6 or later on OpenJDK and Gingerbread (API Level 9) or later on Android. The build artifacts are available on Maven Central.

Download JARs

You can download the JARs directly from the Maven repositories.

OpenJDK (i.e. non-Android)

Native Classifiers

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)

Maven

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>1.2.0</version>
  <classifier>${os.detected.classifier}</classifier>
</dependency>

Gradle

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:1.2.0:' + osdetector.classifier
}

Uber JAR

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.

Maven
<dependency>
  <groupId>org.conscrypt</groupId>
  <artifactId>conscrypt-openjdk-uber</artifactId>
  <version>1.2.0</version>
</dependency>
Gradle
dependencies {
  compile 'org.conscrypt:conscrypt-openjdk-uber:1.2.0'
}

Android

The Android AAR file contains native libraries for x86, x86_64, armeabi-v7a, and arm64-v8a.

Gradle

dependencies {
  compile 'org.conscrypt:conscrypt-android:1.2.0'
}

How to Build

If you are making changes to Conscrypt, see the building instructions.