wolfSSL JNI (Wrapper)
For Java developers that want to leverage the industry-leading wolfSSL SSL/TLS implementation for secure communication, wolfSSL JNI provides an interface to give Java applications support for the current SSL/TLS standards up to TLS 1.3 and DTLS 1.2.
wolfSSL JNI, backed by wolfSSL, provides current industry protocol standards, offers progressive ciphers, and gives applications flexibility over controlling their secure connection.
Existing Java implementations lack support for DTLS. wolfSSL JNI provides full DTLS 1.0 and 1.2 support.
- Up to TLS 1.3 and DTLS 1.2
- Full client and server support
- Progressive list of supported ciphers
- Key and Certificate generation
- OCSP, CRL support
- Support Available
- Several callbacks make integration into existing applications easy
- Gives applications complete control over secure communication
- Eliminates need to write custom JNI
- Based on industry-leading wolfSSL
- Includes support for Android NDK
Platform and Language Support
wolfSSL 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.
wolfSSL supports the C programming language as a primary interface. It also supports several other host languages, including Java, PHP, Perl, and Python (through a swig interface). If you have interest in using wolfSSL in another programming language that it does not currently supported, please contact us.
Hardware encryption and acceleration
In addition, wolfSSL also supports hardware cryptography and acceleration on some platforms. To see a list of supported platforms, please see our hardware cryptography support page.
Support packages for wolfSSL 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.
If you would like more detailed information about RAM usage, please contact us for the wolfSSL Resource Use document.
LeanPSK - wolfSSL recently implemented a set of build options for wolfSSL which enable the library to be built in as little as 20kB! This build configuration requires the use of pre-shared keys (PSK). Contact us for more details about this build.
wolfSSL Training Course
Interested in getting trained by security experts on subjects related to wolfSSL and SSL/TLS? Learn more.
- SSL version 3.0 and TLS versions 1.0, 1.1, 1.2, and 1.3 (client and server)
- DTLS 1.0, 1.2 support (client and server)
- Minimum footprint size of 20-100 kB, depending on build options and operating environment
- Runtime memory usage between 1-36 kB (depending on I/O buffer sizes, public key algorithm, and key size)
- OpenSSL compatibility layer
- OCSP and CRL support
- Multiple Hashing Functions: MD2, MD4, MD5, SHA-1, SHA-2, SHA-256, SHA-384, SHA-512, RIPEMD-160
- Block, Stream, and Authenticated Ciphers: AES (CBC, CTR, GCM, CCM), Camellia, DES, 3DES, ARC4, RABBIT, HC-128
- Public Key Options: RSA, DSS, DH, EDH, NTRU
- Password-based Key Derivation: HMAC, PBKDF2, PKCS#5
- ECC Support: ECDH-ECDSA, ECDHE-ECDSA, ECDH-RSA, ECDHE-RSA
- RSA Key Generation
- Client authentication support
- PSK Pre-Shared Keys
- Simple API
- Persistent session and certificate cache
- zlib compression support
- Interchangeable crypto and certificate libraries
- PEM and DER certificate support
- x509 v3 Signed Certificate Generation
- SNI (Server Name Indication) support
- Certificate Manager
- Intel AES-NI support
- STM32F2/F4 hardware crypto support
- Cavium NITROX support
- SSL Sniffer (SSL Inspection) Support
- IPv4 and IPv6 support
- Abstraction Layers / User Callbacks: C Standard Library, Custom I/O, Memory hooks, Logging callbacks, User Atomic Record Layer Processing, Public Key
- yaSSL Embedded Web Server support (see yaSSL EWS)
- MySQL integration
- Lighttpd, GoAhead, Mongoose web server support
- stunnel integration
- PKCS#5 (Password-Based Encryption Standard)
- PKCS#8 (Private-Key Information Syntax Standard)
- PKCS#12 (Personal Information Exchange Syntax Standard)
Supported Operating Environments
- 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.