Skip to content

Commit d0edc8a

Browse files
committed
Update ChangeLog for 1.13 release, move to separate file
1 parent da8b026 commit d0edc8a

2 files changed

Lines changed: 390 additions & 290 deletions

File tree

ChangeLog.md

Lines changed: 385 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,385 @@
1+
### wolfSSL JNI Release 1.13.0 (4/9/2024)
2+
3+
Release 1.13.0 has bug fixes and new features including:
4+
5+
**New JSSE Functionality:**
6+
* Add `SSLSocket.getApplicationProtocol()`, returns negotiated ALPN protocol (PR 150)
7+
* Add native `WOLFSSL_TRUST_PEER_CERT` support in `WolfSSLTrustX509` (PR 154)
8+
* Add implementation of `javax.net.ssl.X509ExtendedTrustManager` (PR 159)
9+
* Add `getSSLParameters()` to `SSLEngine` and `SSLSocket` (PR 159)
10+
* Add `getHandshakeSession()` to `SSLSocket` (PR 159)
11+
* Convert `SSLSession` to `ExtendedSSLSession`, add `getRequestedServerNames()` (PR 159)
12+
* Add ALPN API support to `SSLSocket` and `SSLEngine` with tests (PR 163)
13+
* Add implementation of `X509ExtendedKeyManager` (PR 167)
14+
15+
**JSSE System/Security Property Support:**
16+
* Add partial support for `jdk.tls.disabledAlgorithms` Security property (PR 136)
17+
* Add support for `wolfjsse.enabledCipherSuites` Security property (PR 136)
18+
* Add support for `wolfjsse.enabledSignatureAlgorithms` Security property (PR 136)
19+
* Add support for `wolfjsse.enabledSupportedCurves` Security property (PR 143)
20+
21+
**JSSE Changes:**
22+
* Get updated status before returning from SSLEngine.getHandshakeStatus() (PR 122)
23+
* Add synchronization to SSLEngine read/write buffers (PR 124)
24+
* Return null array from X509TrustManager.getAcceptedIssuers() if not yet initialized (PR 128)
25+
* Improve `SSLEngine.unwrap()` for better efficiency (PR 137)
26+
* Add native wolfSSL crypto callback (CryptoCb) support with WolfSSLProvider (PR 138)
27+
* Add synchronization around `WolfSSLAuthStore` lock (PR 139)
28+
* Fixes and improvements to `SSLSocket`/`SSLEngine` session resumption (PR 139, 144)
29+
* Fix for `X509TrustManager` to not add root CA twice in returned chains (PR 140)
30+
* Add synchronization around native pointer use and active states (PR 142)
31+
* Fix for `SSLSocket` to fall back to I/O callbacks if setting internal fd fails (PR 145)
32+
* Fix `SSLSocket` TLS 1.3 session cache and threading issues (PR 149)
33+
* Throw `SocketException` if native socket `select()` fails (PR 151)
34+
* Only call `InetAddress.getHostName()` when `jdk.tls.trustNameService` is true (PR 134)
35+
* Fix for `SSLSession.getPeerCertificate()` and cached certs during resumption (PR 162)
36+
* Save session at correct time for resumption in SSLEngine (PR 165)
37+
* Check TLS 1.3 session for ticket before saving to Java client cache (PR 175)
38+
* Fixes for `SSLEngine.setWantClientAuth()` (PR 172)
39+
* Release native verify callback when `SSLEngine` is closed (PR 180)
40+
* Avoid extra Java array allocation in `SSLSocket` InputStream/OutputStream (PR 183)
41+
42+
**New JNI Wrapped APIs and Functionality:**
43+
* `wolfSSL_CTX_SetTmpDH()` and `wolfSSL_CTX_SetTmpDH_file()` (PR 136)
44+
* `wolfSSL_CTX_SetMinDh/Rsa/EccKey_Sz()` (PR 136)
45+
* `wolfSSL_set1_sigalgs_list()` (PR 136)
46+
* `wolfSSL_CTX_UseSupportedCurve()` (PR 158)
47+
* `wolfSSL_X509_check_host()` and `wolfSSL_SNI_GetRequest()` (PR 159)
48+
* `wolfSSL_CTX_set_groups()` and `wolfTLSv1_3_client/server_method()` (PR 164)
49+
* `SSL_CTX_set1_sigalgs_list()` (PR 169)
50+
* `wolfSSL_set_tls13_secret_cb()`, add ability to set Java callback (PR 181)
51+
* Add X.509v3 certificate generation support in `WolfSSLCertificate` and examples (PR 141)
52+
* Add Certificate Signing Request (CSR) support and examples (PR 146)
53+
54+
**JNI Changes:**
55+
* Call `wolfSSL_get1_session()` when saving session for resumption (PR 139)
56+
* Call `select()` again on error with `EINTR` (PR 171)
57+
58+
**New Platform Support:**
59+
* Add Windows support with Visual Studio, see IDE/WIN/README.md (PR 125)
60+
61+
**Build System Changes:**
62+
* Add `JAVA_HOME` support in `java.sh` for use with custom Java install (PR 121)
63+
* New argument to `java.sh` for custom wolfSSL library name to be used (PR 126)
64+
* Add lib64 directory to library search path in `java.sh` (PR 130)
65+
* Standardize JNI library name on OSX to .dylib (PR 152)
66+
* Add Maven build support (PR 153)
67+
* Update Android Studio example project (PR 185)
68+
69+
**Example Changes:**
70+
* Update instructions for running examples (PR 133)
71+
* Fix example JSSE client `-d` option, add `-g` to send HTTP GET (PR 155)
72+
* Fix example JSSE client for resumption when sending HTTP GET (PR 157)
73+
* Add TLS 1.3 version support to example `Client.java` and `Server.java` (PR 169)
74+
* Expand JNI `Client.java` with support for doing session resumption with tickets (PR 169)
75+
76+
**Debugging Changes:**
77+
* Add WolfSSLDebug.logHex() for printing byte arrays as hex (PR 129)
78+
* Add synchronization and Thread ID to debug log messages (PR 129)
79+
* Add new debug System property `wolfsslengine.io.debug` for I/O debug logs (PR 137)
80+
* Add timestamp to debug logs (PR 148)
81+
* Fix for enabling JSSE debug logs after WolfSSLProvider has been registered (PR 166)
82+
* Make native wolfSSL debug log format consistent with wolfJSSE logs (PR 166)
83+
84+
**Testing Changes:**
85+
* Add Facebook Infer test script, make fixes (PR 127, 182)
86+
* Add extended threading test of `SSLEngine` (PR 124)
87+
* Testing with and fixes from SonarQube static analyzer (PR 131)
88+
* Add extended threading test of `SSLSocket` (PR 149)
89+
* Testing with and fixes for running SunJSSE tests on wolfJSSE (PR 170, 174)
90+
* Add GitHub Actions tests for Oracle/Zulu/Coretto/Temurin/Microsoft JDKs on Linux and OS X (PR 176)
91+
92+
**Documentation Changes:**
93+
* Clean up Javadoc warnings with Java 17 (PR 147)
94+
95+
The wolfSSL JNI Manual is available at:
96+
https://www.wolfssl.com/documentation/manuals/wolfssljni. For build
97+
instructions and more detailed comments, please check the manual.
98+
99+
### wolfSSL JNI Release 1.12.0 (03/31/2023)
100+
101+
Release 1.12.0 has bug fixes and new features including:
102+
103+
**JNI and JSSE Changes:**
104+
* Additional synchronization support in WolfSSLCertificate (PR 118)
105+
* Prevent WolfSSLCertificate from freeing `WOLFSSL_X509` if not owned (PR 118)
106+
* Fix `X509KeyManager.getCertificateChain()` to return `null` when alias is `null` (PR 119)
107+
108+
**Documentation Changes:**
109+
* Add Android Studio instructions for how to update source symlinks on Windows (PR 117)
110+
111+
The wolfSSL JNI Manual is available at:
112+
https://www.wolfssl.com/documentation/manuals/wolfssljni. For build
113+
instructions and more detailed comments, please check the manual.
114+
115+
### wolfSSL JNI Release 1.11.0 (12/2/2022)
116+
117+
Release 1.11.0 has bug fixes and new features including:
118+
119+
**JNI and JSSE Changes:**
120+
* Add support for system properties: keyStore, keyStoreType, keyStorePassword (PR 74)
121+
* Add support for secure renegotiation if available in native wolfSSL (PR 75)
122+
* Fix compilation against newer wolfSSL versions that have dtls.c (PR 107)
123+
* Fixes and cleanup to SSLEngine implementation (PR 108)
124+
* Fixes for SSLEngine synchronization issues (PR 108)
125+
* Add non-standard X509TrustManager.checkServerTrusted() for use on Android (PR 109)
126+
* Add RPM packaging support (PR 110)
127+
* Fix SSLSocketFactory.createSocket() to allow for null host (PR 111)
128+
* Remove @Override on SSLEngine.getHandshakeSession() for older Java versions (PR 114)
129+
130+
The wolfSSL JNI Manual is available at:
131+
https://www.wolfssl.com/documentation/manuals/wolfssljni. For build
132+
instructions and more detailed comments, please check the manual.
133+
134+
### wolfSSL JNI Release 1.10.0 (8/11/2022)
135+
136+
Release 1.10.0 has bug fixes and new features including:
137+
138+
**JNI and JSSE Changes:**
139+
* Add SSLEngine.getApplicationProtocol(), fixes Undertow compatibility (PR 84)
140+
* Wrap wolfSSL\_UseALPN() at JNI level (PR 84)
141+
* Fix compile error for wolfSSL < 4.2.0 and wolfSSL\_set\_alpn\_protos() (PR 84)
142+
* Fix NullPointerException when no selected ALPN is available (PR 84)
143+
* Fix JNI build when wolfSSL compiled with --disable-filesystem (PR 104)
144+
* Fix SSLEngine compatibility with data larger than TLS record size (PR 105)
145+
* Refactor SSLEngine handshake status to be more inline with SunJSSE (PR 105)
146+
* Add verbose SSLEngine logging with "wolfsslengine.debug" property (PR 105)
147+
148+
**Documentation Changes**
149+
* Fix missing Javadoc warnings in ALPN code
150+
151+
**Example Changes:**
152+
* Update Android Studio IDE project to use Android 11 (SDK 30)
153+
154+
The wolfSSL JNI Manual is available at:
155+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
156+
instructions and more detailed comments, please check the manual.
157+
158+
### wolfSSL JNI Release 1.9.0 (5/5/2022)
159+
160+
Release 1.9.0 has bug fixes and new features including:
161+
162+
**JNI and JSSE Changes:**
163+
* Add synchronization to class cleanup/free routines (PR 78)
164+
* Fix JNI native casting to use utintptr\_t instead of intptr\_t (PR 79)
165+
* Add support for newer Java versions (ex: Java 17) (PR 90)
166+
* Remove HC-128 support (PR 94). Native wolfSSL removed with
167+
[PR #4767](https://github.com/wolfSSL/wolfssl/pull/4767)
168+
* Remove RABBIT support (PR 96). Native wolfSSL removed with
169+
[PR #4774](https://github.com/wolfSSL/wolfssl/pull/4767)
170+
* Remove IDEA support (PR 97). Native wolfSSL removed in
171+
[PR #4806](https://github.com/wolfSSL/wolfssl/pull/4806).
172+
* Fix typecasting issues and cleanup for native argument checking (PR 98, 99)
173+
* Add Socket timeout support for native SSL\_connect/write() (PR 95)
174+
* SSLSocket.getSession() now tries to do TLS handshake if not completed (PR 76)
175+
* Fix shutdown/close\_notify alert handling in WolfSSLEngine (PR 83)
176+
* Fix WolfSSLSocket to test if close() called before object init (PR 88)
177+
* Add support for loading default system CA certs on Java 9+ (PR 89)
178+
* Fix timeout behavior with WolfSSLSession.connect() (PR 100)
179+
180+
**Example Changes:**
181+
* Print wolfJSSE provider info in JSSE ProviderTest (PR 77)
182+
* Add option to ClientJSSE to do one session resumption (PR 80)
183+
* Update example certificates and keys (PR 81)
184+
185+
**Documentation Changes:**
186+
* Add missing Javadocs, fix warnings on newer Java versions (PR 92)
187+
188+
**Testing Changes:**
189+
* Update junit dependency to 4.13.2 (PR 91)
190+
191+
The wolfSSL JNI Manual is available at:
192+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
193+
instructions and more detailed comments, please check the manual.
194+
195+
### wolfSSL JNI Release 1.8.0 (11/12/2021)
196+
197+
Release 1.8.0 has bug fixes and new features including:
198+
199+
* wolfCrypt FIPS 140-3 and FIPS Ready compatibility
200+
* Add Socket method wrappers, fixes behavior when inner Socket used with JSSE
201+
* Add wrappers to get FIPS verifyCore hash (FIPS error cb or directly)
202+
* Fix potential NullPointerException with several clone() methods
203+
* Refactor of SSLSessionContext implementation
204+
* Fix behavior of WolfSSLSocket.getSoTimeout() when external Socket is wrapped
205+
* Fix timeout used in socketSelect to correctly handle fractional sec timeouts
206+
* Fix memory leak when custom X509TrustManager is used with wolfJSSE
207+
* Add support for multiple X509TrustManager objects across multiple sessions
208+
* Call WolfSSL.cleanup() in finalizer to release library resources earlier
209+
* Release native WOLFSSL memory sooner, when WolfSSLSocket is closed
210+
* Better management and freeing of native WolfSSLCertificate memory
211+
* Release native logging callback when library is freed
212+
* Release native wolfCrypt FIPS callback when library is freed
213+
* Release CTX-level Java verify callback when CTX is freed
214+
* Release CTX-level Java CRL callback when CTX is freed
215+
* Better global reference cleanup in error conditions
216+
* Fix unused variable warnings in non-FIPS builds
217+
* Use one static WolfSSL object across all WolfSSLProvider objects
218+
* Release local JNI array inside WolfSSLSession.read() on function exit
219+
* Add multi-threaded JSSE provider client and server examples
220+
* Update Android AOSP install script to create missing blank files if needed
221+
* Update Android AOSP build fies to define `SIZEOF_LONG` and `SIZEOF_LONG_LONG`
222+
* Update IDE/Android example Android Studio project
223+
* Fix default cipher suite list order used in JSSE WolfSSLContext objects
224+
* Fix FIPS Ready compatibility with `WC_RNG_SEED_CB`
225+
* Update Android AOSP Android.mk to compile wolfCrypt kdf.c
226+
227+
The wolfSSL JNI Manual is available at:
228+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
229+
instructions and more detailed comments, please check the manual.
230+
231+
### wolfSSL JNI Release 1.7.0 (01/15/2021)
232+
233+
Release 1.7.0 has bug fixes and new features including:
234+
235+
* Fixes for Infer analysis warnings
236+
* Throw exception in DEFAULT\_Context creation if engineInit() fails
237+
* Defer creating DEFAULT WolfSSLContext until first use
238+
* Check if Socket is open before doing TLS shutdown in WolfSSLSocket.close()
239+
* Only load X509TrustStore issuers when needed by native wolfSSL verification
240+
* Fix compiler warnings when used with older versions of native wolfSSL
241+
* Verify and load intermediate CA certs in WolfSSLTrustX509.certManagerVerify()
242+
* Add support for setSoTimeout() in WolfSSLSocket
243+
* Fix suites length check in WolfSSLEngineHelper.setLocalCiphers()
244+
* Check for connection closed before completing handshake in SSLSocket.read/write
245+
246+
The wolfSSL JNI Manual is available at:
247+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
248+
instructions and more detailed comments, please check the manual.
249+
250+
251+
### wolfSSL JNI Release 1.6.0 (08/26/2020)
252+
253+
Release 1.6.0 has bug fixes and new features including:
254+
255+
* Support for custom TrustManager checkClientTrusted(), checkServerTrusted()
256+
* wolfJSSE TrustManager registered as PKIX provider
257+
* Improved support for auto-loading system CA certificates
258+
* Improved Android TrustManager support
259+
* Use AndroidCAStore KeyStore when available on Android
260+
* Support for X509Certificate.getSubjectAlternativeNames()
261+
* Fix for native memory leak in JSSE WolfSSLTrustX509
262+
* Optimization of WolfSSLTrustX509 to hold less memory at idle
263+
* Addition of missing finalize() methods in some JSSE classes
264+
* Casts to uintptr\_t instead of intptr\_t at native JNI level
265+
* Conversion to use GetByteArrayElements for potential memory use savings
266+
* Consistently use wolfCrypt XMALLOC/XFREE for native memory allocation
267+
* Use javah in build.xml for older ant/Java versions without nativeheaderdir
268+
* Add JSSE debug logging for native wolfSSL with wolfssl.debug system parameter
269+
* Add more JSSE-level debug messages for easier troubleshooting
270+
* Add internal implementation of SSLParameters, WolfSSLParameters
271+
* Add client-side SNI support
272+
* Fix warnings when DH is disabled (--disable-dh)
273+
* Add Java thread ID to JSSE debug log messages for easier multithreaded debug
274+
* Improve handshake synchronization in WolfSSLSocket for multi-threaded apps
275+
* Add support for jsse.enableSNIExtension system property
276+
* Add client-side session ticket support
277+
* Add support for jdk.tls.client.enableSessionTicketExtension system property
278+
* Enable session ticket and session cert support by default on Android AOSP
279+
* Fixes compatibility with OkHttp on Android
280+
* Add support for non-blocking socket operations in WolfSSLSession/Socket
281+
* Moves I/O mutex locking to native level for more efficient locking
282+
283+
The wolfSSL JNI Manual is available at:
284+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
285+
instructions and more detailed comments, please check the manual.
286+
287+
288+
### wolfSSL JNI Release 1.5.0 (01/17/2020)
289+
290+
Release 1.5.0 has bug fixes and new features including:
291+
292+
* New JSSE provider (wolfJSSE) including TLS 1.3 support!
293+
* Add JSSE debug logging with wolfjsse.debug system parameter
294+
* Add JSSE install script and helper files for Android AOSP
295+
* Add JSSE example apps (examples/provider)
296+
* Add JNI wrappers to detect if native features/protocols are compiled in
297+
* Add JNI wrapper for PKCS#8 offset getter
298+
* Add JNI wrapper for wolfSSL\_get\_ciphers\_iana()
299+
* Update build.xml to use nativeheaderdir instead of javah target
300+
* Update tests to use junit-4.13 / hamcrest-all-1.3
301+
* Update to build, now ant build does not build and run tests / examples
302+
303+
The wolfSSL JNI Manual is available at:
304+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
305+
instructions and more detailed comments, please check the manual.
306+
307+
308+
### wolfSSL JNI Release 1.4.0 (11/16/2018)
309+
310+
Release 1.4.0 has bug fixes and new features including:
311+
312+
* Better support for conditional native wolfSSL feature dependencies
313+
* Adds methods for checking if native features are enabled
314+
* Optional method for loading native JNI library from a specific path
315+
* TLS 1.0 functions are compiled out unless WOLFSSL\_ALLOW\_TLSV10 is defined
316+
* Wrapper for native wolfCrypt ECC shared secret public key callback
317+
* Allow other HmacSHA hash types to be used in Atomic User callback examples
318+
* Error string buffer size set to use WOLFSSL\_MAX\_ERROR\_SZ
319+
* Fix for RSA doSign() output length
320+
* Fix for I/O, Atomic User, and Public Key callback registration in examples
321+
* Updated example key and certificate files
322+
323+
The wolfSSL JNI Manual is available at:
324+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
325+
instructions and more detailed comments, please check the manual.
326+
327+
328+
### wolfSSL JNI Release 1.3.0 (12/04/2015)
329+
330+
Release 1.3.0 has bug fixes and new features including:
331+
332+
* Updated support to wolfSSL 3.7.0
333+
* Added finalizers for WolfSSLContext and WolfSSLSession classes
334+
* Fix for SSLv3 now disabled by default in wolfSSL proper
335+
* SSLv3 now marked as @Deprecated
336+
* PSK (pre-shared key) support for client and server
337+
* Better error checking and exception handling
338+
* New WolfSSLJNIException class
339+
* WolfSSLSession now cached in native WOLFSSL struct for callbacks
340+
* Easier inclusion of junit4 in build.xml
341+
342+
The wolfSSL JNI Manual is available at:
343+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
344+
instructions and more detailed comments, please check the manual.
345+
346+
347+
### wolfSSL JNI Release 1.2.0 (06/02/2015)
348+
349+
Release 1.2.0 has bug fixes and new features including:
350+
351+
* Updated support for wolfSSL 3.4.6 and CyaSSL to wolfSSL name change
352+
* Benchmark functionality in example client
353+
* Updated example certificates
354+
* Better detection of Java home on Mac and Linux
355+
356+
The wolfSSL JNI Manual is available at:
357+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
358+
instructions and more detailed comments, please check the manual.
359+
360+
361+
### wolfSSL JNI Release 1.1.0 (10/25/2013)
362+
363+
Release 1.1.0 has bug fixes and new features including:
364+
365+
* Updated support for CyaSSL 2.9.4
366+
* Updated example certificates and CRLs
367+
* Now expects user to have JUnit JARs pre-installed on dev platform
368+
* Updated unit tests, JUnit4 style
369+
* Android support
370+
* CRL monitor now optional in server mode
371+
372+
The wolfSSL JNI Manual is available at:
373+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
374+
instructions and more detailed comments, please check the manual.
375+
376+
377+
### wolfSSL JNI Release 1.0.0 (10/25/2013)
378+
379+
Release 1.0.0 is the first public release of wolfSSL JNI, the Java wrapper for
380+
the CyaSSL embedded SSL library.
381+
382+
The wolfSSL JNI Manual is available at:
383+
http://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf. For build
384+
instructions and more detailed comments, please check the manual.
385+

0 commit comments

Comments
 (0)