186 lines
7.7 KiB
Plaintext
186 lines
7.7 KiB
Plaintext
|
|
wolfSSL JSSE Provider and JNI Wrapper
|
|
|
|
This package provides both a wolfSSL Java JSSE provider (wolfJSSE), and a thin
|
|
JNI-based interface to the native wolfSSL embedded SSL/TLS library. These
|
|
provide Java applications with SSL/TLS support up to the current TLS 1.3
|
|
protocol standard.
|
|
|
|
Note 1)
|
|
The java.sh script uses a common location for the Java install location.
|
|
If your Java install location is different, this could lead to an error
|
|
when running java.sh. In this case, you should modify java.sh to match
|
|
your environment.
|
|
|
|
Build options are :
|
|
- ant build (only builds the jar necessary for an app to use)
|
|
- ant test (builds the jar and tests then runs the tests, requires JUNIT setup)
|
|
- ant examples (builds the jar and example cases)
|
|
- ant clean (cleans all Java artifacts)
|
|
- ant cleanjni (cleans native artifacts)
|
|
|
|
|
|
Why use wolfSSL JSSE?
|
|
|
|
This interface gives Java applications access to all the benefits of using
|
|
wolfSSL, including current SSL/TLS standards up to TLS 1.3, FIPS 140-2 support,
|
|
performance optimizations, hardware cryptography support, commercial support,
|
|
and more!
|
|
|
|
|
|
wolfSSL JNI Release 1.7.0 (01/15/2021)
|
|
|
|
Release 1.7.0 has bug fixes and new features including:
|
|
|
|
- Fixes for Infer analysis warnings
|
|
- Throw exception in DEFAULT_Context creation if engineInit() fails
|
|
- Defer creating DEFAULT WolfSSLContext until first use
|
|
- Check if Socket is open before doing TLS shutdown in WolfSSLSocket.close()
|
|
- Only load X509TrustStore issuers when needed by native wolfSSL verification
|
|
- Fix compiler warnings when used with older versions of native wolfSSL
|
|
- Verify and load intermediate CA certs in WolfSSLTrustX509.certManagerVerify()
|
|
- Add support for setSoTimeout() in WolfSSLSocket
|
|
- Fix suites length check in WolfSSLEngineHelper.setLocalCiphers()
|
|
- Check for connection closed before completing handshake in SSLSocket.read/write
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.6.0 (08/26/2020)
|
|
|
|
Release 1.6.0 has bug fixes and new features including:
|
|
|
|
- Support for custom TrustManager checkClientTrusted(), checkServerTrusted()
|
|
- wolfJSSE TrustManager registered as PKIX provider
|
|
- Improved support for auto-loading system CA certificates
|
|
- Improved Android TrustManager support
|
|
- Use AndroidCAStore KeyStore when available on Android
|
|
- Support for X509Certificate.getSubjectAlternativeNames()
|
|
- Fix for native memory leak in JSSE WolfSSLTrustX509
|
|
- Optimization of WolfSSLTrustX509 to hold less memory at idle
|
|
- Addition of missing finalize() methods in some JSSE classes
|
|
- Casts to uintptr_t instead of intptr_t at native JNI level
|
|
- Conversion to use GetByteArrayElements for potential memory use savings
|
|
- Consistently use wolfCrypt XMALLOC/XFREE for native memory allocation
|
|
- Use javah in build.xml for older ant/Java versions without nativeheaderdir
|
|
- Add JSSE debug logging for native wolfSSL with wolfssl.debug system parameter
|
|
- Add more JSSE-level debug messages for easier troubleshooting
|
|
- Add internal implementation of SSLParameters, WolfSSLParameters
|
|
- Add client-side SNI support
|
|
- Fix warnings when DH is disabled (--disable-dh)
|
|
- Add Java thread ID to JSSE debug log messages for easier multithreaded debug
|
|
- Improve handshake synchronization in WolfSSLSocket for multi-threaded apps
|
|
- Add support for jsse.enableSNIExtension system property
|
|
- Add client-side session ticket support
|
|
- Add support for jdk.tls.client.enableSessionTicketExtension system property
|
|
- Enable session ticket and session cert support by default on Android AOSP
|
|
- Fixes compatibility with OkHttp on Android
|
|
- Add support for non-blocking socket operations in WolfSSLSession/Socket
|
|
- Moves I/O mutex locking to native level for more efficient locking
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.5.0 (01/17/2020)
|
|
|
|
Release 1.5.0 has bug fixes and new features including:
|
|
|
|
- New JSSE provider (wolfJSSE) including TLS 1.3 support!
|
|
- Add JSSE debug logging with wolfjsse.debug system parameter
|
|
- Add JSSE install script and helper files for Android AOSP
|
|
- Add JSSE example apps (examples/provider)
|
|
- Add JNI wrappers to detect if native features/protocols are compiled in
|
|
- Add JNI wrapper for PKCS#8 offset getter
|
|
- Add JNI wrapper for wolfSSL_get_ciphers_iana()
|
|
- Update build.xml to use nativeheaderdir instead of javah target
|
|
- Update tests to use junit-4.13 / hamcrest-all-1.3
|
|
- Update to build, now ant build does not build and run tests / examples
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.4.0 (11/16/2018)
|
|
|
|
Release 1.4.0 has bug fixes and new features including:
|
|
|
|
- Better support for conditional native wolfSSL feature dependencies
|
|
- Adds methods for checking if native features are enabled
|
|
- Optional method for loading native JNI library from a specific path
|
|
- TLS 1.0 functions are compiled out unless WOLFSSL_ALLOW_TLSV10 is defined
|
|
- Wrapper for native wolfCrypt ECC shared secret public key callback
|
|
- Allow other HmacSHA* hash types to be used in Atomic User callback examples
|
|
- Error string buffer size set to use WOLFSSL_MAX_ERROR_SZ
|
|
- Fix for RSA doSign() output length
|
|
- Fix for I/O, Atomic User, and Public Key callback registration in examples
|
|
- Updated example key and certificate files
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.3.0 (12/04/2015)
|
|
|
|
Release 1.3.0 has bug fixes and new features including:
|
|
|
|
- Updated support to wolfSSL 3.7.0
|
|
- Added finalizers for WolfSSLContext and WolfSSLSession classes
|
|
- Fix for SSLv3 now disabled by default in wolfSSL proper
|
|
- SSLv3 now marked as @Deprecated
|
|
- PSK (pre-shared key) support for client and server
|
|
- Better error checking and exception handling
|
|
- New WolfSSLJNIException class
|
|
- WolfSSLSession now cached in native WOLFSSL struct for callbacks
|
|
- Easier inclusion of junit4 in build.xml
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.2.0 (06/02/2015)
|
|
|
|
Release 1.2.0 has bug fixes and new features including:
|
|
|
|
- Updated support for wolfSSL 3.4.6 and CyaSSL to wolfSSL name change
|
|
- Benchmark functionality in example client
|
|
- Updated example certificates
|
|
- Better detection of Java home on Mac and Linux
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.1.0 (10/25/2013)
|
|
|
|
Release 1.1.0 has bug fixes and new features including:
|
|
|
|
- Updated support for CyaSSL 2.9.4
|
|
- Updated example certificates and CRLs
|
|
- Now expects user to have JUnit JARs pre-installed on dev platform
|
|
- Updated unit tests, JUnit4 style
|
|
- Android support
|
|
- CRL monitor now optional in server mode
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|
|
|
|
************ wolfSSL JNI Release 1.0.0 (10/25/2013)
|
|
|
|
Release 1.0.0 is the first public release of wolfSSL JNI, the Java wrapper for
|
|
the CyaSSL embedded SSL library.
|
|
|
|
The wolfSSL JNI Manual is available at:
|
|
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
|
|
instructions and more detailed comments, please check the manual.
|
|
|