wolfSSL’s progressive embedded TLS/SSL library has a new release available for download by our community. This new release contains new features, updates to existing code, and bug fixes. Some of the additional features added to wolfSSL version 3.9.8 are the use of custom ECC curves, support for Brainpool curves, and RSA blinding for private key operations. With the addition of RSA binding comes increased protection against timing attacks for users that have static RSA suites on their server. Static RSA cipher suites are not recommended and are turned off by default with wolfSSL.
Some fixes were also made to the IoT wolfSSL library. A few of these fixes were dealing with sanity checks on malformed certificates outside of a TLS connection, revisions to the recent static memory feature, and updated handling of math operations with compressed ECC keys. It is recommended that users update to the most recent wolfSSL release. Users that have server side static RSA cipher suites enabled should update to this version of wolfSSL for RSA blinding, and create new RSA private keys.
Here is a full list of highlighted changes for this release of our embedded SSL library.
– Add support for custom ECC curves. This allows use of non-standard ECC curves.
– Add cipher suite ECDHE-ECDSA-AES128-CCM.
– Add compkey enable option. This option is for enabling and disabling compressed ECC keys.
– Add in the option to use test.h without gettimeofday function using the macro WOLFSSL_USER_CURRTIME. This makes test.h more portable.
– Add RSA blinding for private key operations. Enable option of harden which is on by default. This negates timing attacks.
– Add ECC and TLS support for all SECP, Koblitz and Brainpool curves.
– Add helper functions for static memory option to allow getting optimum buffer sizes. This calculates the size of the needed buffer to have it completely used with no excess unused memory at the end.
– Update wolfSSL for use with MYSQL v5.6.30.
– Update LPCXpresso eclipse project to not include misc.c when not needed.
– Updates to DTLS 1.2.
– Fixes for code in math sections with compressed ECC keys. This includes edge cases for buffer size on allocation and adjustments for compressed curves build.
– Fix function argument mismatch for build with secure renegotiation.
– X.509 bug fixes for reading in malformed certificates, reported by researchers at Columbia University
– Fix GCC version 6 warning about hard tabs in poly1305.c. This was a warning produced by GCC 6 trying to determine the intent of code.
– Fixes for static memory option. These fixes include avoiding potential race conditions with
counters and decrementing handshake counter in the case of a failed client connection attempt.
– Fix for a possible output buffer overrun when using anonymous cipher and Diffie Hellman key exchange on the server side.