wolfCrypt JNI and JCE Provider
For Java developers that want to leverage the industry-leading wolfCrypt cryptography library implementation, wolfCrypt JNI provides a Java interface to the native C library.
wolfCrypt JNI includes both a thin JNI wrapper around the wolfCrypt C library, as well as a higher-level wolfCrypt JCE provider.
Get the latest open source GPLv2 version now!
Release Date: 11/14/2022
- Industry-leading native crypto
- Java JNI wrapper
- Java JCE Provider
- Tested against multiple JDK implementations
- Allows applications to have control over their crypto
- Gain portability of native wolfSSL and wolfCrypt libraries
- Eliminates need to write custom JNI
- Based on industry-leading wolfSSL
Platform and Language Support
The native wolfSSL library is built for maximum portability and is generally very easy to compile on new platforms. If your desired platform is not listed under the supported operating environments, please contact us.
Support packages for wolfSSL and wolfCrypt JNI/JCE are available on an annual basis directly from wolfSSL. With three different package options, you can compare them side-by-side and choose the package that best fits your specific needs. Please see our Support Packages page for more details or contact us with any questions.
wolfCrypt JNI and JCE have been tested against multiple JDK implementations including Oracle JDK, OpenJDK, and Android’s JDK implementation.
Ships with Signed JAR Files
Oracle JDK requires JCE providers to be signed. This signed JAR is then authenticated at runtime. wolfCrypt JNI includes JAR files that have been pre-signed by wolfSSL to get you up and running quickly!
Do you need FIPS 140-2? The wolfCrypt JNI and JCE Provider can sit on top of the FIPS 140-2 validated wolfCrypt library. Learn more about our FIPS 140-2 validation!
wolfCrypt JNI currently includes a subset of algorithm functionality found in the native wolfCrypt C library. If you are interested in an algorithm not currently supported in the JNI/JCE wrapper, let us know at firstname.lastname@example.org.
wolfSSL Training Course
Interested in getting trained by security experts on subjects related to wolfSSL and SSL/TLS? Learn more.
JNI Wrapper Features
- Hash Functions: MD5, SHA-1, SHA-256, SHA-384, SHA-512
- Block Ciphers: AES (CBC), 3DES
- Public Key Options: RSA, ECDSA
- HMAC MD5, SHA-1, SHA-256, SHA-384, SHA-512, Blake2b
- Key Agreement: DH, ECDH
- RSA and ECC Key Generation
- Hardware Cryptography Support: Intel AES-NI, AVX1/2, RDRAND, RDSEED, SGX, Cavium NITROX, Intel QuickAssist, STM32F2/F4, Freescale/NXP (CAU, mmCAU, SEC, LTC), Microchip PIC32MZ, ARMv8
JCE Provider Features
- java.security.MessageDigest: MD5, SHA-1, SHA-256, SHA-384, SHA-512
- java.security.SecureRandom: HashDRBG
- javax.crypto.Cipher: AES/CBC/NoPadding, DESede/CBC/NoPadding, RSA/ECB/PKCS1Padding
- javax.crypto.Mac: HmacMD5, HmacSHA1, HmacSHA256, HmacSHA384, HmacSHA512
- java.security.Signature: MD5withRSA, SHA1withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA, SHA1withECDSA, SHA256withECDSA, SHA384withECDSA, SHA512withECDSA
- javax.crypto.KeyAgreement: DiffieHellman, DH, ECDH
- java.security.KeyPairGenerator: EC, DH
Supported Chipmakers (wolfCrypt)
- wolfSSL has support for chipsets including ARM, Intel, Motorola, mbed, NXP/Freescale, Microchip (PIC32)/Atmel, ST (STM32F2/F4), Analog Devices, Texas Instruments, and more
- If you would like to use or test wolfSSL on another chipset, let us know and we’ll be happy to support you.
Supported Operating Environments (wolfCrypt)
- Win32/64, Linux, Mac OS X, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii and Gamecube through DevKitPro, QNX, MontaVista, OpenCL, NonStop, TRON/ITRON/µITRON, Micrium's µC/OS, FreeRTOS, SafeRTOS, Freescale MQX, Nucleus, TinyOS, HP/UX, ARC MQX, TI-RTOS
- If you would like to test wolfSSL on another environment, let us know and we’ll be happy to support you.
Licensing and Ordering:
wolfCrypt JNI/JCE are dual licensed under both the GPLv2 and commercial licensing. For more information, please see the following links.