@@ -26,7 +26,7 @@ and more!
2626## User Manual
2727
2828The wolfSSL JNI/JSSE Manual is available on the wolfSSL website:
29- [ wolfSSL JNI Manual] ( https://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf ) .
29+ [ wolfSSL JNI Manual] ( https://www.wolfssl.com/documentation/manuals/wolfssljni/ ) .
3030
3131For additional build instructions and more detailed comments, please reference
3232the manual.
@@ -186,7 +186,7 @@ an application can include this as a dependency in the application's
186186 <dependency>
187187 <groupId>com.wolfssl</groupId>
188188 <artifactId>wolfssl-jsse</artifactId>
189- <version>1.12 .0-SNAPSHOT</version>
189+ <version>1.13 .0-SNAPSHOT</version>
190190 </dependency>
191191 </dependencies>
192192 ...
@@ -303,9 +303,9 @@ wolfJSSE extends or implements the following JSSE classes:
303303- javax.net.ssl.TrustManagerFactorySpi
304304 - PKIX, X509, SunX509
305305- javax.net.ssl.SSLEngine
306- - javax.net.ssl.SSLSession
307- - javax.net.ssl.X509KeyManager
308- - javax.net.ssl.X509TrustManager
306+ - javax.net.ssl.SSLSession / ExtendedSSLSession
307+ - javax.net.ssl.X509KeyManager / X509ExtendedKeyManager
308+ - javax.net.ssl.X509TrustManager / X509ExtendedTrustManager
309309- javax.net.ssl.SSLServerSocket
310310- javax.net.ssl.SSLServerSocketFactory
311311- javax.net.ssl.SSLSocket
@@ -329,292 +329,7 @@ Or by defining `-DHAVE_SECURE_RENEGOTIATION`.
329329
330330## Release Notes
331331
332- ### wolfSSL JNI Release 1.12.0 (03/31/2023)
333-
334- Release 1.12.0 has bug fixes and new features including:
335-
336- ** JNI and JSSE Changes:**
337- * Additional synchronization support in WolfSSLCertificate (PR 118)
338- * Prevent WolfSSLCertificate from freeing ` WOLFSSL_X509 ` if not owned (PR 118)
339- * Fix ` X509KeyManager.getCertificateChain() ` to return ` null ` when alias is ` null ` (PR 119)
340-
341- ** Documentation Changes:**
342- * Add Android Studio instructions for how to update source symlinks on Windows (PR 117)
343-
344- The wolfSSL JNI Manual is available at:
345- https://www.wolfssl.com/documentation/manuals/wolfssljni . For build
346- instructions and more detailed comments, please check the manual.
347-
348- ### wolfSSL JNI Release 1.11.0 (12/2/2022)
349-
350- Release 1.11.0 has bug fixes and new features including:
351-
352- ** JNI and JSSE Changes:**
353- * Add support for system properties: keyStore, keyStoreType, keyStorePassword (PR 74)
354- * Add support for secure renegotiation if available in native wolfSSL (PR 75)
355- * Fix compilation against newer wolfSSL versions that have dtls.c (PR 107)
356- * Fixes and cleanup to SSLEngine implementation (PR 108)
357- * Fixes for SSLEngine synchronization issues (PR 108)
358- * Add non-standard X509TrustManager.checkServerTrusted() for use on Android (PR 109)
359- * Add RPM packaging support (PR 110)
360- * Fix SSLSocketFactory.createSocket() to allow for null host (PR 111)
361- * Remove @Override on SSLEngine.getHandshakeSession() for older Java versions (PR 114)
362-
363- The wolfSSL JNI Manual is available at:
364- https://www.wolfssl.com/documentation/manuals/wolfssljni . For build
365- instructions and more detailed comments, please check the manual.
366-
367- ### wolfSSL JNI Release 1.10.0 (8/11/2022)
368-
369- Release 1.10.0 has bug fixes and new features including:
370-
371- ** JNI and JSSE Changes:**
372- * Add SSLEngine.getApplicationProtocol(), fixes Undertow compatibility (PR 84)
373- * Wrap wolfSSL\_ UseALPN() at JNI level (PR 84)
374- * Fix compile error for wolfSSL < 4.2.0 and wolfSSL\_ set\_ alpn\_ protos() (PR 84)
375- * Fix NullPointerException when no selected ALPN is available (PR 84)
376- * Fix JNI build when wolfSSL compiled with --disable-filesystem (PR 104)
377- * Fix SSLEngine compatibility with data larger than TLS record size (PR 105)
378- * Refactor SSLEngine handshake status to be more inline with SunJSSE (PR 105)
379- * Add verbose SSLEngine logging with "wolfsslengine.debug" property (PR 105)
380-
381- ** Documentation Changes**
382- * Fix missing Javadoc warnings in ALPN code
383-
384- ** Example Changes:**
385- * Update Android Studio IDE project to use Android 11 (SDK 30)
386-
387- The wolfSSL JNI Manual is available at:
388- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
389- instructions and more detailed comments, please check the manual.
390-
391- ### wolfSSL JNI Release 1.9.0 (5/5/2022)
392-
393- Release 1.9.0 has bug fixes and new features including:
394-
395- ** JNI and JSSE Changes:**
396- * Add synchronization to class cleanup/free routines (PR 78)
397- * Fix JNI native casting to use utintptr\_ t instead of intptr\_ t (PR 79)
398- * Add support for newer Java versions (ex: Java 17) (PR 90)
399- * Remove HC-128 support (PR 94). Native wolfSSL removed with
400- [ PR #4767 ] ( https://github.com/wolfSSL/wolfssl/pull/4767 )
401- * Remove RABBIT support (PR 96). Native wolfSSL removed with
402- [ PR #4774 ] ( https://github.com/wolfSSL/wolfssl/pull/4767 )
403- * Remove IDEA support (PR 97). Native wolfSSL removed in
404- [ PR #4806 ] ( https://github.com/wolfSSL/wolfssl/pull/4806 ) .
405- * Fix typecasting issues and cleanup for native argument checking (PR 98, 99)
406- * Add Socket timeout support for native SSL\_ connect/write() (PR 95)
407- * SSLSocket.getSession() now tries to do TLS handshake if not completed (PR 76)
408- * Fix shutdown/close\_ notify alert handling in WolfSSLEngine (PR 83)
409- * Fix WolfSSLSocket to test if close() called before object init (PR 88)
410- * Add support for loading default system CA certs on Java 9+ (PR 89)
411- * Fix timeout behavior with WolfSSLSession.connect() (PR 100)
412-
413- ** Example Changes:**
414- * Print wolfJSSE provider info in JSSE ProviderTest (PR 77)
415- * Add option to ClientJSSE to do one session resumption (PR 80)
416- * Update example certificates and keys (PR 81)
417-
418- ** Documentation Changes:**
419- * Add missing Javadocs, fix warnings on newer Java versions (PR 92)
420-
421- ** Testing Changes:**
422- * Update junit dependency to 4.13.2 (PR 91)
423-
424- The wolfSSL JNI Manual is available at:
425- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
426- instructions and more detailed comments, please check the manual.
427-
428- ### wolfSSL JNI Release 1.8.0 (11/12/2021)
429-
430- Release 1.8.0 has bug fixes and new features including:
431-
432- * wolfCrypt FIPS 140-3 and FIPS Ready compatibility
433- * Add Socket method wrappers, fixes behavior when inner Socket used with JSSE
434- * Add wrappers to get FIPS verifyCore hash (FIPS error cb or directly)
435- * Fix potential NullPointerException with several clone() methods
436- * Refactor of SSLSessionContext implementation
437- * Fix behavior of WolfSSLSocket.getSoTimeout() when external Socket is wrapped
438- * Fix timeout used in socketSelect to correctly handle fractional sec timeouts
439- * Fix memory leak when custom X509TrustManager is used with wolfJSSE
440- * Add support for multiple X509TrustManager objects across multiple sessions
441- * Call WolfSSL.cleanup() in finalizer to release library resources earlier
442- * Release native WOLFSSL memory sooner, when WolfSSLSocket is closed
443- * Better management and freeing of native WolfSSLCertificate memory
444- * Release native logging callback when library is freed
445- * Release native wolfCrypt FIPS callback when library is freed
446- * Release CTX-level Java verify callback when CTX is freed
447- * Release CTX-level Java CRL callback when CTX is freed
448- * Better global reference cleanup in error conditions
449- * Fix unused variable warnings in non-FIPS builds
450- * Use one static WolfSSL object across all WolfSSLProvider objects
451- * Release local JNI array inside WolfSSLSession.read() on function exit
452- * Add multi-threaded JSSE provider client and server examples
453- * Update Android AOSP install script to create missing blank files if needed
454- * Update Android AOSP build fies to define ` SIZEOF_LONG ` and ` SIZEOF_LONG_LONG `
455- * Update IDE/Android example Android Studio project
456- * Fix default cipher suite list order used in JSSE WolfSSLContext objects
457- * Fix FIPS Ready compatibility with ` WC_RNG_SEED_CB `
458- * Update Android AOSP Android.mk to compile wolfCrypt kdf.c
459-
460- The wolfSSL JNI Manual is available at:
461- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
462- instructions and more detailed comments, please check the manual.
463-
464- ### wolfSSL JNI Release 1.7.0 (01/15/2021)
465-
466- Release 1.7.0 has bug fixes and new features including:
467-
468- * Fixes for Infer analysis warnings
469- * Throw exception in DEFAULT\_ Context creation if engineInit() fails
470- * Defer creating DEFAULT WolfSSLContext until first use
471- * Check if Socket is open before doing TLS shutdown in WolfSSLSocket.close()
472- * Only load X509TrustStore issuers when needed by native wolfSSL verification
473- * Fix compiler warnings when used with older versions of native wolfSSL
474- * Verify and load intermediate CA certs in WolfSSLTrustX509.certManagerVerify()
475- * Add support for setSoTimeout() in WolfSSLSocket
476- * Fix suites length check in WolfSSLEngineHelper.setLocalCiphers()
477- * Check for connection closed before completing handshake in SSLSocket.read/write
478-
479- The wolfSSL JNI Manual is available at:
480- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
481- instructions and more detailed comments, please check the manual.
482-
483-
484- ### wolfSSL JNI Release 1.6.0 (08/26/2020)
485-
486- Release 1.6.0 has bug fixes and new features including:
487-
488- * Support for custom TrustManager checkClientTrusted(), checkServerTrusted()
489- * wolfJSSE TrustManager registered as PKIX provider
490- * Improved support for auto-loading system CA certificates
491- * Improved Android TrustManager support
492- * Use AndroidCAStore KeyStore when available on Android
493- * Support for X509Certificate.getSubjectAlternativeNames()
494- * Fix for native memory leak in JSSE WolfSSLTrustX509
495- * Optimization of WolfSSLTrustX509 to hold less memory at idle
496- * Addition of missing finalize() methods in some JSSE classes
497- * Casts to uintptr\_ t instead of intptr\_ t at native JNI level
498- * Conversion to use GetByteArrayElements for potential memory use savings
499- * Consistently use wolfCrypt XMALLOC/XFREE for native memory allocation
500- * Use javah in build.xml for older ant/Java versions without nativeheaderdir
501- * Add JSSE debug logging for native wolfSSL with wolfssl.debug system parameter
502- * Add more JSSE-level debug messages for easier troubleshooting
503- * Add internal implementation of SSLParameters, WolfSSLParameters
504- * Add client-side SNI support
505- * Fix warnings when DH is disabled (--disable-dh)
506- * Add Java thread ID to JSSE debug log messages for easier multithreaded debug
507- * Improve handshake synchronization in WolfSSLSocket for multi-threaded apps
508- * Add support for jsse.enableSNIExtension system property
509- * Add client-side session ticket support
510- * Add support for jdk.tls.client.enableSessionTicketExtension system property
511- * Enable session ticket and session cert support by default on Android AOSP
512- * Fixes compatibility with OkHttp on Android
513- * Add support for non-blocking socket operations in WolfSSLSession/Socket
514- * Moves I/O mutex locking to native level for more efficient locking
515-
516- The wolfSSL JNI Manual is available at:
517- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
518- instructions and more detailed comments, please check the manual.
519-
520-
521- ### wolfSSL JNI Release 1.5.0 (01/17/2020)
522-
523- Release 1.5.0 has bug fixes and new features including:
524-
525- * New JSSE provider (wolfJSSE) including TLS 1.3 support!
526- * Add JSSE debug logging with wolfjsse.debug system parameter
527- * Add JSSE install script and helper files for Android AOSP
528- * Add JSSE example apps (examples/provider)
529- * Add JNI wrappers to detect if native features/protocols are compiled in
530- * Add JNI wrapper for PKCS #8 offset getter
531- * Add JNI wrapper for wolfSSL\_ get\_ ciphers\_ iana()
532- * Update build.xml to use nativeheaderdir instead of javah target
533- * Update tests to use junit-4.13 / hamcrest-all-1.3
534- * Update to build, now ant build does not build and run tests / examples
535-
536- The wolfSSL JNI Manual is available at:
537- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
538- instructions and more detailed comments, please check the manual.
539-
540-
541- ### wolfSSL JNI Release 1.4.0 (11/16/2018)
542-
543- Release 1.4.0 has bug fixes and new features including:
544-
545- * Better support for conditional native wolfSSL feature dependencies
546- * Adds methods for checking if native features are enabled
547- * Optional method for loading native JNI library from a specific path
548- * TLS 1.0 functions are compiled out unless WOLFSSL\_ ALLOW\_ TLSV10 is defined
549- * Wrapper for native wolfCrypt ECC shared secret public key callback
550- * Allow other HmacSHA hash types to be used in Atomic User callback examples
551- * Error string buffer size set to use WOLFSSL\_ MAX\_ ERROR\_ SZ
552- * Fix for RSA doSign() output length
553- * Fix for I/O, Atomic User, and Public Key callback registration in examples
554- * Updated example key and certificate files
555-
556- The wolfSSL JNI Manual is available at:
557- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
558- instructions and more detailed comments, please check the manual.
559-
560-
561- ### wolfSSL JNI Release 1.3.0 (12/04/2015)
562-
563- Release 1.3.0 has bug fixes and new features including:
564-
565- * Updated support to wolfSSL 3.7.0
566- * Added finalizers for WolfSSLContext and WolfSSLSession classes
567- * Fix for SSLv3 now disabled by default in wolfSSL proper
568- * SSLv3 now marked as @Deprecated
569- * PSK (pre-shared key) support for client and server
570- * Better error checking and exception handling
571- * New WolfSSLJNIException class
572- * WolfSSLSession now cached in native WOLFSSL struct for callbacks
573- * Easier inclusion of junit4 in build.xml
574-
575- The wolfSSL JNI Manual is available at:
576- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
577- instructions and more detailed comments, please check the manual.
578-
579-
580- ### wolfSSL JNI Release 1.2.0 (06/02/2015)
581-
582- Release 1.2.0 has bug fixes and new features including:
583-
584- * Updated support for wolfSSL 3.4.6 and CyaSSL to wolfSSL name change
585- * Benchmark functionality in example client
586- * Updated example certificates
587- * Better detection of Java home on Mac and Linux
588-
589- The wolfSSL JNI Manual is available at:
590- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
591- instructions and more detailed comments, please check the manual.
592-
593-
594- ### wolfSSL JNI Release 1.1.0 (10/25/2013)
595-
596- Release 1.1.0 has bug fixes and new features including:
597-
598- * Updated support for CyaSSL 2.9.4
599- * Updated example certificates and CRLs
600- * Now expects user to have JUnit JARs pre-installed on dev platform
601- * Updated unit tests, JUnit4 style
602- * Android support
603- * CRL monitor now optional in server mode
604-
605- The wolfSSL JNI Manual is available at:
606- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
607- instructions and more detailed comments, please check the manual.
608-
609-
610- ### wolfSSL JNI Release 1.0.0 (10/25/2013)
611-
612- Release 1.0.0 is the first public release of wolfSSL JNI, the Java wrapper for
613- the CyaSSL embedded SSL library.
614-
615- The wolfSSL JNI Manual is available at:
616- http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf . For build
617- instructions and more detailed comments, please check the manual.
332+ Release notes can be found in [ ChangeLog.md] ( ./ChangeLog.md ) .
618333
619334## Support
620335
0 commit comments