wolfMQTT Releases v1.12.0

The latest release of wolfMQTT, v1.12.0, is now available! This release has several bug fixes and optimizations including:

  • Allow MqttClient_WaitType to return MQTT_CODE_CONTINUE with MT (PR #283)
  • Fix decoding user property and add example (PR #282)
  • Fix issue with MqttClient_Publish_WriteOnly not waiting properly for ACK
    (PR #281)
  • Fix MQTTv5 disconnect with props (PR #279)
  • Add new publish write only API for multi-threading (PR #277)
  • Fix for multithreaded cancel (PR #276)
  • MQTT-SN Add disconnect_cb when disconnect recv from broker; Fix PUB ACK
    return status handling (PR #274)
  • Enable TLS1.3 in examples (PR #273)
  • Adding windows github actions build test (PR #272)

Check out the changelog from the download for a full list of features and fixes, or contact us at facts@wolfssl.com with any questions:

https://github.com/wolfSSL/wolfMQTT/blob/master/ChangeLog.md

While you’re there, show us some love and give the wolfMQTT project a Star!

You can download the latest release here: https://www.wolfssl.com/download/

Or clone directly from our GitHub repository: https://github.com/wolfSSL/wolfMQTT

Upcoming Webinar: Looking Under The Hood – wolfSSL Automotive Security

wolfSSL is holding an upcoming webinar on February 24th, 2022!  Join us for a comprehensive presentation on how to leverage wolfSSL for all of your automotive security needs. Our expert engineers will go through a variety of different use cases, stories, and examples, each with specific engineering details. Bring your questions for the Q&A session to follow!

Topic: Looking Under the Hood – Everything you need to know about automotive security that you’re too afraid to ask: wolfSSL Automotive Stories and Examples!

Watch the webinar here: Looking Under The Hood-wolfSSL Automotive Security

Questions? Please contact us at facts@wolfssl.com.

Platform Security Architecture (PSA) Crypto API support in wolfSSL

One of the reasons for wolfSSL ubiquity is its easiness to support a wide range of platforms, interfaces and hardware accelerations. Now wolfSSL makes another step in this direction supporting an additional cryptographic interface, the Platform Security Architecture (PSA) crypto API. This means that everything wolfSSL supports (DTLS 1.2, TLS 1.3, etc.) can now leverage the API exposed by a PSA capable system. To start experimenting take a look at https://github.com/wolfSSL/wolfssl/tree/master/wolfcrypt/src/port/psa.

For a more hands-on approach feel free to check our examples, where you can find how to establish a TLS 1.3 connection on Trusted Firmware-M (https://github.com/wolfSSL/wolfssl-examples/tree/master/psa), the reference implementation for the PSA ecosystem. The example uses an STM32L5 NUCLEO-L552Ze-Q board. As usual, if you have any questions or comments, contact us at facts@wolfssl.com

Expanding CAAM Use

We have been expanding wolfSSL’s use of NXPs CAAM (Cryptographic Acceleration and Assurance Module) on i.MX8 devices. Now it is able to use black keys with RSA operations on one of NXP’s Linux setups. To achieve this we expanded the current CAAM driver some and will post links and benchmarks shortly. Using black key’s with the CAAM are useful because they encrypt the private key and do not expose it to potentially malicious users. We are also one of the first to expand the CAAM driver for use with the new Curve25519 support. Curious how fast these operations run on the device?

Contact us at facts@wolfssl.com for more information.

wolfSSL Supports nginx 1.21.4

wolfSSL has added support for nginx 1.21.4. nginx is a high-performance and high-concurrency web server capable of powering your website and more! wolfSSL is a SSL/TLS library that implements the TLS stack up to TLS 1.3 and DTLS 1.2.

Under the hood, we use the wolfCrypt library to provide FIPS 140-2 (soon to be 140-3) cryptography. Using wolfSSL/wolfCrypt, your web servers can become FIPS compliant! You also gain hardware support for many platforms and architectures.

Patches and instructions for using wolfSSL with nginx are publically available at https://github.com/wolfSSL/wolfssl-nginx. We currently have support for the following versions of nginx:

  • Nginx 1.21.4
  • Nginx 1.19.6
  • Nginx 1.17.5
  • Nginx 1.16.1
  • Nginx 1.15.0
  • Nginx 1.14.0
  • Nginx 1.13.12
  • Nginx 1.13.8
  • Nginx 1.13.2
  • Nginx 1.13.0
  • Nginx 1.12.2
  • Nginx 1.12.1
  • Nginx 1.12.0
  • Nginx 1.11.13
  • Nginx 1.11.10
  • Nginx 1.11.7
  • Nginx 1.10.3
  • Nginx 1.7.7
If you have any questions or comments,please get in contact with the wolfSSL team. (facts@wolfssl.com)
A full list of what was changed can be found in the wolfSSL ChangeLog (https://www.wolfssl.com/docs/wolfssl-changelog/).

wolfSSL Supports Apache 2.4.51

wolfSSL has updated support for the Apache HTTP Server. We have updated support for Apache httpd to version 2.4.51 in pull request #4658. wolfSSL is a SSL/TLS library that implements support for the latest TLS standards (TLS 1.3 and DTLS 1.2).

Apache is the most popular web server on the Internet since April 1996 that provides a secure, efficient and extensible web server. By building wolfSSL, you can leverage the full power of wolfCrypt. This includes hardware support for multiple platforms and architectures, FIPS 140-2 (soon 140-3) compliance for your FIPS needs, and the best tested cryptography on the market.

To build wolfSSL for Apache httpd, please configure wolfSSL with –enable-apachehttpd –enable-postauth. The patch and instructions for using Apache 2.4.51 with wolfSSL 5.1.0 can be found at https://github.com/wolfSSL/osp/tree/master/apache-httpd.

If you have any questions or comments,please get in contact with the wolfSSL team. (facts@wolfssl.com)
A full list of what was changed can be found in the wolfSSL ChangeLog (https://www.wolfssl.com/docs/wolfssl-changelog/).

wolfSSL v5.2.0 Release

wolfSSL v5.2.0 is available for download.
This release includes a fix for a vulnerability in our TLSv1.3 implementation. For additional vulnerability information visit the vulnerability page at https://www.wolfssl.com/docs/security-vulnerabilities/.
Included are many API expansions and some updates. The SP Math library has more performance improvements, including speedups for X448 and Ed448. We have removed three little used algorithms. We have also added AES-SIV, DTLS SRTP, and SipHash.

Vulnerabilities Fixed

  • [High] A TLS v1.3 server who requires mutual authentication can be bypassed. If a malicious client does not send the certificate_verify message a client can connect without presenting a certificate even if the server requires one. Thank you to Aina Toky Rasoamanana and Olivier Levillain of Télécom SudParis. CVE-2022-25640
  •  [High] A TLS v1.3 client attempting to authenticate a TLS v1.3 server can have its certificate check bypassed. If the sig_algo in the certificate_verify message is different than the certificate message checking may be bypassed. Thank you to Aina Toky Rasoamanana and Olivier Levillain of Télécom SudParis. CVE-2022-25638

New Feature Additions

  • Example applications for Renesas RX72N with FreeRTOS+IoT
  • Renesas FSP 3.5.0 support for RA6M3
  • For TLS 1.3, improved checks on order of received messages.
  • Support for use of SHA-3 cryptography instructions available in ARMv8.2-A architecture extensions. (For Apple M1)
  • Support for use of SHA-512 cryptography instructions available in ARMv8.2-A architecture extensions.  (For Apple M1)
  • Fixes for clang -Os on clang >= 12.0.0
  • Expose Sequence Numbers so that Linux TLS (kTLS) can be configured
  • Fix bug in TLSX_ALPN_ParseAndSet when using ALPN select callback.
  • Allow DES3 with FIPS v5-dev.
  • Include HMAC for deterministic ECC sign build
  • Add –enable-chrony configure option. This sets build options needed to build the Chrony NTP (Network Time Protocol) service.
  • Add support for STM32U575xx boards.
  • Fixes for NXP’s SE050 Ed25519/Curve25519.
  • TLS: Secure renegotiation info on by default for compatibility.
  • Inline C code version of ARM32 assembly for cryptographic algorithms available and compiling for improved performance on ARM platforms
  • Configure HMAC: define NO_HMAC to disable HMAC (default: enabled)
  • ISO-TP transport layer support added to wolfio for TLS over CAN Bus
  • Fix initialization bug in SiLabs AES support
  • Domain and IP check is only performed on leaf certificates

ARM PSA Support (Platform Security Architecture) API

  • Initial support added for ARM’s Platform Security Architecture (PSA) API in wolfCrypt which allows support of ARM PSA enabled devices by wolfSSL, wolfSSH, and wolfBoot and wolfCrypt FIPS.
  • Included algorithms: ECDSA, ECDH, HKDF, AES, SHA1, SHA256, SHA224, RNG

ECICE Updates

  • Support for more encryption algorithms: AES-256-CBC, AES-128-CTR, AES-256-CTR
  • Support for compressed public keys in messages.

Math Improvements

  • Improved performance of X448 and Ed448 through inlining Karatsuba in square and multiplication operations for 128-bit implementation (64-bit platforms with 128-bit type support).
  • SP Math C implementation: fix for corner case in curve specific implementations of Montgomery Reduction (P-256, P-384).
  • SP math all: assembly snippets added for ARM Thumb. Performance improvement on platform.
  • SP math all: ARM64/32 sp_div_word assembly snippets added to remove dependency on __udiv3.
  • SP C implementation: multiplication of two signed types with overflow is undefined in C. Now cast to unsigned type before multiplication is performed.
  • SP C implementation correctly builds when using CFLAG: -m32

OpenSSL Compatibility Layer

  • Added DH_get_2048_256 to compatibility layer.
  • wolfSSLeay_version now returns the version of wolfSSL
  • Added C++ exports for API’s in wolfssl/openssl/crypto.h. This allows better compatibility when building with a C++ compiler.
  • Fix for OpenSSL x509_NAME_hash mismatch
  • Implement FIPS_mode and FIPS_mode_set in the compat layer.
  • Fix for certreq and certgen options with openssl compatibility
  • wolfSSL_BIO_dump() and wolfSSL_OBJ_obj2txt() rework
  • Fix IV length bug in EVP AES-GCM code.
  • Add new ASN1_INTEGER compatibility functions.
  • Fix wolfSSL_PEM_X509_INFO_read with NO_FILESYSTEM

CMake Updates

  • Check for valid override values.
  • Add `KEYGEN` option.
  • Cleanup help messages.
  • Add options to support wolfTPM.

VisualStudio Updates

  • Remove deprecated VS solution
  • Fix VS unreachable code warning

New Algorithms and Protocols

  • AES-SIV (RFC 5297)
  • DTLS SRTP (RFC 5764), used with WebRTC to agree on profile for new real-time session keys
  • SipHash MAC/PRF for hash tables. Includes inline assembly for x86_64 and Aarch64.

Remove Obsolete Algorithms

  • IDEA
  • Rabbit
  • HC-128
If this adversely affects you or your customers, please get in contact with the wolfSSL team. (support@wolfssl.com)
For additional vulnerability information visit the vulnerability page at https://www.wolfssl.com/docs/security-vulnerabilities/
A full list of what was changed can be found in the wolfSSL ChangeLog (https://www.wolfssl.com/docs/wolfssl-changelog/).

Why replace NSS with wolfSSL in Firefox?

Here at wolfSSL, we love doing integrations. 

 

What you might not know about Mozilla’s Firefox and NSS is that all of the cryptography happens underneath their PKCS#11 layer which is a software component called the “NSS Internal PKCS #11 Module”. It has a “Software Security Device.” As you can see in the user interface screenshot above, “wolfPKCS11” has “wolfSSL HSM slot ID 01” and has been loaded in Mozilla Firefox’s Security Device Manager. You can find wolfPKCS11 at https://github.com/wolfSSL/wolfPKCS11/ . It primarily replaces the underlying authentication implementations with those found in wolfCrypt.

 

What does this mean in terms of FIPS 140-2/3? It means that if you are running Firefox in an environment that requires FIPS assurances, you can swap in wolfSSL and meet the requirement!

 

Contact us at facts@wolfssl.com to find out more!

Posts navigation

1 2 3