Skip to content
Conscrypt is a Java Security Provider that implements parts of the Java Cryptography Extension and Java Secure Socket Extension.
Java C++ C Python Shell Dockerfile
Branch: master
Clone or download
prbprbprb Merge pull request #729 from flooey/fixtest
Restore BC provider return from getNonConscryptTlsProvider
Latest commit 7b563b8 Sep 27, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
android-stub Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
android Add server certificate SNI support (#712) Sep 17, 2019
api-doclet Remove @hide annotations (#631) Mar 1, 2019
benchmark-android Update Android benchmarks (#614) Jan 21, 2019
benchmark-base Add TLS 1.3 benchmarks (#543) Sep 25, 2018
benchmark-graphs Support Java 6 Runtime (#299) Aug 15, 2017
benchmark-jmh Add TLS 1.3 benchmarks (#543) Sep 25, 2018
common/src Move openjdk-integ-tests to common (#720) Sep 24, 2019
constants Some minor build optimizations (#637) Mar 18, 2019
gradle/wrapper Upgrade wrapper to Gradle 4.8.1 (#506) Jul 3, 2018
libcore-stub Remove @hide annotations (#631) Mar 1, 2019
licenses Fix git issue on windows/osx Jan 6, 2017
openjdk-uber Add OSGi headers to jar manifests (#710) Sep 4, 2019
openjdk Readd jacoco plugin and make coverage work (#728) Sep 27, 2019
platform Add serverNamePermitted() for Android Platform version of Platform.java Sep 26, 2019
release Add docker attach command to instructions (#626) Feb 13, 2019
testing Restore BC provider return from getNonConscryptTlsProvider Sep 27, 2019
.clang-format Restructuring conscrypt into submodules Nov 29, 2016
.gitignore Implement Caliper benchmarks for running on Android devices (#10). (#278 Aug 7, 2017
.lgtm.yml Create lgtm.com configuration file (#705) Aug 19, 2019
.travis.yml Run tests on Java 11 as well as 7 and 8 (#668) Jul 18, 2019
BUILDING.md Readd jacoco plugin and make coverage work (#728) Sep 27, 2019
CAPABILITIES.md Update docs for EC curves (#683) Jul 17, 2019
CONTRIBUTING.md Update basic docs (#519) Jul 12, 2018
CPPLINT.cfg Lint C++ code and fix errors (#270) Aug 2, 2017
IMPLEMENTATION_NOTES.md Add implementation notes Apr 16, 2019
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 Update files for 2.2.1 release (#701) Aug 8, 2019
appveyor.yml Move openjdk-integ-tests to common (#720) Sep 24, 2019
build.gradle Readd jacoco plugin and make coverage work (#728) Sep 27, 2019
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
settings.gradle Move openjdk-integ-tests to common (#720) Sep 24, 2019
test_logging.properties Minor cleanup (#688) Jul 29, 2019

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 7 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>2.2.1</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:2.2.1:' + 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>2.2.1</version>
</dependency>
Gradle
dependencies {
  compile 'org.conscrypt:conscrypt-openjdk-uber:2.2.1'
}

Android

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

Gradle

dependencies {
  implementation 'org.conscrypt:conscrypt-android:2.2.1'
}

How to Build

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

You can’t perform that action at this time.