---
title: "Release notes"
source_url: https://dev.digicert.com/trustcore-sdk/release-notes.html
---
## TrustCore SDK v9.0.0
The DigiCert® TrustCore SDK is now open source - production‑proven IoT security for everyone.
TrustCore SDK version `v9.0.0` is now available as an **open‑source release**, bringing a battle‑tested IoT security stack to developers and organizations worldwide.
For more information, see [TrustCore SDK on GitHub](https://github.com/digicert/trustcore).
TrustCore SDK reflects **over 15 years of in‑production use**, now packaged with modular, developer-friendly APIs. You can adopt a mature, enterprise-grade security foundation without vendor lock‑in. This enables faster innovation, easier audits, and stronger trust for regulated and large-scale IoT deployments.
### Key capabilities included:
- Public Key Infrastructure (PKI)
- Secure device provisioning and onboarding
- Cryptographic protocols and identity lifecycle management
- Cross‑platform integrations and protocol support:
- MQTT
- SSL/TLS
- SSH
- IPSec
- SCEP, EST
- PUF-based security
### Enhancements
#### More secure defaults with stronger cipher configuration
NanoSSL now disables weak and legacy cipher suites by default, including:
- ECDHE with P‑192 curves
- EDH‑RSA‑DES‑CBC‑SHA
This improves out‑of‑the‑box security by aligning TrustCore SDK with modern cryptographic best practices and compliance expectations.
#### Cleaner TLS logs with environment‑controlled version output
The OpenSSL Connector now logs the TLS version only when explicitly enabled via an environment variable: `OPENSSL_ENABLE_VERSION_LOGGING=1`
You get clearer logs by default while retaining the option to enable detailed TLS diagnostics for debugging or compliance audits.
### Fixes
#### Resolved certificate parsing issue in NanoSSL client
Resolved an incorrect size calculation in the `findCertificate` loop within the NanoSSL client implementation.
This improves certificate handling reliability and prevents parsing errors that could impact TLS handshakes.
#### Resolved cipher initialization issue in OpenSSL Connector (v3.0.12)
Resolved a bug in the Cipher EVP initialization logic when using the `OpenSSL 3.0.12 Connector`.
This ensures correct cipher initialization, improving stability and preventing cryptographic errors at runtime.
## U8 (minor release)
The **U8 is a minor release** that extends the DigiCert® TrustCore SDK with new functionality and important fixes across NanoROOT, NanoSSL, NanoSSH, NanoSec, and the OpenSSL Connector modules.
This release enhances **device identity security**, **cryptographic reliability**, and **protocol performance**, while addressing key issues reported in version 7.0 components.
### New
#### NanoROOT - hardware-rooted trust for connected devices
Introduced NanoROOT, a next-generation security solution built on the DigiCert TrustCore SDK.
NanoROOT leverages immutable device identity to establish a hardware-rooted trust anchor, enabling secure provisioning, device authentication, and counterfeit prevention. This ensures that each connected device can be cryptographically verified as genuine.
### Fixes
#### NanoSSL 7.0
- **Ticket #4508986**: Resolved the **TLS 1.3 handshake failure** when TLS certificate compression (RFC 8879) is enabled.
- Files modified: `src/ssl/client/ssl_client.inc`
- **Ticket #4495972**: Resolved the **cloneHashCtx** issue that caused improper context duplication.
- Files modified: `src/ssl/server/ssl_server.inc`, `src/ssl/client/ssl_client.inc`, and `src/ssl/sslsock.c`
- **Ticket #4454764**: Resolved the issue in **handleServerHandshakeMessages** detected during fuzz testing.
- Files modified: `src/ssl/client/ssl_client.inc`
#### NanoSSH 7.0
- **Ticket #4473341**: Resolved inconsistencies in **SSHv2 KDF**when processing certain NIST test data.
- Files modified: `src/ssh/ssh_mpint.c`
- **Ticket #4438656**: Resolved the abnormal close behavior in **SSH sessions** triggered by clients.
- Files modified: `src/ssh/ssh.c` and `src/ssh/ssh_session.c`
#### NanoSec 7.0
**Ticket #4495972**: Resolved inconsistencies in **NIST IKEv2 KDF SP800-135** expected output during validation.
Files modified: `src/ike2/ike2_state.c` and `src/ike2/nist/test/ike2_nist_sample.c`
#### OpenSSL Connector 7.0
- **Ticket #4479730**: Resolved **performance degradation** when using OpenSSL Connector.
- Files modified: `src/openssl_wrapper/ossl_ssl.c`, `src/openssl_wrapper/ossl_types.h`, and `src/openssl_wrapper/ssl.h`
- **Ticket #4370796**: Improved **OWASP compliance** for the OpenSSL Connector.
- Files modified: `src/openssl_wrapper/ossl_ssl.c`
## U7 (minor release)
The U7 is a minor release that extends the DigiCert® TrustCore SDK with new post-quantum capabilities, improved protocol coverage, and important stability fixes across *NanoSSL*, *NanoSSH*, *NanoCert*, *NanoCrypto*, *NanoSec*, and the *OpenSSL Connector modules*. These updates enhance interoperability, improve performance, and prepare your device security stack for evolving cryptographic standards.
The following are the enhancements and fixes.
> **Important**
>
> Upgrade considerations
>
> This version deprecates support for **OpenSSL 1.0.2** (all versions), **OpenSSL 1.1.1c**, and **OpenSSL 1.1.1f**.
### Enhancements
#### NanoSSH 7.0
- **Support for Encrypt-then-MAC algorithms**: Added support for Encrypt-then-MAC algorithms, enhancing message-authentication security during SSH sessions.
*Ticket*: #04270562
**Files modified**: `src/ssh/ssh_context.h` ,`src/ssh/ssh_in_mesg.c`, `src/ssh/ssh_in_mesg.h``src/ssh/ssh_out_mesg.c`, `src/ssh/ssh_out_mesg.h`, and `src/ssh/ssh_trans.c`.
- **Support for pure and composite MLDSA signatures**: Added support for pure and composite MLDSA signatures for server host key and client public key authentication.
**Files modified**: `src/asn1/`, `src/crypto/`, `src/crypto_interface/`, `src/crypto_interface/`, `src/ssh/client/`, and `src/ssh/ssh.c`.
#### NanoSSL 7.0
**Support for pure and composite MLDSA signatures**: Added support for pure and composite MLDSA signatures for server host key and client public key authentication.
**Files modified**: `src/asn1/`, `src/common/win32oid.c`, `src/crypto/`, `src/crypto_interface/`, `src/ssl/client/ssl_client.inc`, `src/ssl/server/ssl_server.inc`, `src/ssl/sslsock.c`, and `src/ssl/sslsock.h`.
### Fixes
#### NanoSSL 7.0
- **Ticket #4454769**: Resolved the *handshakeRecLen zero check* in the *processCertificate* function.
**Files modified:**
`src/ssl/sslsock.c`
- **Ticket #4392422**: Resolved the *OOB error* in *handleServerHandshakeMessages*.
**Files modified**:
`src/ssl/server/ssl_server.inc`
- **Ticket #04276156**: Resolved the TLS handshake succeeding issue even when a server’s certificate chain was corrupted.
**Files modified**:
`src/crypto/cert_chain.c`, `src/crypto/cert_chain.h`, `src/examples/ssl_client_example.c`, `src/ssl/ssl.c`, `src/ssl/ssl.h`, `src/ssl/sslsock.c`, and `src/ssl/sslsock.h`.
- **Ticket #04115411**: Resolved the TLS client authentication issues when using smartcard-based PKCS#11 keys.
**Files modified**:
`src/openssl_wrapper/openssl_shim.h`, `src/openssl_wrapper/ossl_ssl.c`, and `src/ssl/ssl.c`.
#### NanoCert
- **Ticket #4383284**: Resolved the OCSP HTTP initialization timeout from 128 seconds to the expected default.
**Files modified:**
`src/common/mtcp.h`, `src/ocsp/ocsp_http.c`, `src/ocsp/ocsp_http.h`, and `src/platform/linux_tcp.c`.
- **Ticket #4349944**: Resolved the HTTP POST command for handling of empty path values in OCSP URIs.
#### NanoSec 7.0
- **Ticket #4327273**: Resolved an issue allowing ESP cipher stronger than IKE cipher.
**Files modified:**
`src/ike/ike_childsa.c`, `src/ike/ike_childsa.h`, `src/ike/ike_state.c`, and `src/ike2/ike2_state.c`.
- **Ticket #4317881**: Resolved the handling of *Quick Mode RESPONDER-LIFETIME* notification not accepted by Windows clients.
**Files modified:**
`src/examples/ike_example.c`, `src/ike/ike_state.c`, and `src/ike/ike_state.h`.
#### OpenSSL Connector 7.0
- **Ticket #4311467**: Adjusted error reporting so *ERR_SSL_PROTOCOL_VERSION* is returned instead of *ERR_SSL_FATAL_ALERT*.
- **Ticket #04284238**: Resolved the incorrect client reaction to corrupted encrypted handshake messages.
#### NanoCrypto 7.0
**Ticket #04277714**: Added support for *SubjectKeyIdentifier* form in *CMS SignerIdentifier*.
**Files modified**:
`src/crypto/cms.h`, `src/crypto/cms.inc`, `src/crypto/moccms_decode.c`, `src/crypto/moccms_util.c`, `src/crypto/pkcs7.c`, and `src/crypto/pkcs7.h`.
#### Common
- **Ticket #4437055**: Resolved the build warnings.
**Files modified**:
`src/common/hash_value.c` and `src/common/mocana.h`.
- **Ticket #4335167**: Resolved an issue with top-level X.509 data type not being fully validated during certificate parsing.
## U6 (major release)
DigiCert® TrustCore SDK U6 is a major release that extends TrustCore SDK with the following new features, enhancements, and fixes.
> **Important**
>
> ## Upgrade considerations
>
> For FIPS customers using a FIPS version of NanoCrypto v7.0.0_u1f, please build with `--fips-700-compat` or `fips_700_compat=true` option.
### New
#### NanoCrypto 7.0
- **Post Quantum Cryptographic Algorithms Support**: Added support for FIPS 203, 204, 205 – ML-KEM, ML-DSA, and SLH-DSA.
#### NanoSSL 7.0
- **Hybrid Key Exchange with PQC**: Added support for Hybrid Key Exchange in TLSv1.3 using X25519MLKEM768 and SecP256r1MLKEM768.
#### NanoMQTT 7.0
- **MQTT Protocol Support**: Added support for MQTT protocol versions v3.1.1 and v5.
#### NanoCert
- **EST Client Support**: Added support for EST client functionality.
### Enhancements
#### NanoSSH 7.0
- **DSA Disabled by Default**: DSA is disabled by default to comply with RFC 8332.
### Fixes
#### NanoSSL 7.0
- **Ticket #04187099**: Resolved a memory leak issue.
**Files modified:**
- *src/ssl/server/ssl_server.inc*
#### NanoSSH 7.0
- **Ticket #04186917**: Added support for RSA-SHA2 Client public key for NanoSSH Server.
**Files modified:**
- *src/ssh/ssh_auth.c*
- *src/ssh/ssh_context.h*
- *src/ssh/ssh_defs.h*
- *src/ssh/ssh_trans.c*
- *src/ssh/dump_mesg.c*
#### OpenSSL Connector 7.0
- **Ticket #03967808**: Added fix for a Connector build failure on ARM64 due to an unrecognized command-line option `-mno-sse2`.
**Files modified:**
- *make/Makefile.ssl*
- *projects/shared_cmake/MocPlatform.cmake*
- *projects/shared_cmake/toolchains/aarch64-pokysdk-linux-toolchain.cmake*
- *projects/shared_cmake/toolchains/x86-64-pokysdk-linux-toolchain.cmake*
- **Ticket #04098358**: Added fix for OpenSSL CVE-2023-3817 by addressing excessive time spent checking the DH q parameter value in OpenSSL Connector 1.1.
**Files modified:**
- *thirdparty/openssl-1.1.1X/crypto/dh/dh_check.c*
- *thirdparty/openssl-1.1.1X/crypto/dh/dh_err.c*
- *thirdparty/openssl-1.1.1X/crypto/err/openssl.txt*
- *thirdparty/openssl-1.1.1X/include/openssl/dh.h*
- *thirdparty/openssl-1.1.1X/include/openssl/dherr.h*
- **Ticket #04036327**: Added fix for updating the error code in debug logs.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
- *src/openssl_wrapper/ssl.h*
- *src/ssl/client/ssl_client.inc*
- **Ticket #04054495**: Resolved an issue with the OpenSSL Connector 1.1 connector where WebDAVS using neon-0.31 was not functioning.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
#### Common
- **Ticket #04172114**: Allowed SAN to be used as a critical extension when checking if a certificate can be used to sign.
**Files modified:**
- *src/asn1/parsecert.c*
- **Ticket #04110991 and #04099984**: Applied Coverity fixes.
## U5 (minor release)
`TrustCore SDK version: U5 | Date: 2024-10`
DigiCert® TrustCore SDK U5 is a minor release that extends TrustCore SDK with the following enhancements and fixes.
### Enhancements
#### NanoCrypto 7.0
- **FIPS 186-5 Compliance**: Added a new compile flag `--fips-700-compat` to ensure compatibility with the FIPS-certified binary `libmss.so` (version: REL_700_U1).
**Files modified:**
- *projects/crypto/build.sh*
### Fixes
#### NanoSSH 7.0
- **Ticket #04013814**: Resolved an issue on the NanoSSH server side when a client negotiated with `aes128-gcm@openssh.com` or `aes256-gcm@openssh.com` ciphers but no matching MAC algorithm for authentication.
**Files modified:**
- *src/ssh/ssh_context.h*
- *src/ssh/ssh_trans.c*
- **Ticket #03950943**: Fixed an issue where the NanoSSH server sent an error when the Dropbear client included `'First KEX Packet follows'` as 1 in the client key exchange initialization.
**Files modified:**
- *src/ssh/ssh_context.h*
- *src/ssh/ssh_trans.c*
#### OpenSSL Connector 7.0
- **Fix for crypt() Function**: Addressed an error in the `crypt()` function within `libssh2` when using the OpenSSL Connector 3.0.12.
**Files modified:**
- *openssl/openssl-3.0.12/providers/digicert/ciphers/digi_cipher_aes_gcm.c*
- **Ticket #03864365**: Removed `x25519` and `x448` supported groups from FIPS builds to comply with security requirements.
**Files modified:**
- *projects/nanossl/cmakeflags.txt*
- *projects/nanossl/features/mocana_eddh_flags.txt*
- *projects/nanossl/mocana_suiteb_flags.txt*
- **Ticket #03973774**: Fixed the compatibility issue where `tpm2tools` was not functioning with the OpenSSL Connector.
**Files modified:**
- *thirdparty/openssl-3.0.12/Configure*
- *thirdparty/openssl-3.0.12/providers/digiprov.c*
- *thirdparty/openssl-3.0.7/Configure*
- *thirdparty/openssl-3.0.7/providers/digiprov.c*
## U4 (major release)
`TrustCore SDK version: U4 | Date: 2024-06`
DigiCert® TrustCore SDK U4 is a major release that extends TrustCore SDK with the following enhancements and fixes.
### New
#### OpenSSL Connector 7.0
- Added support for OpenSSL 3.0.12 in OpenSSL Connector.
#### NanoSSL 7.0
- Added support for DTLS 1.3 in NanoDTLS.
### Enhancements
#### OpenSSL Connector 7.0
- **Tickets #3751120, #3781142**: Added new APIs; for OpenSSL 1.1.1, added `SSL_CTX_set_client_hello_cb`, `SSL_COMP_get0_name`, `SSL_COMP_get_id`, `SSL_CTX_get_security_level`, `SSL_SESSION_up_ref`, and `SSL_has_pending`; for OpenSSL 3.0.12, added `SSL_SESSION_set_time`.
**Files modified:**
- *src/openssl_wrapper/openssl_compat.c*
- *src/openssl_wrapper/openssl_shim.h*
- *src/openssl_wrapper/ossl_ssl.c*
- *src/openssl_wrapper/ossl_types.h*
- *src/openssl_wrapper/ossl_typesv3.h*
- *src/openssl_wrapper/ssl.h*
- *src/ssl/server/ssl_server.inc*
- *src/ssl/ssl.c*
- *src/ssl/sslsock.h*
### Fixes
#### NanoSSH 7.0
- **Ticket #3658904**: Fixed a vulnerability where naturally occurring computational errors in RSA signature could potentially expose private keys.
**Files modified:**
- *src/ike/ike_state.c*
- *src/ike2/ike2_state.c*
- *src/ssh/ssh_rsa.c*
- *src/ssl/server/ssl_server.inc*
- *src/ssl/sslsock.c*
- **CVE-2023-48795, CVE-2023-46445, CVE-2023-46446**: Addressed the Terrapin Attack by disabling chacha20 and poly1305 by default in build scripts.
**Files modified:**
- *projects/crypto/build.bat*
- *projects/crypto/build.sh*
- *projects/crypto/options/enable-ssh-no-chachapoly/mocana_flags.txt*
- *projects/nanossh/CMakeLists.txt*
- *projects/nanossh/build.bat*
- *projects/nanossh/build.sh*
- *projects/nanossh/cmakeflags.txt*
- *projects/nanossh/mocana_chachapoly_flags.txt*
- *projects/nanossh/ssh_client/mocana_flags.txt*
- *projects/nanossh/ssh_server/mocana_flags.txt*
- *scripts/nanossh/build_nanossh_target_nux.sh*
- *scripts/nanossh/ssh_client/build_target_tap_local_ncrypto.bat*
- **Ticket #03854089:** SSH Server with Radius Authentication flow will utilize the extension. Added Message-Authenticator attribute to Access-Request packets.
**Files modified:**
- *src/radius/radius.c*
#### OpenSSL Connector 7.0
- **Tickets #3834648, #3706260**: Added the `--disable-tcp-init` flag in build scripts to fix SIGALRM not working when linking to libcrypto.
**Files modified:**
- *make/Makefile.ssl*
- *projects/initialize/CMakeLists.txt*
- *projects/initialize/build.sh*
- **Ticket #3788916**: Fixed implementation of SSL_set_verify function.
**Files modified:**
- *src/openssl_wrapper/openssl_compat.c*
- *src/openssl_wrapper/ossl_ssl.c*
- *src/ssl/ssl.c*
- **Ticket #3717372**: Fixed OpenSSL Connector not sending ALERT on cryptographic handshake error per RFC 5246.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
- *src/ssl/client/ssl_client.inc*
- *src/ssl/sslsock.c*
- **Ticket #2950173**: Extended the `--keylog` feature to printout TLSv1.2 master secret keys for Wireshark.
**Files modified:**
- *src/ssl/sslsock.c*
- **Ticket #3821075**: Added null check when freeing hash table in OpenSSL Connector.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
- **Ticket #3740353**: Fix for DTLS to work with OpenSSL 3.0.12 connector and radsecproxy.
**Files modified:**
- *src/dtls/dtlssock.inc*
- *src/openssl_wrapper/ossl_ssl.c*
- **Ticket #3746253**: Fix for compatibility with TLSv1.2 XMC server and OpenSSL Connector 3.0.12.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
- **Ticket #3728300**: Added support to `SSL_CTX_get_security_callback`.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
- **Ticket #3678174**: Fixed symbol not found error when using lighttpd with OpenSSL Connector.
**Files modified:**
- *src/openssl_wrapper/ossl_ssl.c*
- **CVE-2016-2183, SP800-131A rev2**: Disabled Triple-DES by default in build scripts to enhance cryptographic security.
**Files modified:**
- *make/Makefile.ssl*
- *projects/nanossl/CMakeLists.txt*
- *projects/nanossl/build.bat*
- *projects/nanossl/build.sh*
- *scripts/nanossl/openssl_connector/build_openssl_connector_cap.bat*
- *scripts/nanossl/openssl_connector/build_openssl_connector_cap.sh*
- *scripts/nanossl/openssl_connector/build_openssl_connector_cap_android.sh*
- *scripts/nanossl/openssl_connector/build_openssl_connector_tap_local.sh*
- *scripts/nanossl/openssl_connector/build_openssl_connector_tap_local_android.sh*
#### NanoCrypto 7.0
- **Ticket #3522713:** Added build flag to enable vlong const time ops for CVE-2022-4304.
**Files modified:**
- *projects/common/CMakeLists.txt*
- *projects/common/build.sh*
- *projects/common/mocana_flags.txt*
- *projects/common/mocana_vlong_flags.txt*
- *projects/common/mss_sources.txt*
- *projects/crypto/build.sh*
- *projects/crypto/options/default/mocana_flags.txt*
- *projects/crypto/options/enable-vlong-const/mocana_flags.txt*
- **Ticket #3670987:** Added new CMS APIs and updated example.
**Files modified:**
- *projects/cryptointerface_example/example_sources.txt*
- *src/crypto/cms.h*
- *src/crypto/cms.inc*
- *src/crypto/pkcs7.c*
- *crypto_interface/example/cert.der*
- *crypto_interface/example/crypto_interface_cms_example.c*
- *crypto_interface/example/crypto_interface_example.c*
- *crypto_interface/example/crypto_interface_moccms_streaming_example.c*
- *crypto_interface/example/key.der*
- **Ticket #3742948:** Support for the `rsassaPss` cert generated by openssl-3.0 tool.
**Files modified:**
- *src/crypto/malgo_id.c*
#### NanoSec 7.0
- **Ticket #3582302:** Fixed build issue in the kernel module for IPv6.
**Files modified:**
- *src/examples/ipsec/linux/gpl/nf_ipsecadm.c*
- *src/examples/ipsec/mocana/moc_ipsec_main.c*
- **Ticket #3658904:** Fixed vulnerability where naturally occurring computational errors resulted in a faulty RSA signature, which could be used to compute the private portion of the underlying key pair.
**Files modified:**
- *src/ike/ike_state.c*
- *src/ike2/ike2_state.c*
- *src/ssh/ssh_rsa.c*
- *src/ssl/server/ssl_server.inc*
- *src/ssl/sslsock.c*
#### NanoSSL 7.0
- **Ticket #3658904:** Fixed vulnerability where naturally occurring computational errors resulted in a faulty RSA signature, which could be used to compute the private portion of the underlying key pair.
**Files modified:**
- *src/ike/ike_state.c*
- *src/ike2/ike2_state.c*
- *src/ssh/ssh_rsa.c*
- *src/ssl/server/ssl_server.inc*
- *src/ssl/sslsock.c*
#### Common
- **Ticket #3767692:** Fix for Coverity reported issues.
**Files modified:**
- *Various*