git: 677f4c2bf26a - main - security/wolfssl: Update to v5.1.0

From: Santhosh Raju <fox_at_FreeBSD.org>
Date: Thu, 30 Dec 2021 01:27:08 UTC
The branch main has been updated by fox:

URL: https://cgit.FreeBSD.org/ports/commit/?id=677f4c2bf26ab6f81b00c68714b807b2faaf9c89

commit 677f4c2bf26ab6f81b00c68714b807b2faaf9c89
Author:     Santhosh Raju <fox@FreeBSD.org>
AuthorDate: 2021-12-30 01:23:21 +0000
Commit:     Santhosh Raju <fox@FreeBSD.org>
CommitDate: 2021-12-30 01:26:14 +0000

    security/wolfssl: Update to v5.1.0
    
    Changes since v5.0.0:
    
    wolfSSL Release 5.1.0 (Dec 27, 2021)
    
    Release 5.1.0 of wolfSSL embedded TLS has bug fixes and new features including:
    Vulnerabilities
    
      * [Low] Potential for DoS attack on a wolfSSL client due to processing hello
        packets of the incorrect side. This affects only connections using TLS v1.2
        or less that have also been compromised by a man in the middle
        attack. Thanks to James Henderson, Mathy Vanhoef, Chris M. Stone, Sam
        L. Thomas, Nicolas Bailleut, and Tom Chothia (University of Birmingham, KU
        Leuven, ENS Rennes for the report.
      * [Low] Client side session resumption issue once the session resumption cache
        has been filled up. The hijacking of a session resumption has been
        demonstrated so far with only non verified peer connections. That is where
        the client is not verifying the server’s CA that it is connecting to. There
        is the potential though for other cases involving proxies that are verifying
        the server to be at risk, if using wolfSSL in a case involving proxies use
        wolfSSL_get1_session and then wolfSSL_SESSION_free when done where
        possible. If not adding in the session get/free function calls we recommend
        that users of wolfSSL that are resuming sessions update to the latest
        version (wolfSSL version 5.1.0 or later). Thanks to the UK's National Cyber
        Security Centre (NCSC) for the report.
    
    New Feature Additions
    Ports
    
      * Curve25519 support with NXP SE050 added
      * Renesas RA6M4 support with SCE Protected Mode and FSP 3.5.0
      * Renesas TSIP 1.14 support for RX65N/RX72N
    
    Post Quantum
    
      * Post quantum resistant algorithms used with Apache port
      * NIST round 3 FALCON Signature Scheme support added to TLS 1.3 connections
      * FALCON added to the benchmarking application
      * Testing of cURL with wolfSSL post quantum resistant build
    
    Compatibility Layer Additions
    
      * Updated NGINX port to NGINX version 1.21.4
      * Updated Apache port to Apache version 2.4.51
      * Add support for SSL_OP_NO_TLSv1_2 flag with wolfSSL_CTX_set_options function
      * Support added for the functions
          - SSL_CTX_get_max_early_data
          - SSL_CTX_set_max_early_data
          - SSL_set_max_early_data
          - SSL_get_max_early_data
          - SSL_CTX_clear_mode
          - SSL_CONF_cmd_value_type
          - SSL_read_early_data
          - SSL_write_early_data
    
    Misc.
    
      * Crypto callback support for AES-CCM added. A callback function can be
        registered and used instead of the default AES-CCM implementation in
        wolfSSL.
      * Added AES-OFB to the FIPS boundary for future FIPS validations.
      * Add support for custom OIDs used with CSR (certificate signing request)
        generation using the macro WOLFSSL_CUSTOM_OID
      * Added HKDF extract callback function for use with TLS 1.3
      * Add variant from RFC6979 of deterministic ECC signing that can be enabled
        using the macro WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT
      * Added the function wc_GetPubKeyDerFromCert to get the public key from a
        DecodedCert structure
      * Added the functions wc_InitDecodedCert, wc_ParseCert and wc_FreeDecodedCert
        for access to decoding a certificate into a DecodedCert structure
      * Added the macro WOLFSSL_ECC_NO_SMALL_STACK for hybrid builds where the
        numerous malloc/free with ECC is undesired but small stack use is desired
        throughout the rest of the library
      * Added the function wc_d2i_PKCS12_fp for reading a PKCS12 file and parsing it
    
    Fixes
    PORT Fixes
    
      * Building with Android wpa_supplicant and KeyStore
      * Setting initial value of CA certificate with TSIP enabled
      * Cryptocell ECC build fix and fix with RSA disabled
      * IoT-SAFE improvement for Key/File slot ID size, fix for C++ compile, and
        fixes for retrieving the public key after key generation
    
    Math Library Fixes
    
      * Check return values on TFM library montgomery function in case the system
        runs out of memory. This resolves an edge case of invalid ECC signatures
        being created.
      * SP math library sanity check on size of values passed to sp_gcd.
      * SP math library sanity check on exponentiation by 0 with mod_exp
      * Update base ECC mp_sqrtmod_prime function to handle an edge case of zero
      * TFM math library with Intel MULX multiply fix for carry in assembly code
    
    Misc.
    
      * Fix for potential heap buffer overflow with compatibility layer PEM parsing
      * Fix for edge memory leak case with an error encountered during TLS
        resumption
      * Fix for length on inner sequence created with wc_DhKeyToDer when handling
        small DH keys
      * Fix for sanity check on input argument to DSA sign and verify
      * Fix for setting of the return value with ASN1 integer get on an i386 device
      * Fix for BER to DER size checks with PKCS7 decryption
      * Fix for memory leak with PrintPubKeyEC function in compatibility layer
      * Edge case with deterministic ECC key generation when the private key has
        leading 0’s
      * Fix for build with OPENSSL_EXTRA and NO_WOLFSSL_STUB both defined
      * Use page aligned memory with ECDSA signing and KCAPI
      * Skip expired sessions for TLS 1.3 rather than turning off the resume
        behavior
      * Fix for DTLS handling dropped or retransmitted messages
    
    Improvements/Optimizations
    Build Options and Warnings
    
      * Bugfix: could not build with liboqs and without DH enabled
      * Build with macro NO_ECC_KEY_EXPORT fixed
      * Fix for building with the macro HAVE_ENCRYPT_THEN_MAC when session export is
        enabled
      * Building with wolfSentry and HAVE_EX_DATA macro set
    
    Math Libraries
    
      * Improvement for performance with SP C implementation of montgomery reduction
        for ECC (P256 and P384) and SP ARM64 implementation for ECC (P384)
      * With SP math handle case of dividing by length of dividend
      * SP math improvement for lo/hi register names to be used with older GCC
        compilers
    
    Misc.
    
      * ASN name constraints checking code refactor for better efficiency and
        readability
      * Refactor of compatibility layer stack free’ing calls to simplify and reduce
        code
      * Scrubbed code for trailing spaces, hard tabs, and any control characters
      * Explicit check that leaf certificate's public key type match cipher suite
        signature algorithm
      * Additional NULL sanity checks on WOLFSSL struct internally and improve
        switch statement fallthrough
      * Retain OCSP error value when CRL is enabled with certificate parsing
      * Update to NATIVE LwIP support for TCP use
      * Sanity check on PEM size when parsing a PEM with OpenSSL compatibility layer
        API.
      * SWIG wrapper was removed from the codebase in favor of dedicated Java and
        Python wrappers.
      * Updates to bundled example client for when to load the CA, handling print
        out of IP alt names, and printing out the peers certificate in PEM format
      * Handling BER encoded inner content type with PKCS7 verify
      * Checking for SOCKET_EPIPE errors from low level socket
      * Improvements to cleanup in the case that wolfSSL_Init fails
      * Update test and example certificates expiration dates
---
 security/wolfssl/Makefile  | 2 +-
 security/wolfssl/distinfo  | 6 +++---
 security/wolfssl/pkg-plist | 5 ++++-
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/security/wolfssl/Makefile b/security/wolfssl/Makefile
index 1308df95d775..adc6490ed886 100644
--- a/security/wolfssl/Makefile
+++ b/security/wolfssl/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	wolfssl
-PORTVERSION=	5.0.0
+PORTVERSION=	5.1.0
 CATEGORIES=	security devel
 MASTER_SITES=	https://www.wolfssl.com/ \
 		LOCAL/fox
diff --git a/security/wolfssl/distinfo b/security/wolfssl/distinfo
index 56c1d761fc0a..a3ba150d4ada 100644
--- a/security/wolfssl/distinfo
+++ b/security/wolfssl/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1636173634
-SHA256 (wolfssl-5.0.0.zip) = 6a99c06ca0fdc6fd538df46f7bcaf8856ecd5e7db8b4eb056c117f687778bdb5
-SIZE (wolfssl-5.0.0.zip) = 12325977
+TIMESTAMP = 1640826369
+SHA256 (wolfssl-5.1.0.zip) = 06763e1910deaa1d5ac9a0ddcc230e01f423eca9275d3041ad844a6a85a7b1ac
+SIZE (wolfssl-5.1.0.zip) = 12557753
diff --git a/security/wolfssl/pkg-plist b/security/wolfssl/pkg-plist
index 330a190aa714..dbce6ebe9635 100644
--- a/security/wolfssl/pkg-plist
+++ b/security/wolfssl/pkg-plist
@@ -103,6 +103,7 @@ include/wolfssl/openssl/asn1t.h
 include/wolfssl/openssl/bio.h
 include/wolfssl/openssl/bn.h
 include/wolfssl/openssl/buffer.h
+include/wolfssl/openssl/camellia.h
 include/wolfssl/openssl/cmac.h
 include/wolfssl/openssl/cms.h
 include/wolfssl/openssl/compat_types.h
@@ -125,6 +126,7 @@ include/wolfssl/openssl/hmac.h
 include/wolfssl/openssl/lhash.h
 include/wolfssl/openssl/md4.h
 include/wolfssl/openssl/md5.h
+include/wolfssl/openssl/modes.h
 include/wolfssl/openssl/obj_mac.h
 include/wolfssl/openssl/objects.h
 include/wolfssl/openssl/ocsp.h
@@ -181,6 +183,7 @@ include/wolfssl/wolfcrypt/eccsi.h
 include/wolfssl/wolfcrypt/ed25519.h
 include/wolfssl/wolfcrypt/ed448.h
 include/wolfssl/wolfcrypt/error-crypt.h
+include/wolfssl/wolfcrypt/falcon.h
 include/wolfssl/wolfcrypt/fe_448.h
 include/wolfssl/wolfcrypt/fe_operations.h
 include/wolfssl/wolfcrypt/fips_test.h
@@ -229,7 +232,7 @@ include/wolfssl/wolfio.h
 lib/libwolfssl.a
 lib/libwolfssl.so
 lib/libwolfssl.so.30
-lib/libwolfssl.so.30.0.0
+lib/libwolfssl.so.30.1.0
 libdata/pkgconfig/wolfssl.pc
 %%PORTDOCS%%%%DOCSDIR%%/README.txt
 %%PORTDOCS%%%%DOCSDIR%%/example/client.c