Skip to content

Commit afd613b

Browse files
authored
Merge pull request #186 from cconlon/release113
Prep for 1.13 Release
2 parents da8b026 + 5948162 commit afd613b

7 files changed

Lines changed: 425 additions & 361 deletions

File tree

ChangeLog.md

Lines changed: 385 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 6 additions & 291 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ and more!
2626
## User Manual
2727

2828
The 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

3131
For additional build instructions and more detailed comments, please reference
3232
the 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

build.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<!-- versioning/manifest properties -->
1515
<property name="implementation.vendor" value="wolfSSL Inc." />
1616
<property name="implementation.title" value="wolfSSL JNI/JSSE" />
17-
<property name="implementation.version" value="1.12" />
17+
<property name="implementation.version" value="1.13" />
1818

1919
<!-- set properties for this build -->
2020
<property name="src.dir" value="src/java/"/>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.wolfssl</groupId>
66
<artifactId>wolfssl-jsse</artifactId>
7-
<version>1.12.0-SNAPSHOT</version>
7+
<version>1.13.0-SNAPSHOT</version>
88
<packaging>jar</packaging>
99
<name>wolfssl-jsse</name>
1010
<url>https://www.wolfssl.com</url>

src/java/com/wolfssl/provider/jsse/WolfSSLProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ public void errorCallback(int ok, int err, String hash) {
7171
* wolfSSL JSSE Provider class
7272
*/
7373
public WolfSSLProvider() {
74-
super("wolfJSSE", 1.12, "wolfSSL JSSE Provider");
75-
//super("wolfJSSE", "1.12", "wolfSSL JSSE Provider");
74+
super("wolfJSSE", 1.13, "wolfSSL JSSE Provider");
75+
//super("wolfJSSE", "1.13", "wolfSSL JSSE Provider");
7676

7777
/* load native wolfSSLJNI library */
7878
WolfSSL.loadLibrary();

0 commit comments

Comments
 (0)