OpenSSL Jostle
Java cryptography provider for OpenSSL
From Wikipedia, the free encyclopedia
OpenSSL Jostle (commonly referred to as Jostle) is a cryptographic software project that provides a Java Cryptography Architecture (JCA) and Java Cryptography Extension (JCE) provider backed by the native OpenSSL cryptographic library.[1]
| OpenSSL Jostle | |
|---|---|
| Developers | OpenSSL Project; Legion of the Bouncy Castle |
| Written in | Java, C |
| Operating system | Cross-platform |
| Platform | Java Virtual Machine |
| Type | Cryptography library |
| Website | https://openssl-jostle.org |
The project enables Java applications to access cryptographic algorithms implemented in OpenSSL through the standard Java security provider framework. It is developed as a collaboration between the OpenSSL community and members of the Bouncy Castle cryptography project.[2]
Jostle aims to simplify integration between the OpenSSL native cryptographic library and Java applications while maintaining compatibility with the standard Java Cryptography Architecture APIs.
Overview
OpenSSL Jostle allows Java applications to use the OpenSSL cryptographic library through the Java security provider interface.[1] The provider exposes OpenSSL implementations of cryptographic algorithms and operations through standard Java APIs such as JCA and JCE.
OpenSSL is widely used across many operating systems and applications for implementing protocols such as Transport Layer Security (TLS) and for performing cryptographic operations including encryption, hashing, and digital signatures.[3]
By acting as a Java security provider, Jostle allows applications to leverage OpenSSL implementations while continuing to use the standard Java security framework.
Architecture
The architecture of OpenSSL Jostle consists of a Java security provider implementation that interfaces with the OpenSSL library using native interoperability mechanisms.
Key architectural components include:
- A Java provider compatible with the Java Cryptography Architecture
- Native bindings that invoke functions from the OpenSSL library
- Support for native integration through Java Native Interface (JNI) and Foreign Function Interface (FFI)
- Configuration mechanisms for managing native libraries and deployment environments[1]
This design allows applications to switch cryptographic providers without significant changes to application code.
Features
Major features of OpenSSL Jostle include:
- Integration of OpenSSL cryptographic algorithms with the Java security provider framework
- Compatibility with JCA and JCE APIs
- Support for both JNI-based and FFI-based native integration
- Flexible configuration for native library loading and deployment
- Packaging as a Java archive (JAR) that can be installed as a Java security provider[1]
The project aims to provide Java developers with access to OpenSSL's widely deployed cryptographic implementations while maintaining compatibility with existing Java security infrastructure.
Development
OpenSSL Jostle is developed as part of the broader OpenSSL ecosystem of projects. Development involves collaboration between contributors from the OpenSSL project and the Bouncy Castle cryptography community.[2]
The source code and development resources are hosted in public repositories associated with OpenSSL community projects.
Usage
In a typical deployment, OpenSSL Jostle is added as a security provider in the Java runtime environment. Once installed, Java applications can request cryptographic services such as encryption, key generation, and digital signatures using standard APIs.
The provider then delegates these operations to the underlying OpenSSL implementations.