diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index 4369d0790f..2bab9b6ff2 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -6,7 +6,7 @@ If you discover a vulnerability, please report it to support@wolfssl.com
1. Include a detailed description
2. Include method to reproduce and/or method of discovery
- 3. We will evaulate the report promptly and respond to you with findings.
+ 3. We will evaluate the report promptly and respond to you with findings.
4. We will credit you with the report if you would like.
**Please keep the vulnerability private** until a fix has been released.
diff --git a/.github/workflows/docker-Espressif.yml b/.github/workflows/docker-Espressif.yml
new file mode 100644
index 0000000000..98d0e0ffdb
--- /dev/null
+++ b/.github/workflows/docker-Espressif.yml
@@ -0,0 +1,38 @@
+name: Test Espressif examples on various official Docker containers
+concurrency:
+ group: ${{ github.ref }}
+
+on:
+ push:
+ branches: [ 'master', 'main', 'release/**' ]
+ pull_request:
+ branches: [ '*' ]
+
+jobs:
+ espressif_latest:
+ name: Test Espressif on latest Docker container
+ runs-on: ubuntu-latest
+ container:
+ image: espressif/idf:latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Initialize Espressif IDE and build examples
+ run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh
+ espressif_v4_4:
+ name: Test Espressif on v4.4 Docker container
+ runs-on: ubuntu-latest
+ container:
+ image: espressif/idf:release-v4.4
+ steps:
+ - uses: actions/checkout@v3
+ - name: Initialize Espressif IDE and build examples
+ run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh
+ espressif_v5_0:
+ name: Test Espressif on v5.0 Docker container
+ runs-on: ubuntu-latest
+ container:
+ image: espressif/idf:release-v5.0
+ steps:
+ - uses: actions/checkout@v3
+ - name: Initialize Espressif IDE and build examples
+ run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh
diff --git a/.github/workflows/macos-check.yml b/.github/workflows/macos-check.yml
deleted file mode 100644
index 465add45bf..0000000000
--- a/.github/workflows/macos-check.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-name: macOS Build Test
-
-on:
- push:
- branches: [ '*' ]
- pull_request:
- branches: [ '*' ]
-
-jobs:
- build:
-
- runs-on: macos-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: brew
- run: brew install automake libtool
- - name: autogen
- run: ./autogen.sh
- - name: configure
- run: ./configure
- - name: make
- run: make
- - name: make check
- run: make check
- - name: make distcheck
- run: make distcheck
-
diff --git a/.github/workflows/os-check.yml b/.github/workflows/os-check.yml
new file mode 100644
index 0000000000..8acf5dd18b
--- /dev/null
+++ b/.github/workflows/os-check.yml
@@ -0,0 +1,160 @@
+name: GitHub Action Tests
+concurrency:
+ group: ${{ github.ref }}
+
+on:
+ push:
+ branches: [ 'master', 'main', 'release/**' ]
+ pull_request:
+ branches: [ '*' ]
+
+jobs:
+ macos_build:
+ name: macOS Build Test
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: brew
+ run: brew install automake libtool
+
+ - name: autogen
+ run: ./autogen.sh
+
+ - name: configure make check
+ run: |
+ ./configure
+ make
+ make check
+ make distcheck
+
+ - name: configure all make check
+ run: |
+ ./configure --enable-all
+ make
+ make check
+ make distcheck
+
+ - name: configure all ASN template
+ run: |
+ ./configure --enable-all --enable-asn=template
+ make
+ make check
+ make distcheck
+
+ - name: make user_settings_all.h
+ run: |
+ cp ./examples/configs/user_settings_all.h user_settings.h
+ ./configure --enable-usersettings
+ make
+ make check
+
+ - name: user_settings_all.h with compatibility layer
+ run: |
+ cp ./examples/configs/user_settings_all.h user_settings.h
+ sed -i -e "s/if 0/if 1/" user_settings.h
+ ./configure --enable-usersettings
+ make
+ make check
+
+ - name: user_settings_min_ecc.h
+ run: |
+ cp ./examples/configs/user_settings_min_ecc.h user_settings.h
+ ./configure --enable-usersettings --disable-examples
+ make
+ ./wolfcrypt/test/testwolfcrypt
+
+ - name: user_settings_wolfboot_keytools.h
+ run: |
+ cp ./examples/configs/user_settings_wolfboot_keytools.h user_settings.h
+ ./configure --enable-usersettings --disable-examples
+ make
+ ./wolfcrypt/test/testwolfcrypt
+
+ ubuntu_build:
+ name: Ubuntu Build Test
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: autogen
+ run: ./autogen.sh
+
+ - name: configure make check
+ run: |
+ ./configure
+ make
+ make check
+ make distcheck
+
+ - name: configure all make check
+ run: |
+ ./configure --enable-all
+ make
+ make check
+ make distcheck
+
+ - name: configure all ASN template
+ run: |
+ ./configure --enable-all --enable-asn=template
+ make
+ make check
+ make distcheck
+
+ - name: make user_settings_all.h
+ run: |
+ cp ./examples/configs/user_settings_all.h user_settings.h
+ ./configure --enable-usersettings
+ make
+ make check
+
+ - name: user_settings_all.h with compatibility layer
+ run: |
+ cp ./examples/configs/user_settings_all.h user_settings.h
+ sed -i -e "s/if 0/if 1/" user_settings.h
+ ./configure --enable-usersettings
+ make
+ make check
+
+ - name: user_settings_min_ecc.h
+ run: |
+ cp ./examples/configs/user_settings_min_ecc.h user_settings.h
+ ./configure --enable-usersettings --disable-examples
+ make
+ ./wolfcrypt/test/testwolfcrypt
+
+ - name: user_settings_wolfboot_keytools.h
+ run: |
+ cp ./examples/configs/user_settings_wolfboot_keytools.h user_settings.h
+ ./configure --enable-usersettings --disable-examples
+ make
+ ./wolfcrypt/test/testwolfcrypt
+
+ windows_build:
+ name: Windows Build Test
+ runs-on: windows-latest
+ env:
+ # Path to the solution file relative to the root of the project.
+ SOLUTION_FILE_PATH: wolfssl64.sln
+
+ # Configuration type to build.
+ # You can convert this to a build matrix if you need coverage of multiple configuration types.
+ # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ BUILD_CONFIGURATION: Release
+ BUILD_PLATFORM: x64
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/setup-msbuild@v1
+
+ - name: Restore NuGet packages
+ working-directory: ${{env.GITHUB_WORKSPACE}}
+ run: nuget restore ${{env.SOLUTION_FILE_PATH}}
+
+ - name: Build
+ working-directory: ${{env.GITHUB_WORKSPACE}}
+ # Add additional options to the MSBuild command line here (like platform or verbosity level).
+ # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
+ run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{env.BUILD_PLATFORM}} /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
+
diff --git a/.github/workflows/ubuntu-check.yml b/.github/workflows/ubuntu-check.yml
deleted file mode 100644
index c851a58492..0000000000
--- a/.github/workflows/ubuntu-check.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Ubuntu Build Test
-
-on:
- push:
- branches: [ '*' ]
- pull_request:
- branches: [ '*' ]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: autogen
- run: ./autogen.sh
- - name: configure
- run: ./configure
- - name: make
- run: make
- - name: make check
- run: make check
- - name: make distcheck
- run: make distcheck
-
diff --git a/.github/workflows/windows-check.yml b/.github/workflows/windows-check.yml
deleted file mode 100644
index 58d17fdebd..0000000000
--- a/.github/workflows/windows-check.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Windows Build Test
-
-on:
- push:
- branches: [ '*' ]
- pull_request:
- branches: [ '*' ]
-
-env:
- # Path to the solution file relative to the root of the project.
- SOLUTION_FILE_PATH: wolfssl64.sln
-
- # Configuration type to build.
- # You can convert this to a build matrix if you need coverage of multiple configuration types.
- # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
- BUILD_CONFIGURATION: Release
- BUILD_PLATFORM: x64
-
-jobs:
- build:
- runs-on: windows-latest
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Add MSBuild to PATH
- uses: microsoft/setup-msbuild@v1
-
- - name: Restore NuGet packages
- working-directory: ${{env.GITHUB_WORKSPACE}}
- run: nuget restore ${{env.SOLUTION_FILE_PATH}}
-
- - name: Build
- working-directory: ${{env.GITHUB_WORKSPACE}}
- # Add additional options to the MSBuild command line here (like platform or verbosity level).
- # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
- run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{env.BUILD_PLATFORM}} /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
-
diff --git a/Docker/Dockerfile b/Docker/Dockerfile
new file mode 100644
index 0000000000..b55ba79645
--- /dev/null
+++ b/Docker/Dockerfile
@@ -0,0 +1,11 @@
+ARG DOCKER_BASE_IMAGE=ubuntu:22.04
+FROM $DOCKER_BASE_IMAGE
+
+RUN DEBIAN_FRONTEND=noninteractive apt update && apt install -y build-essential autoconf libtool git gdb iputils-ping
+
+ARG USER=docker
+ARG UID=1000
+ARG GID=1000
+RUN groupadd -f -g ${GID} docker && useradd -ms /bin/bash ${USER} -u ${UID} -g ${GID}
+
+USER ${UID}:${GID}
\ No newline at end of file
diff --git a/Docker/README.md b/Docker/README.md
new file mode 100644
index 0000000000..8855aba306
--- /dev/null
+++ b/Docker/README.md
@@ -0,0 +1,13 @@
+# Overview
+This is a simple Docker environment for compiling and running WolfSSL. Use `run.sh` to build everything (Docker container, WolfSSL, etc.). This script takes in arguments that can be passed to `./configure`. For example: `run.sh --enable-all`
+
+When the compilation and tests succeed, you will be dropped in to a shell environment within the container. This can be useful to build other things within the environment.
+
+# FAQ
+## permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
+You need to be added to the `docker` group to run Docker containers. Run `sudo usermod -aG docker $USER`. You may need to restart the Docker daemon.
+
+## Unable to access symlinked files outside of WolfSSL
+The volume mounted in the Docker container needs to have all files that your compilation will need. To solve this, you have a couple options:
+1. Change the `WOLFSSL_DIR` variable in the `run.sh` to one higher up (by adding `/..` to the path). Then update the `docker build` to include the correct path to the Dockerfile and the `docker run` argument to the working directory (`-w`) to the WolfSSL source directory
+2. Move the external repository to within the WolfSSL directory. For example create an `external` folder which has your files. This route may have complications when stashing Git work.
\ No newline at end of file
diff --git a/Docker/include.am b/Docker/include.am
new file mode 100644
index 0000000000..c6de20108f
--- /dev/null
+++ b/Docker/include.am
@@ -0,0 +1,7 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+EXTRA_DIST+= Docker/Dockerfile
+EXTRA_DIST+= Docker/run.sh
+EXTRA_DIST+= Docker/README.md
\ No newline at end of file
diff --git a/Docker/run.sh b/Docker/run.sh
new file mode 100755
index 0000000000..30871c6756
--- /dev/null
+++ b/Docker/run.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+echo "Running with \"${*}\"..."
+
+# Assume we're in wolfssl/Docker
+WOLFSSL_DIR=$(builtin cd ${BASH_SOURCE%/*}/..; pwd)
+
+docker build -t wolfssl --build-arg UID=$(id -u) --build-arg GID=$(id -g) "${WOLFSSL_DIR}/Docker" && \
+ docker run -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl /bin/bash -c "./autogen.sh && ./configure ${*@Q} && make" && \
+ docker run -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl /bin/bash
+
+exitval=$?
+echo "Exited with error code $exitval"
+exit $exitval
diff --git a/IDE/ARDUINO/sketches/wolfssl_client/wolfssl_client.ino b/IDE/ARDUINO/sketches/wolfssl_client/wolfssl_client.ino
index d3ae54f73a..b50e9f126e 100644
--- a/IDE/ARDUINO/sketches/wolfssl_client/wolfssl_client.ino
+++ b/IDE/ARDUINO/sketches/wolfssl_client/wolfssl_client.ino
@@ -1,6 +1,6 @@
/* wolfssl_client.ino
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ARDUINO/sketches/wolfssl_server/wolfssl_server.ino b/IDE/ARDUINO/sketches/wolfssl_server/wolfssl_server.ino
index c8d39428cf..f331e7810f 100644
--- a/IDE/ARDUINO/sketches/wolfssl_server/wolfssl_server.ino
+++ b/IDE/ARDUINO/sketches/wolfssl_server/wolfssl_server.ino
@@ -1,6 +1,6 @@
/* wolfssl_server.ino
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/AURIX/Cpu0_Main.c b/IDE/AURIX/Cpu0_Main.c
index 396581878c..536ddbb10c 100644
--- a/IDE/AURIX/Cpu0_Main.c
+++ b/IDE/AURIX/Cpu0_Main.c
@@ -1,6 +1,6 @@
/* Cpu0_Main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/AURIX/user_settings.h b/IDE/AURIX/user_settings.h
index d802301b83..216bb37928 100644
--- a/IDE/AURIX/user_settings.h
+++ b/IDE/AURIX/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/AURIX/wolf_main.c b/IDE/AURIX/wolf_main.c
index 1a71ad813b..9f90038985 100644
--- a/IDE/AURIX/wolf_main.c
+++ b/IDE/AURIX/wolf_main.c
@@ -1,6 +1,6 @@
/* wolf_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/CRYPTOCELL/main.c b/IDE/CRYPTOCELL/main.c
index 866b3127f8..cc596fe8fb 100644
--- a/IDE/CRYPTOCELL/main.c
+++ b/IDE/CRYPTOCELL/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/CRYPTOCELL/user_settings.h b/IDE/CRYPTOCELL/user_settings.h
index 6e051c33d7..8af4f54f57 100644
--- a/IDE/CRYPTOCELL/user_settings.h
+++ b/IDE/CRYPTOCELL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/DEOS/deos_malloc.c b/IDE/ECLIPSE/DEOS/deos_malloc.c
index 0421e7fb19..b944e3bf05 100644
--- a/IDE/ECLIPSE/DEOS/deos_malloc.c
+++ b/IDE/ECLIPSE/DEOS/deos_malloc.c
@@ -1,6 +1,6 @@
/* deos_malloc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/DEOS/tls_wolfssl.c b/IDE/ECLIPSE/DEOS/tls_wolfssl.c
index aabf7acce2..41149aa442 100644
--- a/IDE/ECLIPSE/DEOS/tls_wolfssl.c
+++ b/IDE/ECLIPSE/DEOS/tls_wolfssl.c
@@ -1,6 +1,6 @@
/* tls_wolfssl.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/DEOS/tls_wolfssl.h b/IDE/ECLIPSE/DEOS/tls_wolfssl.h
index 520cdad0cf..02a0e53161 100644
--- a/IDE/ECLIPSE/DEOS/tls_wolfssl.h
+++ b/IDE/ECLIPSE/DEOS/tls_wolfssl.h
@@ -1,6 +1,6 @@
/* tls_wolfssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/DEOS/user_settings.h b/IDE/ECLIPSE/DEOS/user_settings.h
index 49853df5fc..a22d0a32db 100644
--- a/IDE/ECLIPSE/DEOS/user_settings.h
+++ b/IDE/ECLIPSE/DEOS/user_settings.h
@@ -1,6 +1,6 @@
/* user_setting.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/MICRIUM/client_wolfssl.c b/IDE/ECLIPSE/MICRIUM/client_wolfssl.c
index 43c31b74ca..43d2e9be86 100644
--- a/IDE/ECLIPSE/MICRIUM/client_wolfssl.c
+++ b/IDE/ECLIPSE/MICRIUM/client_wolfssl.c
@@ -1,6 +1,6 @@
/* client_wolfssl.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/MICRIUM/client_wolfssl.h b/IDE/ECLIPSE/MICRIUM/client_wolfssl.h
index 3b569f0383..f86cc98d51 100644
--- a/IDE/ECLIPSE/MICRIUM/client_wolfssl.h
+++ b/IDE/ECLIPSE/MICRIUM/client_wolfssl.h
@@ -1,6 +1,6 @@
/* client_wolfssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/MICRIUM/server_wolfssl.c b/IDE/ECLIPSE/MICRIUM/server_wolfssl.c
index 43cdd7dc96..225aaa2eef 100644
--- a/IDE/ECLIPSE/MICRIUM/server_wolfssl.c
+++ b/IDE/ECLIPSE/MICRIUM/server_wolfssl.c
@@ -1,6 +1,6 @@
/* server_wolfssl.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/MICRIUM/server_wolfssl.h b/IDE/ECLIPSE/MICRIUM/server_wolfssl.h
index 5e96459f1d..715e17b07c 100644
--- a/IDE/ECLIPSE/MICRIUM/server_wolfssl.h
+++ b/IDE/ECLIPSE/MICRIUM/server_wolfssl.h
@@ -1,6 +1,6 @@
/* server_wolfssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/MICRIUM/user_settings.h b/IDE/ECLIPSE/MICRIUM/user_settings.h
index feb3ec340d..b6b93fce84 100644
--- a/IDE/ECLIPSE/MICRIUM/user_settings.h
+++ b/IDE/ECLIPSE/MICRIUM/user_settings.h
@@ -1,6 +1,6 @@
/* user_setting.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/MICRIUM/wolfsslRunTests.c b/IDE/ECLIPSE/MICRIUM/wolfsslRunTests.c
index 6520b95f9a..99a9212e42 100644
--- a/IDE/ECLIPSE/MICRIUM/wolfsslRunTests.c
+++ b/IDE/ECLIPSE/MICRIUM/wolfsslRunTests.c
@@ -1,6 +1,6 @@
/* wolfsslRunTests.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/RTTHREAD/user_settings.h b/IDE/ECLIPSE/RTTHREAD/user_settings.h
index b74813f4a7..28157c2026 100644
--- a/IDE/ECLIPSE/RTTHREAD/user_settings.h
+++ b/IDE/ECLIPSE/RTTHREAD/user_settings.h
@@ -1,6 +1,6 @@
/* user_setting.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ECLIPSE/RTTHREAD/wolfssl_test.c b/IDE/ECLIPSE/RTTHREAD/wolfssl_test.c
index 8e82cfafa6..84d7f460a3 100644
--- a/IDE/ECLIPSE/RTTHREAD/wolfssl_test.c
+++ b/IDE/ECLIPSE/RTTHREAD/wolfssl_test.c
@@ -1,6 +1,6 @@
/* wolfsslRunTests.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/compileAllExamples.sh b/IDE/Espressif/ESP-IDF/compileAllExamples.sh
new file mode 100755
index 0000000000..4835f80f35
--- /dev/null
+++ b/IDE/Espressif/ESP-IDF/compileAllExamples.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Example usage:
+# cd wolfssl && docker run --rm -v $PWD:/project -w /project espressif/idf:latest IDE/Espressif/ESP-IDF/compileAllExamples.sh
+
+SCRIPT_DIR=$(builtin cd ${BASH_SOURCE%/*}; pwd)
+pushd ${SCRIPT_DIR} && ./setup.sh; popd
+for file in "benchmark" "client" "server" "test"; do
+ cd ${IDF_PATH}/examples/protocols/wolfssl_${file}/ && idf.py build
+ if [ $? -ne 0 ]; then
+ echo "Failed in ${file}"
+ exit 1
+ fi
+done
diff --git a/IDE/Espressif/ESP-IDF/dummy_config_h b/IDE/Espressif/ESP-IDF/dummy_config_h
index fb4cbceace..9d13eb2844 100644
--- a/IDE/Espressif/ESP-IDF/dummy_config_h
+++ b/IDE/Espressif/ESP-IDF/dummy_config_h
@@ -1,6 +1,6 @@
/* config.h - dummy
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/dummy_test_paths.h b/IDE/Espressif/ESP-IDF/dummy_test_paths.h
index cd79e7adfa..adac40c1a9 100644
--- a/IDE/Espressif/ESP-IDF/dummy_test_paths.h
+++ b/IDE/Espressif/ESP-IDF/dummy_test_paths.h
@@ -1,6 +1,6 @@
/* wolfcrypt/test/test_paths.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c
index a3c51599b1..d4d2f70d41 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.c
@@ -1,6 +1,6 @@
/* benchmark main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h b/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h
index 963ad722dd..218589206b 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main/main.h
@@ -1,7 +1,7 @@
#pragma once
/* benchmark main.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c
index 2d4d3eaf83..5c2efde660 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c
@@ -1,6 +1,6 @@
/* client-tls-callback.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h
index 165a9800df..a7bc83ea74 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/include/wifi_connect.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c
index 7379c7aa5b..dadaacca65 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/wifi_connect.c
@@ -1,6 +1,6 @@
/* wifi_connect.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -132,8 +132,8 @@ void app_main(void)
ESP_ERROR_CHECK(nvs_flash_init());
ESP_LOGI(TAG, "Initialize wifi");
-#if (ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1) || \
- (ESP_IDF_VERSION_MAJOR > 5)
+#if (ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR >= 1) || \
+ (ESP_IDF_VERSION_MAJOR >= 5)
esp_netif_init();
#else
tcpip_adapter_init();
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h
index 8729ca57d7..c8a27577e0 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/include/wifi_connect.h
@@ -1,6 +1,6 @@
/* wifi_connect.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c
index c9faec404f..8a6f85c354 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/server-tls.c
@@ -1,6 +1,6 @@
/* server-tls-callback.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c
index d05983905c..450677698f 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_server/main/wifi_connect.c
@@ -1,6 +1,6 @@
/* wifi_connect.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -133,8 +133,8 @@ void app_main(void)
ESP_LOGI(TAG, "Initialize wifi");
/* TCP/IP adapter initialization */
-#if (ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1) || \
- (ESP_IDF_VERSION_MAJOR > 5)
+#if (ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR >= 1) || \
+ (ESP_IDF_VERSION_MAJOR >= 5)
esp_netif_init();
#else
tcpip_adapter_init();
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
index ea92452f66..188bf1bd23 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c
index 4ca52e9960..c3cccde41a 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.c
@@ -1,6 +1,6 @@
/* time_helper.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h
index 179ae97301..1de6f0f8bc 100644
--- a/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h
+++ b/IDE/Espressif/ESP-IDF/examples/wolfssl_test/main/time_helper.h
@@ -1,6 +1,6 @@
#ifndef _TIME_HELPER_H
/*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/ESP-IDF/libs/component.mk b/IDE/Espressif/ESP-IDF/libs/component.mk
index 26655b4156..5234a007e1 100644
--- a/IDE/Espressif/ESP-IDF/libs/component.mk
+++ b/IDE/Espressif/ESP-IDF/libs/component.mk
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/IDE/Espressif/ESP-IDF/user_settings.h b/IDE/Espressif/ESP-IDF/user_settings.h
index 1a9b8e6841..a8ae66b896 100644
--- a/IDE/Espressif/ESP-IDF/user_settings.h
+++ b/IDE/Espressif/ESP-IDF/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Espressif/include.am b/IDE/Espressif/include.am
new file mode 100644
index 0000000000..fa101a8845
--- /dev/null
+++ b/IDE/Espressif/include.am
@@ -0,0 +1,7 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/setup_win.bat
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/dummy_test_paths.h
+EXTRA_DIST+= IDE/Espressif/ESP-IDF/compileAllExamples.sh
diff --git a/IDE/GCC-ARM/Header/user_settings.h b/IDE/GCC-ARM/Header/user_settings.h
index d9300b93ca..dad14832be 100644
--- a/IDE/GCC-ARM/Header/user_settings.h
+++ b/IDE/GCC-ARM/Header/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/GCC-ARM/Source/armtarget.c b/IDE/GCC-ARM/Source/armtarget.c
index 3095f31d0f..4780be1f1d 100644
--- a/IDE/GCC-ARM/Source/armtarget.c
+++ b/IDE/GCC-ARM/Source/armtarget.c
@@ -1,6 +1,6 @@
/* armtarget.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/GCC-ARM/Source/benchmark_main.c b/IDE/GCC-ARM/Source/benchmark_main.c
index 7c2dec6a42..e113c86ef6 100644
--- a/IDE/GCC-ARM/Source/benchmark_main.c
+++ b/IDE/GCC-ARM/Source/benchmark_main.c
@@ -1,6 +1,6 @@
/* benchmark_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/GCC-ARM/Source/test_main.c b/IDE/GCC-ARM/Source/test_main.c
index 53839c62d6..bf7216b116 100644
--- a/IDE/GCC-ARM/Source/test_main.c
+++ b/IDE/GCC-ARM/Source/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/GCC-ARM/Source/tls_client.c b/IDE/GCC-ARM/Source/tls_client.c
index cb0fb21e11..00afe6ef95 100644
--- a/IDE/GCC-ARM/Source/tls_client.c
+++ b/IDE/GCC-ARM/Source/tls_client.c
@@ -1,6 +1,6 @@
/* tls_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/GCC-ARM/Source/tls_server.c b/IDE/GCC-ARM/Source/tls_server.c
index 6f0f82dfaf..50e93d1a1e 100644
--- a/IDE/GCC-ARM/Source/tls_server.c
+++ b/IDE/GCC-ARM/Source/tls_server.c
@@ -1,6 +1,6 @@
/* tls_server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/GCC-ARM/Source/wolf_main.c b/IDE/GCC-ARM/Source/wolf_main.c
index b713aea3bc..3c705d2451 100644
--- a/IDE/GCC-ARM/Source/wolf_main.c
+++ b/IDE/GCC-ARM/Source/wolf_main.c
@@ -1,6 +1,6 @@
/* wolf_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/HEXAGON/DSP/Makefile b/IDE/HEXAGON/DSP/Makefile
index f2c31b57a7..5b73cef4db 100644
--- a/IDE/HEXAGON/DSP/Makefile
+++ b/IDE/HEXAGON/DSP/Makefile
@@ -1,6 +1,6 @@
# Makefile
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/IDE/HEXAGON/Makefile b/IDE/HEXAGON/Makefile
index 4a9a311b35..cdf6a1c59e 100644
--- a/IDE/HEXAGON/Makefile
+++ b/IDE/HEXAGON/Makefile
@@ -1,6 +1,6 @@
# Makefile
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/IDE/HEXAGON/ecc-verify-benchmark.c b/IDE/HEXAGON/ecc-verify-benchmark.c
index 56b4a0bd45..c87f915b23 100644
--- a/IDE/HEXAGON/ecc-verify-benchmark.c
+++ b/IDE/HEXAGON/ecc-verify-benchmark.c
@@ -1,6 +1,6 @@
/* ecc-verify-benchmark.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/HEXAGON/ecc-verify.c b/IDE/HEXAGON/ecc-verify.c
index 368141f9fa..ccbc18d81b 100644
--- a/IDE/HEXAGON/ecc-verify.c
+++ b/IDE/HEXAGON/ecc-verify.c
@@ -1,6 +1,6 @@
/* ecc-verify.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c b/IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c
index 4478ba421d..f5e51cd977 100644
--- a/IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c
+++ b/IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c
@@ -1,6 +1,6 @@
/* benchmark-main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/IAR-EWARM/Projects/benchmark/current_time.c b/IDE/IAR-EWARM/Projects/benchmark/current_time.c
index 1585ac31a3..0e8d402687 100644
--- a/IDE/IAR-EWARM/Projects/benchmark/current_time.c
+++ b/IDE/IAR-EWARM/Projects/benchmark/current_time.c
@@ -1,6 +1,6 @@
/* current-time.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/IAR-EWARM/Projects/common/minimum-startup.c b/IDE/IAR-EWARM/Projects/common/minimum-startup.c
index aaab4dca3d..ec79e29a4f 100644
--- a/IDE/IAR-EWARM/Projects/common/minimum-startup.c
+++ b/IDE/IAR-EWARM/Projects/common/minimum-startup.c
@@ -1,6 +1,6 @@
/* minimum-startup.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/IAR-EWARM/Projects/test/test-main.c b/IDE/IAR-EWARM/Projects/test/test-main.c
index 18c41578b6..d472d5d1e1 100644
--- a/IDE/IAR-EWARM/Projects/test/test-main.c
+++ b/IDE/IAR-EWARM/Projects/test/test-main.c
@@ -1,6 +1,6 @@
/* test-main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/IAR-MSP430/main.c b/IDE/IAR-MSP430/main.c
index 2f28d50d0c..f8ab2a19c0 100644
--- a/IDE/IAR-MSP430/main.c
+++ b/IDE/IAR-MSP430/main.c
@@ -1,6 +1,6 @@
/* MSP430 example main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/IAR-MSP430/user_settings.h b/IDE/IAR-MSP430/user_settings.h
index 7ae8b3ad4d..1e4caea9d3 100644
--- a/IDE/IAR-MSP430/user_settings.h
+++ b/IDE/IAR-MSP430/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/LPCXPRESSO/lib_wolfssl/lpc_18xx_port.c b/IDE/LPCXPRESSO/lib_wolfssl/lpc_18xx_port.c
index 55475d2856..dd27de2665 100644
--- a/IDE/LPCXPRESSO/lib_wolfssl/lpc_18xx_port.c
+++ b/IDE/LPCXPRESSO/lib_wolfssl/lpc_18xx_port.c
@@ -1,6 +1,6 @@
/* lpc_18xx_port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/LPCXPRESSO/wolf_example/src/lpc_18xx_startup.c b/IDE/LPCXPRESSO/wolf_example/src/lpc_18xx_startup.c
index cc8e998960..8f67b1c33e 100644
--- a/IDE/LPCXPRESSO/wolf_example/src/lpc_18xx_startup.c
+++ b/IDE/LPCXPRESSO/wolf_example/src/lpc_18xx_startup.c
@@ -1,6 +1,6 @@
/* lpc_18xx_startup.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/M68K/benchmark/main.cpp b/IDE/M68K/benchmark/main.cpp
index 133bcfe190..a7a76fb2d5 100644
--- a/IDE/M68K/benchmark/main.cpp
+++ b/IDE/M68K/benchmark/main.cpp
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/M68K/testwolfcrypt/main.cpp b/IDE/M68K/testwolfcrypt/main.cpp
index 5e4ae19904..8b31c9e893 100644
--- a/IDE/M68K/testwolfcrypt/main.cpp
+++ b/IDE/M68K/testwolfcrypt/main.cpp
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MCUEXPRESSO/benchmark/source/run_benchmark.c b/IDE/MCUEXPRESSO/benchmark/source/run_benchmark.c
index 21e81319af..8ac6428ada 100644
--- a/IDE/MCUEXPRESSO/benchmark/source/run_benchmark.c
+++ b/IDE/MCUEXPRESSO/benchmark/source/run_benchmark.c
@@ -1,6 +1,6 @@
/* run_benchmark.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MCUEXPRESSO/user_settings.h b/IDE/MCUEXPRESSO/user_settings.h
index 66c55f750a..77e137852f 100644
--- a/IDE/MCUEXPRESSO/user_settings.h
+++ b/IDE/MCUEXPRESSO/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MCUEXPRESSO/wolfcrypt_test/source/wolfcrypt_test.c b/IDE/MCUEXPRESSO/wolfcrypt_test/source/wolfcrypt_test.c
index 4091a2c8a9..9d8bdf169c 100644
--- a/IDE/MCUEXPRESSO/wolfcrypt_test/source/wolfcrypt_test.c
+++ b/IDE/MCUEXPRESSO/wolfcrypt_test/source/wolfcrypt_test.c
@@ -1,6 +1,6 @@
/* wolfcrypt_test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/LPC43xx/time-LCP43xx.c b/IDE/MDK-ARM/LPC43xx/time-LCP43xx.c
index f312cf62b3..258f8a432f 100644
--- a/IDE/MDK-ARM/LPC43xx/time-LCP43xx.c
+++ b/IDE/MDK-ARM/LPC43xx/time-LCP43xx.c
@@ -1,6 +1,6 @@
/* time.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/cert_data.c b/IDE/MDK-ARM/MDK-ARM/wolfSSL/cert_data.c
index 3b506160f6..3f2af99c99 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/cert_data.c
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/cert_data.c
@@ -1,6 +1,6 @@
/* certs_test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-BARE-METAL.h b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-BARE-METAL.h
index 5f913b6314..1d882ca906 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-BARE-METAL.h
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-BARE-METAL.h
@@ -1,6 +1,6 @@
/* config-BEREFOOT.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-FS.h b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-FS.h
index 6ac77cea20..256fff09c1 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-FS.h
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-FS.h
@@ -1,6 +1,6 @@
/* config-FS.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-RTX-TCP-FS.h b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-RTX-TCP-FS.h
index a19cb497c9..11f1de7e08 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-RTX-TCP-FS.h
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config-RTX-TCP-FS.h
@@ -1,6 +1,6 @@
/* config-RTX-TCP-FS.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config.h b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config.h
index 021d75701f..98562cd164 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/config.h
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/config.h
@@ -1,6 +1,6 @@
/* config.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/main.c b/IDE/MDK-ARM/MDK-ARM/wolfSSL/main.c
index 174380b8a4..b4d20bba80 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/main.c
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/shell.c b/IDE/MDK-ARM/MDK-ARM/wolfSSL/shell.c
index 14b9651d6a..efb031e737 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/shell.c
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/shell.c
@@ -1,6 +1,6 @@
/*shell.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-CortexM3-4.c b/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-CortexM3-4.c
index 29c27c7838..024943bd3d 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-CortexM3-4.c
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-CortexM3-4.c
@@ -1,6 +1,6 @@
/* time-STM32F2.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-dummy.c b/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-dummy.c
index a3146c5cdf..bd7d515026 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-dummy.c
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/time-dummy.c
@@ -1,6 +1,6 @@
/* time-dummy.c.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.c b/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.c
index 2240aa314a..9b68ab8158 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.c
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.c
@@ -1,6 +1,6 @@
/* wolfssl_KEIL_RL.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.h b/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.h
index 0375b72eb6..6e3464ba6e 100644
--- a/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.h
+++ b/IDE/MDK-ARM/MDK-ARM/wolfSSL/wolfssl_MDK_ARM.h
@@ -1,6 +1,6 @@
/* wolfssl_KEIL_RL.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK-ARM/STM32F2xx_StdPeriph_Lib/time-STM32F2xx.c b/IDE/MDK-ARM/STM32F2xx_StdPeriph_Lib/time-STM32F2xx.c
index 48c217a01e..bf88ad071f 100644
--- a/IDE/MDK-ARM/STM32F2xx_StdPeriph_Lib/time-STM32F2xx.c
+++ b/IDE/MDK-ARM/STM32F2xx_StdPeriph_Lib/time-STM32F2xx.c
@@ -1,6 +1,6 @@
/* time-STM32F2xx.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Conf/user_settings.h b/IDE/MDK5-ARM/Conf/user_settings.h
index 7f277c7150..6aecf095e1 100644
--- a/IDE/MDK5-ARM/Conf/user_settings.h
+++ b/IDE/MDK5-ARM/Conf/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Inc/wolfssl_MDK_ARM.h b/IDE/MDK5-ARM/Inc/wolfssl_MDK_ARM.h
index 3a40f69f5c..673d45376a 100644
--- a/IDE/MDK5-ARM/Inc/wolfssl_MDK_ARM.h
+++ b/IDE/MDK5-ARM/Inc/wolfssl_MDK_ARM.h
@@ -1,6 +1,6 @@
/* wolfssl_KEIL_ARM.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/CryptBenchmark/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/CryptBenchmark/RTE/wolfSSL/user_settings.h
index a96d565e1e..f206ad222c 100644
--- a/IDE/MDK5-ARM/Projects/CryptBenchmark/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/CryptBenchmark/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/CryptBenchmark/main.c b/IDE/MDK5-ARM/Projects/CryptBenchmark/main.c
index ab6b1e3fae..002677f67b 100644
--- a/IDE/MDK5-ARM/Projects/CryptBenchmark/main.c
+++ b/IDE/MDK5-ARM/Projects/CryptBenchmark/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/CryptTest/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/CryptTest/RTE/wolfSSL/user_settings.h
index 45c56d9c4c..80af5e2f7a 100644
--- a/IDE/MDK5-ARM/Projects/CryptTest/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/CryptTest/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/CryptTest/main.c b/IDE/MDK5-ARM/Projects/CryptTest/main.c
index e8f4065282..3222cc5dad 100644
--- a/IDE/MDK5-ARM/Projects/CryptTest/main.c
+++ b/IDE/MDK5-ARM/Projects/CryptTest/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/EchoClient/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/EchoClient/RTE/wolfSSL/user_settings.h
index f1330fbf95..4a714d7e1e 100644
--- a/IDE/MDK5-ARM/Projects/EchoClient/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/EchoClient/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/EchoClient/main.c b/IDE/MDK5-ARM/Projects/EchoClient/main.c
index 5c530161e5..63d87dc0ed 100644
--- a/IDE/MDK5-ARM/Projects/EchoClient/main.c
+++ b/IDE/MDK5-ARM/Projects/EchoClient/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/EchoServer/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/EchoServer/RTE/wolfSSL/user_settings.h
index 58b95790d3..f4c47bf794 100644
--- a/IDE/MDK5-ARM/Projects/EchoServer/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/EchoServer/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/EchoServer/main.c b/IDE/MDK5-ARM/Projects/EchoServer/main.c
index 05a780c340..deb800f8a6 100644
--- a/IDE/MDK5-ARM/Projects/EchoServer/main.c
+++ b/IDE/MDK5-ARM/Projects/EchoServer/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/SimpleClient/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/SimpleClient/RTE/wolfSSL/user_settings.h
index fdff446b7f..c14e47240e 100644
--- a/IDE/MDK5-ARM/Projects/SimpleClient/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/SimpleClient/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/SimpleClient/main.c b/IDE/MDK5-ARM/Projects/SimpleClient/main.c
index 70bdae9be7..4345458538 100644
--- a/IDE/MDK5-ARM/Projects/SimpleClient/main.c
+++ b/IDE/MDK5-ARM/Projects/SimpleClient/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/SimpleServer/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/SimpleServer/RTE/wolfSSL/user_settings.h
index fdff446b7f..c14e47240e 100644
--- a/IDE/MDK5-ARM/Projects/SimpleServer/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/SimpleServer/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/SimpleServer/main.c b/IDE/MDK5-ARM/Projects/SimpleServer/main.c
index dd938a1dfb..3f8c196cde 100644
--- a/IDE/MDK5-ARM/Projects/SimpleServer/main.c
+++ b/IDE/MDK5-ARM/Projects/SimpleServer/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/wolfSSL-Full/main.c b/IDE/MDK5-ARM/Projects/wolfSSL-Full/main.c
index f6fc15b033..43bd729807 100644
--- a/IDE/MDK5-ARM/Projects/wolfSSL-Full/main.c
+++ b/IDE/MDK5-ARM/Projects/wolfSSL-Full/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/wolfSSL-Full/shell.c b/IDE/MDK5-ARM/Projects/wolfSSL-Full/shell.c
index fac594098d..c3c449d5ec 100644
--- a/IDE/MDK5-ARM/Projects/wolfSSL-Full/shell.c
+++ b/IDE/MDK5-ARM/Projects/wolfSSL-Full/shell.c
@@ -1,6 +1,6 @@
/*shell.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/wolfSSL-Full/time-CortexM3-4.c b/IDE/MDK5-ARM/Projects/wolfSSL-Full/time-CortexM3-4.c
index ea56f2f1f2..8b1de0aa51 100644
--- a/IDE/MDK5-ARM/Projects/wolfSSL-Full/time-CortexM3-4.c
+++ b/IDE/MDK5-ARM/Projects/wolfSSL-Full/time-CortexM3-4.c
@@ -1,6 +1,6 @@
/* time-STM32F2.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Projects/wolfSSL-Lib/RTE/wolfSSL/user_settings.h b/IDE/MDK5-ARM/Projects/wolfSSL-Lib/RTE/wolfSSL/user_settings.h
index fdff446b7f..c14e47240e 100644
--- a/IDE/MDK5-ARM/Projects/wolfSSL-Lib/RTE/wolfSSL/user_settings.h
+++ b/IDE/MDK5-ARM/Projects/wolfSSL-Lib/RTE/wolfSSL/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MDK5-ARM/Src/ssl-dummy.c b/IDE/MDK5-ARM/Src/ssl-dummy.c
index 9395868ec4..fdd71c962f 100644
--- a/IDE/MDK5-ARM/Src/ssl-dummy.c
+++ b/IDE/MDK5-ARM/Src/ssl-dummy.c
@@ -1,6 +1,6 @@
/* ssl-dummy.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MQX/client-tls.c b/IDE/MQX/client-tls.c
index 2f86692994..9834251c0d 100644
--- a/IDE/MQX/client-tls.c
+++ b/IDE/MQX/client-tls.c
@@ -1,6 +1,6 @@
/* client-tls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MQX/server-tls.c b/IDE/MQX/server-tls.c
index 68ffd77f8c..e7e1a48529 100644
--- a/IDE/MQX/server-tls.c
+++ b/IDE/MQX/server-tls.c
@@ -1,6 +1,6 @@
/* server-tls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/client/client.c b/IDE/MSVS-2019-AZSPHERE/client/client.c
index 794b83082f..6756c89a57 100644
--- a/IDE/MSVS-2019-AZSPHERE/client/client.c
+++ b/IDE/MSVS-2019-AZSPHERE/client/client.c
@@ -1,6 +1,6 @@
/* client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/client/client.h b/IDE/MSVS-2019-AZSPHERE/client/client.h
index 07a17b5148..f10c0db94f 100644
--- a/IDE/MSVS-2019-AZSPHERE/client/client.h
+++ b/IDE/MSVS-2019-AZSPHERE/client/client.h
@@ -1,6 +1,6 @@
/* client.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/server/server.c b/IDE/MSVS-2019-AZSPHERE/server/server.c
index 9c34433eca..7c4528a06d 100644
--- a/IDE/MSVS-2019-AZSPHERE/server/server.c
+++ b/IDE/MSVS-2019-AZSPHERE/server/server.c
@@ -1,6 +1,6 @@
/* server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/server/server.h b/IDE/MSVS-2019-AZSPHERE/server/server.h
index b73774cee8..e4d5edfeaf 100644
--- a/IDE/MSVS-2019-AZSPHERE/server/server.h
+++ b/IDE/MSVS-2019-AZSPHERE/server/server.h
@@ -1,6 +1,6 @@
/* server.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/shared/util.h b/IDE/MSVS-2019-AZSPHERE/shared/util.h
index 0cd976b5db..005676f4ff 100644
--- a/IDE/MSVS-2019-AZSPHERE/shared/util.h
+++ b/IDE/MSVS-2019-AZSPHERE/shared/util.h
@@ -1,6 +1,6 @@
/* util.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/user_settings.h b/IDE/MSVS-2019-AZSPHERE/user_settings.h
index 6a3e683fce..3c4c03aa54 100644
--- a/IDE/MSVS-2019-AZSPHERE/user_settings.h
+++ b/IDE/MSVS-2019-AZSPHERE/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/avnet_mt3620_sk/inc/hw/template_appliance.h b/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/avnet_mt3620_sk/inc/hw/template_appliance.h
index 5bf3d54b4f..2837ac3c2d 100644
--- a/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/avnet_mt3620_sk/inc/hw/template_appliance.h
+++ b/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/avnet_mt3620_sk/inc/hw/template_appliance.h
@@ -1,6 +1,6 @@
/* template_appliance.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/seeed_mt3620_mdb/inc/hw/template_appliance.h b/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/seeed_mt3620_mdb/inc/hw/template_appliance.h
index 6f867ab9e2..051b6ac03b 100644
--- a/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/seeed_mt3620_mdb/inc/hw/template_appliance.h
+++ b/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/seeed_mt3620_mdb/inc/hw/template_appliance.h
@@ -1,6 +1,6 @@
/* template_appliance.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c b/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c
index 183de4015e..ca8e80577c 100644
--- a/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c
+++ b/IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/MYSQL/CMakeLists_wolfCrypt.txt b/IDE/MYSQL/CMakeLists_wolfCrypt.txt
index c558bc74f8..566b7d8b80 100644
--- a/IDE/MYSQL/CMakeLists_wolfCrypt.txt
+++ b/IDE/MYSQL/CMakeLists_wolfCrypt.txt
@@ -1,6 +1,6 @@
# CMakeLists.txt
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/IDE/MYSQL/CMakeLists_wolfSSL.txt b/IDE/MYSQL/CMakeLists_wolfSSL.txt
index 4f0eec23b6..e95c929103 100644
--- a/IDE/MYSQL/CMakeLists_wolfSSL.txt
+++ b/IDE/MYSQL/CMakeLists_wolfSSL.txt
@@ -1,6 +1,6 @@
# CMakeLists.txt
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/IDE/NETOS/wolfssl_netos_custom.c b/IDE/NETOS/wolfssl_netos_custom.c
index 49674be83a..8617eee66b 100644
--- a/IDE/NETOS/wolfssl_netos_custom.c
+++ b/IDE/NETOS/wolfssl_netos_custom.c
@@ -1,6 +1,6 @@
/* wolfssl_netos_custom.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/QNX/example-client/client-tls.c b/IDE/QNX/example-client/client-tls.c
index b8704daf3f..27e56e3438 100644
--- a/IDE/QNX/example-client/client-tls.c
+++ b/IDE/QNX/example-client/client-tls.c
@@ -1,6 +1,6 @@
/* client-tls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/QNX/example-cmac/cmac-test.c b/IDE/QNX/example-cmac/cmac-test.c
index d9590aa292..f72277e9d9 100644
--- a/IDE/QNX/example-cmac/cmac-test.c
+++ b/IDE/QNX/example-cmac/cmac-test.c
@@ -1,6 +1,6 @@
/* cmac-test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/QNX/example-server/server-tls.c b/IDE/QNX/example-server/server-tls.c
index 9eb87d1c83..6c2a9f1f4e 100644
--- a/IDE/QNX/example-server/server-tls.c
+++ b/IDE/QNX/example-server/server-tls.c
@@ -1,6 +1,6 @@
/* server-tls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/RISCV/SIFIVE-HIFIVE1/main.c b/IDE/RISCV/SIFIVE-HIFIVE1/main.c
index 60633d0c18..ff0488956b 100644
--- a/IDE/RISCV/SIFIVE-HIFIVE1/main.c
+++ b/IDE/RISCV/SIFIVE-HIFIVE1/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/RISCV/SIFIVE-HIFIVE1/user_settings.h b/IDE/RISCV/SIFIVE-HIFIVE1/user_settings.h
index 8b8709f008..e0a4a9077c 100644
--- a/IDE/RISCV/SIFIVE-HIFIVE1/user_settings.h
+++ b/IDE/RISCV/SIFIVE-HIFIVE1/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/arm_startup.c b/IDE/ROWLEY-CROSSWORKS-ARM/arm_startup.c
index fbf746a325..26381848e4 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/arm_startup.c
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/arm_startup.c
@@ -1,6 +1,6 @@
/* arm_startup.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/benchmark_main.c b/IDE/ROWLEY-CROSSWORKS-ARM/benchmark_main.c
index 94720e4d99..e95059e9ef 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/benchmark_main.c
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/benchmark_main.c
@@ -1,6 +1,6 @@
/* benchmark_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/kinetis_hw.c b/IDE/ROWLEY-CROSSWORKS-ARM/kinetis_hw.c
index ee2e0fe9d3..5626126920 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/kinetis_hw.c
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/kinetis_hw.c
@@ -1,6 +1,6 @@
/* kinetis_hw.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/retarget.c b/IDE/ROWLEY-CROSSWORKS-ARM/retarget.c
index c5bb2ff92e..bfd53ff703 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/retarget.c
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/retarget.c
@@ -1,6 +1,6 @@
/* retarget.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/test_main.c b/IDE/ROWLEY-CROSSWORKS-ARM/test_main.c
index c78a9d135b..1f6339d908 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/test_main.c
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/common/strings.h b/IDE/Renesas/cs+/Projects/common/strings.h
index 4e935718d5..030e4ffad0 100644
--- a/IDE/Renesas/cs+/Projects/common/strings.h
+++ b/IDE/Renesas/cs+/Projects/common/strings.h
@@ -1,6 +1,6 @@
/* strings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/common/unistd.h b/IDE/Renesas/cs+/Projects/common/unistd.h
index aa758a3b7f..d288552e6c 100644
--- a/IDE/Renesas/cs+/Projects/common/unistd.h
+++ b/IDE/Renesas/cs+/Projects/common/unistd.h
@@ -1,6 +1,6 @@
/* unistd.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/common/user_settings.h b/IDE/Renesas/cs+/Projects/common/user_settings.h
index 0ce546d6a8..5e0d375360 100644
--- a/IDE/Renesas/cs+/Projects/common/user_settings.h
+++ b/IDE/Renesas/cs+/Projects/common/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/common/wolfssl_dummy.c b/IDE/Renesas/cs+/Projects/common/wolfssl_dummy.c
index b40309c9c6..8feffe8f31 100644
--- a/IDE/Renesas/cs+/Projects/common/wolfssl_dummy.c
+++ b/IDE/Renesas/cs+/Projects/common/wolfssl_dummy.c
@@ -1,6 +1,6 @@
/* wolfssl_dummy.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/t4_demo/wolf_client.c b/IDE/Renesas/cs+/Projects/t4_demo/wolf_client.c
index ce67548cb6..e0d903644c 100644
--- a/IDE/Renesas/cs+/Projects/t4_demo/wolf_client.c
+++ b/IDE/Renesas/cs+/Projects/t4_demo/wolf_client.c
@@ -1,6 +1,6 @@
/* wolf_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/t4_demo/wolf_main.c b/IDE/Renesas/cs+/Projects/t4_demo/wolf_main.c
index f631d10eae..3cffc7191c 100644
--- a/IDE/Renesas/cs+/Projects/t4_demo/wolf_main.c
+++ b/IDE/Renesas/cs+/Projects/t4_demo/wolf_main.c
@@ -1,6 +1,6 @@
/* wolf_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/t4_demo/wolf_server.c b/IDE/Renesas/cs+/Projects/t4_demo/wolf_server.c
index 53d851367e..a86ff18c81 100644
--- a/IDE/Renesas/cs+/Projects/t4_demo/wolf_server.c
+++ b/IDE/Renesas/cs+/Projects/t4_demo/wolf_server.c
@@ -1,6 +1,6 @@
/* wolf_server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/cs+/Projects/test/test_main.c b/IDE/Renesas/cs+/Projects/test/test_main.c
index 772c589410..a1e00ef0af 100644
--- a/IDE/Renesas/cs+/Projects/test/test_main.c
+++ b/IDE/Renesas/cs+/Projects/test/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/DK-S7G2/benchmark-template/src/app_entry.c b/IDE/Renesas/e2studio/DK-S7G2/benchmark-template/src/app_entry.c
index e0a78ed8c6..6e12a982a2 100644
--- a/IDE/Renesas/e2studio/DK-S7G2/benchmark-template/src/app_entry.c
+++ b/IDE/Renesas/e2studio/DK-S7G2/benchmark-template/src/app_entry.c
@@ -1,6 +1,6 @@
/* app_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/DK-S7G2/example_server-template/src/app_entry.c b/IDE/Renesas/e2studio/DK-S7G2/example_server-template/src/app_entry.c
index 569f50a051..ea15ee4f12 100644
--- a/IDE/Renesas/e2studio/DK-S7G2/example_server-template/src/app_entry.c
+++ b/IDE/Renesas/e2studio/DK-S7G2/example_server-template/src/app_entry.c
@@ -1,6 +1,6 @@
/* app_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/DK-S7G2/wolfcrypttest-template/src/app_entry.c b/IDE/Renesas/e2studio/DK-S7G2/wolfcrypttest-template/src/app_entry.c
index cb99462693..a056213313 100644
--- a/IDE/Renesas/e2studio/DK-S7G2/wolfcrypttest-template/src/app_entry.c
+++ b/IDE/Renesas/e2studio/DK-S7G2/wolfcrypttest-template/src/app_entry.c
@@ -1,6 +1,6 @@
/* app_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/common/strings.h b/IDE/Renesas/e2studio/Projects/common/strings.h
index 4e935718d5..030e4ffad0 100644
--- a/IDE/Renesas/e2studio/Projects/common/strings.h
+++ b/IDE/Renesas/e2studio/Projects/common/strings.h
@@ -1,6 +1,6 @@
/* strings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/common/unistd.h b/IDE/Renesas/e2studio/Projects/common/unistd.h
index aa758a3b7f..d288552e6c 100644
--- a/IDE/Renesas/e2studio/Projects/common/unistd.h
+++ b/IDE/Renesas/e2studio/Projects/common/unistd.h
@@ -1,6 +1,6 @@
/* unistd.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/common/user_settings.h b/IDE/Renesas/e2studio/Projects/common/user_settings.h
index d2c52f48d2..a9cc84ac76 100644
--- a/IDE/Renesas/e2studio/Projects/common/user_settings.h
+++ b/IDE/Renesas/e2studio/Projects/common/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/common/wolfssl_dummy.c b/IDE/Renesas/e2studio/Projects/common/wolfssl_dummy.c
index 8cd257016c..b6b21e85bb 100644
--- a/IDE/Renesas/e2studio/Projects/common/wolfssl_dummy.c
+++ b/IDE/Renesas/e2studio/Projects/common/wolfssl_dummy.c
@@ -1,6 +1,6 @@
/* wolfssl_dummy.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/test/src/key_data.c b/IDE/Renesas/e2studio/Projects/test/src/key_data.c
index 5a18a7897b..8d06ccc1dd 100644
--- a/IDE/Renesas/e2studio/Projects/test/src/key_data.c
+++ b/IDE/Renesas/e2studio/Projects/test/src/key_data.c
@@ -1,6 +1,6 @@
/* key_data.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/test/src/key_data.h b/IDE/Renesas/e2studio/Projects/test/src/key_data.h
index 45459f6e3e..5c58e35298 100644
--- a/IDE/Renesas/e2studio/Projects/test/src/key_data.h
+++ b/IDE/Renesas/e2studio/Projects/test/src/key_data.h
@@ -1,6 +1,6 @@
/* key_data.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/test/src/test_main.c b/IDE/Renesas/e2studio/Projects/test/src/test_main.c
index 7f72a08331..5264faef29 100644
--- a/IDE/Renesas/e2studio/Projects/test/src/test_main.c
+++ b/IDE/Renesas/e2studio/Projects/test/src/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/test/src/wolf_client.c b/IDE/Renesas/e2studio/Projects/test/src/wolf_client.c
index 8ab1416060..37bcfbb84c 100644
--- a/IDE/Renesas/e2studio/Projects/test/src/wolf_client.c
+++ b/IDE/Renesas/e2studio/Projects/test/src/wolf_client.c
@@ -1,6 +1,6 @@
/* wolf_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/test/src/wolf_server.c b/IDE/Renesas/e2studio/Projects/test/src/wolf_server.c
index d054d5cc10..6454017771 100644
--- a/IDE/Renesas/e2studio/Projects/test/src/wolf_server.c
+++ b/IDE/Renesas/e2studio/Projects/test/src/wolf_server.c
@@ -1,6 +1,6 @@
/* wolf_server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/Projects/test/src/wolfssl_demo.h b/IDE/Renesas/e2studio/Projects/test/src/wolfssl_demo.h
index 1d5717a26d..385a5d7bd4 100644
--- a/IDE/Renesas/e2studio/Projects/test/src/wolfssl_demo.h
+++ b/IDE/Renesas/e2studio/Projects/test/src/wolfssl_demo.h
@@ -1,6 +1,6 @@
/* wolfssl_demo.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/benchmark-wolfcrypt/src/wolfssl_thread_entry.c b/IDE/Renesas/e2studio/RA6M3/benchmark-wolfcrypt/src/wolfssl_thread_entry.c
index b17e2b32c1..0a850be473 100644
--- a/IDE/Renesas/e2studio/RA6M3/benchmark-wolfcrypt/src/wolfssl_thread_entry.c
+++ b/IDE/Renesas/e2studio/RA6M3/benchmark-wolfcrypt/src/wolfssl_thread_entry.c
@@ -1,6 +1,6 @@
/* wolfssl_thread_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/client-wolfssl/src/wolfssl_thread_entry.c b/IDE/Renesas/e2studio/RA6M3/client-wolfssl/src/wolfssl_thread_entry.c
index 14805e7824..d2c1c815c0 100644
--- a/IDE/Renesas/e2studio/RA6M3/client-wolfssl/src/wolfssl_thread_entry.c
+++ b/IDE/Renesas/e2studio/RA6M3/client-wolfssl/src/wolfssl_thread_entry.c
@@ -1,6 +1,6 @@
/* wolfssl_thread_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/client-wolfssl/wolfssl_thread_entry.h b/IDE/Renesas/e2studio/RA6M3/client-wolfssl/wolfssl_thread_entry.h
index b4d8fc4974..701e4bd4bb 100644
--- a/IDE/Renesas/e2studio/RA6M3/client-wolfssl/wolfssl_thread_entry.h
+++ b/IDE/Renesas/e2studio/RA6M3/client-wolfssl/wolfssl_thread_entry.h
@@ -1,6 +1,6 @@
/* wolfssl_thread_entry.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/common/src/freertos_tcp_port.c b/IDE/Renesas/e2studio/RA6M3/common/src/freertos_tcp_port.c
index 388f52c780..c45d550417 100644
--- a/IDE/Renesas/e2studio/RA6M3/common/src/freertos_tcp_port.c
+++ b/IDE/Renesas/e2studio/RA6M3/common/src/freertos_tcp_port.c
@@ -1,6 +1,6 @@
/* freertos_tcp_port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/common/user_settings.h b/IDE/Renesas/e2studio/RA6M3/common/user_settings.h
index 984a638d22..78f7cf86a8 100644
--- a/IDE/Renesas/e2studio/RA6M3/common/user_settings.h
+++ b/IDE/Renesas/e2studio/RA6M3/common/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/common/util.h b/IDE/Renesas/e2studio/RA6M3/common/util.h
index 628e9b791e..036d4627d0 100644
--- a/IDE/Renesas/e2studio/RA6M3/common/util.h
+++ b/IDE/Renesas/e2studio/RA6M3/common/util.h
@@ -1,6 +1,6 @@
/* util.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/server-wolfssl/src/wolfssl_thread_entry.c b/IDE/Renesas/e2studio/RA6M3/server-wolfssl/src/wolfssl_thread_entry.c
index 437fe08a07..30006f63b7 100644
--- a/IDE/Renesas/e2studio/RA6M3/server-wolfssl/src/wolfssl_thread_entry.c
+++ b/IDE/Renesas/e2studio/RA6M3/server-wolfssl/src/wolfssl_thread_entry.c
@@ -1,6 +1,6 @@
/* wolfssl_thread_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/server-wolfssl/wolfssl_thread_entry.h b/IDE/Renesas/e2studio/RA6M3/server-wolfssl/wolfssl_thread_entry.h
index 7a23d43d7b..0907433e6d 100644
--- a/IDE/Renesas/e2studio/RA6M3/server-wolfssl/wolfssl_thread_entry.h
+++ b/IDE/Renesas/e2studio/RA6M3/server-wolfssl/wolfssl_thread_entry.h
@@ -1,6 +1,6 @@
/* wolfssl_thread_entry.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M3/test-wolfcrypt/src/wolfssl_thread_entry.c b/IDE/Renesas/e2studio/RA6M3/test-wolfcrypt/src/wolfssl_thread_entry.c
index dfc97cc1a8..e7e4cb6ffe 100644
--- a/IDE/Renesas/e2studio/RA6M3/test-wolfcrypt/src/wolfssl_thread_entry.c
+++ b/IDE/Renesas/e2studio/RA6M3/test-wolfcrypt/src/wolfssl_thread_entry.c
@@ -1,6 +1,6 @@
/* wolfssl_thread_entry.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/common/user_settings.h b/IDE/Renesas/e2studio/RA6M4/common/user_settings.h
index b2ed1671f5..258ca42923 100644
--- a/IDE/Renesas/e2studio/RA6M4/common/user_settings.h
+++ b/IDE/Renesas/e2studio/RA6M4/common/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/common/wolfssl_demo.h b/IDE/Renesas/e2studio/RA6M4/common/wolfssl_demo.h
index eac5b17f99..beff9bf11a 100644
--- a/IDE/Renesas/e2studio/RA6M4/common/wolfssl_demo.h
+++ b/IDE/Renesas/e2studio/RA6M4/common/wolfssl_demo.h
@@ -1,6 +1,6 @@
/* wolfssl_demo.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/test/key_data/key_data_sce.c b/IDE/Renesas/e2studio/RA6M4/test/key_data/key_data_sce.c
index f8b4065b16..af95a854af 100644
--- a/IDE/Renesas/e2studio/RA6M4/test/key_data/key_data_sce.c
+++ b/IDE/Renesas/e2studio/RA6M4/test/key_data/key_data_sce.c
@@ -1,6 +1,6 @@
/* key_data.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/test/src/SEGGER_RTT/myprint.c b/IDE/Renesas/e2studio/RA6M4/test/src/SEGGER_RTT/myprint.c
index 15d15f1a62..4ff71d1548 100644
--- a/IDE/Renesas/e2studio/RA6M4/test/src/SEGGER_RTT/myprint.c
+++ b/IDE/Renesas/e2studio/RA6M4/test/src/SEGGER_RTT/myprint.c
@@ -1,6 +1,6 @@
/* myprintf.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/test/src/test_main.c b/IDE/Renesas/e2studio/RA6M4/test/src/test_main.c
index 7d23e94556..68d2b8590d 100644
--- a/IDE/Renesas/e2studio/RA6M4/test/src/test_main.c
+++ b/IDE/Renesas/e2studio/RA6M4/test/src/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/test/src/wolf_client.c b/IDE/Renesas/e2studio/RA6M4/test/src/wolf_client.c
index 010c71889b..e7149d2200 100644
--- a/IDE/Renesas/e2studio/RA6M4/test/src/wolf_client.c
+++ b/IDE/Renesas/e2studio/RA6M4/test/src/wolf_client.c
@@ -1,6 +1,6 @@
/* wolf_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c b/IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c
index 2595add6f9..b840645b79 100644
--- a/IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c
+++ b/IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c
@@ -1,6 +1,6 @@
/* wolfssl_sce_unit_test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/strings.h b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/strings.h
index 4e935718d5..030e4ffad0 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/strings.h
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/strings.h
@@ -1,6 +1,6 @@
/* strings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/unistd.h b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/unistd.h
index aa758a3b7f..d288552e6c 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/unistd.h
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/unistd.h
@@ -1,6 +1,6 @@
/* unistd.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/user_settings.h b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/user_settings.h
index 1357339368..c6aeebd4a3 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/user_settings.h
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/wolfssl_dummy.c b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/wolfssl_dummy.c
index a8d2d63aa0..84501e8446 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/wolfssl_dummy.c
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/common/wolfssl_dummy.c
@@ -1,6 +1,6 @@
/* wolfssl_dummy.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.c b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.c
index 7c16659bb7..d882bae25f 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.c
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.c
@@ -1,6 +1,6 @@
/* key_data.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.h b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.h
index 38d3925d80..a8ebf18da3 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.h
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/key_data.h
@@ -1,6 +1,6 @@
/* key_data.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/test_main.c b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/test_main.c
index b90e19f6d8..733da69714 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/test_main.c
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_client.c b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_client.c
index bba40f55f6..7ee694f770 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_client.c
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_client.c
@@ -1,6 +1,6 @@
/* wolf_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_server.c b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_server.c
index 379d5f5091..52ad49bba5 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_server.c
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolf_server.c
@@ -1,6 +1,6 @@
/* wolf_server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolfssl_demo.h b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolfssl_demo.h
index a8cf6ee4d6..5f0a537d30 100644
--- a/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolfssl_demo.h
+++ b/IDE/Renesas/e2studio/RX65N/GR-ROSE/test/src/wolfssl_demo.h
@@ -1,6 +1,6 @@
/* wolfssl_demo.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.c b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.c
index b91a80c6bd..2097264acb 100644
--- a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.c
+++ b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.c
@@ -1,6 +1,6 @@
/* key_data.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.h b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.h
index 38d3925d80..a8ebf18da3 100644
--- a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.h
+++ b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/key_data.h
@@ -1,6 +1,6 @@
/* key_data.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/user_settings.h b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/user_settings.h
index 71e3ae167c..13fa135b78 100644
--- a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/user_settings.h
+++ b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.c b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.c
index b14fb610fa..b6e5cfb9ce 100644
--- a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.c
+++ b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.c
@@ -1,6 +1,6 @@
/* wolfssl_demo.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.h b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.h
index 8df09c72ab..6eb3b9641a 100644
--- a/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.h
+++ b/IDE/Renesas/e2studio/RX65N/RSK/wolfssl_demo/wolfssl_demo.h
@@ -1,6 +1,6 @@
/* wolfssl_demo.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/common/wolfssl_dummy.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/common/wolfssl_dummy.c
index d25da70511..c6d70e7562 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/common/wolfssl_dummy.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/common/wolfssl_dummy.c
@@ -1,6 +1,6 @@
/* wolfssl_dummy.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tcp_client.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tcp_client.c
index 8f47dd0c52..eaeb627405 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tcp_client.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tcp_client.c
@@ -1,6 +1,6 @@
/* simple_tcp_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tls_tsip_client.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tls_tsip_client.c
index 4a82363504..ba4da7184c 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tls_tsip_client.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/client/simple_tls_tsip_client.c
@@ -1,6 +1,6 @@
/* simpel_tls_tsip_client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tcp_server.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tcp_server.c
index 76f0b76ccf..dfa4858916 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tcp_server.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tcp_server.c
@@ -1,6 +1,6 @@
/* simple_tcp_server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tls_server.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tls_server.c
index 24e1fc0c27..d5138b0ea6 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tls_server.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/server/simple_tls_server.c
@@ -1,6 +1,6 @@
/* simple_tls_server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/test_main.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/test_main.c
index 774956f257..cb629a38b9 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/test_main.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/test_main.c
@@ -1,6 +1,6 @@
/* test_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/wolfssl_simple_demo.h b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/wolfssl_simple_demo.h
index 439200b687..21e9849a7c 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/wolfssl_simple_demo.h
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/Simple/test/src/wolfssl_simple_demo.h
@@ -1,6 +1,6 @@
/* wolfssl_simple_demo.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.c
index d28c51c520..24c8277302 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.c
@@ -1,6 +1,6 @@
/* key_data.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.h b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.h
index 38d3925d80..a8ebf18da3 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.h
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/key_data.h
@@ -1,6 +1,6 @@
/* key_data.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/user_settings.h b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/user_settings.h
index 2b55e6b0ce..9ecb8f90a4 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/user_settings.h
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.c
index 0ad6af217e..08a4f87b11 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.c
@@ -1,6 +1,6 @@
/* wolfssl_demo.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.h b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.h
index 3ac7a405af..d621bbd30a 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.h
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_demo.h
@@ -1,6 +1,6 @@
/* wolfssl_demo.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_tsip_unit_test.c b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_tsip_unit_test.c
index 3560d5ee76..48892c56d5 100644
--- a/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_tsip_unit_test.c
+++ b/IDE/Renesas/e2studio/RX72N/EnvisionKit/wolfssl_demo/wolfssl_tsip_unit_test.c
@@ -1,6 +1,6 @@
/* wolfssl_tsip_unit_test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/STM32Cube/main.c b/IDE/STM32Cube/main.c
index c5b7e147e6..3d7c66f1e2 100644
--- a/IDE/STM32Cube/main.c
+++ b/IDE/STM32Cube/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/STM32Cube/wolfssl_example.c b/IDE/STM32Cube/wolfssl_example.c
index cec4e5ae29..fc813483f1 100644
--- a/IDE/STM32Cube/wolfssl_example.c
+++ b/IDE/STM32Cube/wolfssl_example.c
@@ -1,6 +1,6 @@
/* wolfssl_example.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/STM32Cube/wolfssl_example.h b/IDE/STM32Cube/wolfssl_example.h
index 121eee9b17..5720511f30 100644
--- a/IDE/STM32Cube/wolfssl_example.h
+++ b/IDE/STM32Cube/wolfssl_example.h
@@ -1,6 +1,6 @@
/* wolfssl_example.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/VS-AZURE-SPHERE/client/client.c b/IDE/VS-AZURE-SPHERE/client/client.c
index 763214b128..9a326e0695 100644
--- a/IDE/VS-AZURE-SPHERE/client/client.c
+++ b/IDE/VS-AZURE-SPHERE/client/client.c
@@ -1,6 +1,6 @@
/* client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/VS-AZURE-SPHERE/client/client.h b/IDE/VS-AZURE-SPHERE/client/client.h
index a0c4fb0385..f2d6fd805f 100644
--- a/IDE/VS-AZURE-SPHERE/client/client.h
+++ b/IDE/VS-AZURE-SPHERE/client/client.h
@@ -1,6 +1,6 @@
/* client.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/VS-AZURE-SPHERE/server/server.c b/IDE/VS-AZURE-SPHERE/server/server.c
index 48da2a5768..aad4ef7235 100644
--- a/IDE/VS-AZURE-SPHERE/server/server.c
+++ b/IDE/VS-AZURE-SPHERE/server/server.c
@@ -1,6 +1,6 @@
/* server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/VS-AZURE-SPHERE/server/server.h b/IDE/VS-AZURE-SPHERE/server/server.h
index d0d09ebabc..497a3c41ca 100644
--- a/IDE/VS-AZURE-SPHERE/server/server.h
+++ b/IDE/VS-AZURE-SPHERE/server/server.h
@@ -1,6 +1,6 @@
/* server.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/VisualDSP/user_settings.h b/IDE/VisualDSP/user_settings.h
index a60035e46a..d745515a5a 100644
--- a/IDE/VisualDSP/user_settings.h
+++ b/IDE/VisualDSP/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/VisualDSP/wolf_tasks.c b/IDE/VisualDSP/wolf_tasks.c
index abb830856f..5d38879f4a 100644
--- a/IDE/VisualDSP/wolf_tasks.c
+++ b/IDE/VisualDSP/wolf_tasks.c
@@ -1,6 +1,6 @@
/* wolf-tasks.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XCODE-FIPSv2/macOS-C++/Intel/user_settings.h b/IDE/XCODE-FIPSv2/macOS-C++/Intel/user_settings.h
index 64a402f870..03a5159348 100644
--- a/IDE/XCODE-FIPSv2/macOS-C++/Intel/user_settings.h
+++ b/IDE/XCODE-FIPSv2/macOS-C++/Intel/user_settings.h
@@ -1,12 +1,22 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc. All rights reserved.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
- * Contact licensing@wolfssl.com with any questions or comments.
+ * wolfSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
- * https://www.wolfssl.com
+ * wolfSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* Custom wolfSSL user settings for XCODE-FIPSv2/macOS-C++/Intel */
diff --git a/IDE/XCODE-FIPSv2/macOS-C++/M1/user_settings.h b/IDE/XCODE-FIPSv2/macOS-C++/M1/user_settings.h
index ef160e5ba5..dfa7424959 100644
--- a/IDE/XCODE-FIPSv2/macOS-C++/M1/user_settings.h
+++ b/IDE/XCODE-FIPSv2/macOS-C++/M1/user_settings.h
@@ -1,12 +1,22 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc. All rights reserved.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
- * Contact licensing@wolfssl.com with any questions or comments.
+ * wolfSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
- * https://www.wolfssl.com
+ * wolfSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* Custom wolfSSL user settings for XCODE-FIPSv2/macOS-C++/M1 */
diff --git a/IDE/XCODE-FIPSv2/user_settings.h b/IDE/XCODE-FIPSv2/user_settings.h
index 4f5d97e43f..cffd801d1f 100644
--- a/IDE/XCODE-FIPSv2/user_settings.h
+++ b/IDE/XCODE-FIPSv2/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XCODE/Benchmark/wolfBench/AppDelegate.h b/IDE/XCODE/Benchmark/wolfBench/AppDelegate.h
index d60321f0c6..2feebb2112 100644
--- a/IDE/XCODE/Benchmark/wolfBench/AppDelegate.h
+++ b/IDE/XCODE/Benchmark/wolfBench/AppDelegate.h
@@ -1,6 +1,6 @@
/* AppDelegate.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XCODE/Benchmark/wolfBench/AppDelegate.m b/IDE/XCODE/Benchmark/wolfBench/AppDelegate.m
index 99c54dec2a..cfb4bd57f4 100644
--- a/IDE/XCODE/Benchmark/wolfBench/AppDelegate.m
+++ b/IDE/XCODE/Benchmark/wolfBench/AppDelegate.m
@@ -1,6 +1,6 @@
/* AppDelegate.m
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XCODE/Benchmark/wolfBench/ViewController.h b/IDE/XCODE/Benchmark/wolfBench/ViewController.h
index 9f7ed76856..2dc6e90fd6 100644
--- a/IDE/XCODE/Benchmark/wolfBench/ViewController.h
+++ b/IDE/XCODE/Benchmark/wolfBench/ViewController.h
@@ -1,6 +1,6 @@
/* ViewController.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XCODE/Benchmark/wolfBench/ViewController.m b/IDE/XCODE/Benchmark/wolfBench/ViewController.m
index bb2d1d07c0..cf4f036925 100644
--- a/IDE/XCODE/Benchmark/wolfBench/ViewController.m
+++ b/IDE/XCODE/Benchmark/wolfBench/ViewController.m
@@ -1,6 +1,6 @@
/* ViewController.m
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XCODE/Benchmark/wolfBench/main.m b/IDE/XCODE/Benchmark/wolfBench/main.m
index a91665fc07..8966a562db 100644
--- a/IDE/XCODE/Benchmark/wolfBench/main.m
+++ b/IDE/XCODE/Benchmark/wolfBench/main.m
@@ -1,6 +1,6 @@
/* main.m
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XilinxSDK/user_settings.h b/IDE/XilinxSDK/user_settings.h
index 4e7135aa80..1b0c324c41 100644
--- a/IDE/XilinxSDK/user_settings.h
+++ b/IDE/XilinxSDK/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/XilinxSDK/wolfssl_example.c b/IDE/XilinxSDK/wolfssl_example.c
index d2829ba7d6..d111d2580b 100644
--- a/IDE/XilinxSDK/wolfssl_example.c
+++ b/IDE/XilinxSDK/wolfssl_example.c
@@ -1,6 +1,6 @@
/* wolfssl_example.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/include.am b/IDE/include.am
index 6fbafa9806..7c7166ade6 100644
--- a/IDE/include.am
+++ b/IDE/include.am
@@ -50,8 +50,7 @@ include IDE/IAR-MSP430/include.am
include IDE/zephyr/include.am
include IDE/AURIX/include.am
include IDE/MCUEXPRESSO/include.am
+include IDE/Espressif/include.am
EXTRA_DIST+= IDE/IAR-EWARM IDE/MDK-ARM IDE/MDK5-ARM IDE/MYSQL IDE/LPCXPRESSO IDE/HEXIWEAR IDE/Espressif
EXTRA_DIST+= IDE/OPENSTM32/README.md
-EXTRA_DIST+= IDE/Espressif/ESP-IDF/setup_win.bat
-EXTRA_DIST+= IDE/Espressif/ESP-IDF/dummy_test_paths.h
diff --git a/IDE/iotsafe-raspberrypi/client-tls13.c b/IDE/iotsafe-raspberrypi/client-tls13.c
index a1037dd9a4..91383d5d06 100644
--- a/IDE/iotsafe-raspberrypi/client-tls13.c
+++ b/IDE/iotsafe-raspberrypi/client-tls13.c
@@ -1,6 +1,6 @@
/* client-tls13.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe-raspberrypi/main.c b/IDE/iotsafe-raspberrypi/main.c
index 23ee90164a..f8cb3c51e8 100644
--- a/IDE/iotsafe-raspberrypi/main.c
+++ b/IDE/iotsafe-raspberrypi/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/ca-cert.c b/IDE/iotsafe/ca-cert.c
index eb682f3125..f8d75623c0 100644
--- a/IDE/iotsafe/ca-cert.c
+++ b/IDE/iotsafe/ca-cert.c
@@ -1,6 +1,6 @@
/* ca-cert.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/devices.c b/IDE/iotsafe/devices.c
index 766068801a..f71dbc86ef 100644
--- a/IDE/iotsafe/devices.c
+++ b/IDE/iotsafe/devices.c
@@ -1,6 +1,6 @@
/* devices.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/devices.h b/IDE/iotsafe/devices.h
index 3fc195986d..f19ae3b8ad 100644
--- a/IDE/iotsafe/devices.h
+++ b/IDE/iotsafe/devices.h
@@ -1,6 +1,6 @@
/* devices.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/main.c b/IDE/iotsafe/main.c
index f76e7a5f45..90aa08da6e 100644
--- a/IDE/iotsafe/main.c
+++ b/IDE/iotsafe/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/memory-tls.c b/IDE/iotsafe/memory-tls.c
index cae4d9b07b..eff9f384dc 100644
--- a/IDE/iotsafe/memory-tls.c
+++ b/IDE/iotsafe/memory-tls.c
@@ -1,6 +1,6 @@
/* memory-tls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/startup.c b/IDE/iotsafe/startup.c
index e604016cc4..a5418b1ab6 100644
--- a/IDE/iotsafe/startup.c
+++ b/IDE/iotsafe/startup.c
@@ -1,6 +1,6 @@
/* startup.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/target.ld b/IDE/iotsafe/target.ld
index 717705f9dc..df0f2272bc 100644
--- a/IDE/iotsafe/target.ld
+++ b/IDE/iotsafe/target.ld
@@ -1,6 +1,6 @@
/* target.ld
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/iotsafe/user_settings.h b/IDE/iotsafe/user_settings.h
index 2bdf71bbd6..f483b2cf25 100644
--- a/IDE/iotsafe/user_settings.h
+++ b/IDE/iotsafe/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/IDE/mynewt/apps.wolfcrypttest.pkg.yml b/IDE/mynewt/apps.wolfcrypttest.pkg.yml
index ccc3a70c46..c072dd50a2 100644
--- a/IDE/mynewt/apps.wolfcrypttest.pkg.yml
+++ b/IDE/mynewt/apps.wolfcrypttest.pkg.yml
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/IDE/mynewt/crypto.wolfssl.pkg.yml b/IDE/mynewt/crypto.wolfssl.pkg.yml
index 44fa6bf9f7..ebb4bfaeb4 100644
--- a/IDE/mynewt/crypto.wolfssl.pkg.yml
+++ b/IDE/mynewt/crypto.wolfssl.pkg.yml
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/Makefile.am b/Makefile.am
index f2231a6bc6..917832e406 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -161,6 +161,7 @@ include cyassl/include.am
include wolfssl/include.am
include certs/include.am
include doc/include.am
+include Docker/include.am
include src/include.am
include support/include.am
diff --git a/README b/README
index f2cf366eba..9fe3bd974f 100644
--- a/README
+++ b/README
@@ -74,6 +74,9 @@ should be used for the enum name.
Release 5.5.4 of wolfSSL embedded TLS has bug fixes and new features including:
+Release 5.5.4 has been developed according to wolfSSL's development and QA process (see link below) and successfully passed the quality criteria.
+https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance
+
## New Feature Additions
* QUIC related changes for HAProxy integration and config option
diff --git a/README.md b/README.md
index 67a9ab3cc7..f0697034d7 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,9 @@ single call hash function. Instead the name `WC_SHA`, `WC_SHA256`, `WC_SHA384` a
Release 5.5.4 of wolfSSL embedded TLS has bug fixes and new features including:
+Release 5.5.4 has been developed according to wolfSSL's development and QA process (see link below) and successfully passed the quality criteria.
+https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance
+
## New Feature Additions
* QUIC related changes for HAProxy integration and config option
diff --git a/certs/crl/include.am b/certs/crl/include.am
index c3fbdb8a6d..e41d00170c 100644
--- a/certs/crl/include.am
+++ b/certs/crl/include.am
@@ -4,6 +4,7 @@
EXTRA_DIST += \
certs/crl/hash_pem/0fdb2da4.r0 \
+ certs/crl/hash_der/0fdb2da4.r0 \
certs/crl/crl.pem \
certs/crl/cliCrl.pem \
certs/crl/eccSrvCRL.pem \
diff --git a/certs/dilithium/bench_dilithium_aes_level2_key.der b/certs/dilithium/bench_dilithium_aes_level2_key.der
deleted file mode 100644
index 1d6744e276..0000000000
Binary files a/certs/dilithium/bench_dilithium_aes_level2_key.der and /dev/null differ
diff --git a/certs/dilithium/bench_dilithium_aes_level3_key.der b/certs/dilithium/bench_dilithium_aes_level3_key.der
deleted file mode 100644
index d6dc3c22fe..0000000000
Binary files a/certs/dilithium/bench_dilithium_aes_level3_key.der and /dev/null differ
diff --git a/certs/dilithium/bench_dilithium_aes_level5_key.der b/certs/dilithium/bench_dilithium_aes_level5_key.der
deleted file mode 100644
index 15d554ad08..0000000000
Binary files a/certs/dilithium/bench_dilithium_aes_level5_key.der and /dev/null differ
diff --git a/certs/dilithium/include.am b/certs/dilithium/include.am
index 0da9a802aa..514f4fe67d 100644
--- a/certs/dilithium/include.am
+++ b/certs/dilithium/include.am
@@ -5,7 +5,4 @@
EXTRA_DIST += \
certs/dilithium/bench_dilithium_level2_key.der \
certs/dilithium/bench_dilithium_level3_key.der \
- certs/dilithium/bench_dilithium_level5_key.der \
- certs/dilithium/bench_dilithium_aes_level2_key.der \
- certs/dilithium/bench_dilithium_aes_level3_key.der \
- certs/dilithium/bench_dilithium_aes_level5_key.der
+ certs/dilithium/bench_dilithium_level5_key.der
diff --git a/configure.ac b/configure.ac
index c5d22755ec..a7a9a93cfc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2998,9 +2998,12 @@ AC_ARG_ENABLE([dsa],
[ ENABLED_DSA=no ]
)
-if (test "$ENABLED_OPENSSH" = "yes" && test "x$ENABLED_FIPS" = "xno") || test "$ENABLED_OPENVPN" = "yes" || test "$ENABLED_NGINX" = "yes" || test "$ENABLED_WPAS" = "yes" || test "$ENABLED_QT" = "yes" || test "$ENABLED_BIND" = "yes" || test "$ENABLED_LIBSSH2" = "yes" || test "$ENABLED_NTP" = "yes"
+if test "$enable_dsa" = ""
then
- ENABLED_DSA="yes"
+ if (test "$ENABLED_OPENSSH" = "yes" && test "x$ENABLED_FIPS" = "xno") || test "$ENABLED_OPENVPN" = "yes" || test "$ENABLED_NGINX" = "yes" || test "$ENABLED_WPAS" = "yes" || test "$ENABLED_QT" = "yes" || test "$ENABLED_BIND" = "yes" || test "$ENABLED_LIBSSH2" = "yes" || test "$ENABLED_NTP" = "yes"
+ then
+ ENABLED_DSA="yes"
+ fi
fi
if test "$ENABLED_DSA" = "no"
@@ -4115,6 +4118,11 @@ else
fi
fi
+if test "$ENABLED_SHA" = "no" && test "$ENABLED_DSA" != "no"
+then
+ AC_MSG_ERROR([please disable DSA if disabling SHA-1.])
+fi
+
# SipHash
AC_ARG_ENABLE([siphash],
@@ -4965,7 +4973,7 @@ AC_ARG_ENABLE([keying-material],
[ ENABLED_KEYING_MATERIAL=no ]
)
-if test "$ENABLED_CHRONY" = "yes"
+if test "$ENABLED_CHRONY" = "yes" || test "$ENABLED_SRTP" = "yes"
then
ENABLED_KEYING_MATERIAL=yes
fi
@@ -7429,6 +7437,20 @@ if test -n "$MPI_MAX_KEY_BITS" -o -n "$WITH_MAX_ECC_BITS"; then
fi
fi
+# Library Suffix
+LIBSUFFIX=""
+AC_ARG_WITH([libsuffix],
+ [AS_HELP_STRING([--with-libsuffix=SUFFIX],[Library artifact SUFFIX, ie libwolfsslSUFFIX.so])],
+ [
+ if test "x$withval" != "xno" ; then
+ LIBSUFFIX=$withval
+ fi
+ if test "x$withval" = "xyes" ; then
+ AC_MSG_ERROR([Invalid argument to --with-libsuffix, no suffix given])
+ fi
+ ]
+)
+AC_SUBST(LIBSUFFIX)
AC_ARG_ENABLE([context-extra-user-data],
[AS_HELP_STRING([--enable-context-extra-user-data],[Enables option for storing user-defined data in TLS API contexts, with optional argument the number of slots to allocate (default: disabled)])],
@@ -7732,8 +7754,9 @@ AS_IF([test "x$ENABLED_PKCS7" = "xyes" && \
[AC_MSG_ERROR([please enable ecc or rsa if enabling pkcs7.])])
AS_IF([test "x$ENABLED_PKCS7" = "xyes" && \
- test "x$ENABLED_SHA" = "xno"],
- [AC_MSG_ERROR([please enable sha if enabling pkcs7.])])
+ test "x$ENABLED_SHA" = "xno" && \
+ test "x$ENABLED_SHA256" = "xno"],
+ [AC_MSG_ERROR([please enable sha or sha256 if enabling pkcs7.])])
AS_IF([test "x$ENABLED_PKCS7" = "xyes" && \
test "x$ENABLED_AES" = "xno" && \
@@ -8424,10 +8447,10 @@ AM_CONDITIONAL([BUILD_HMAC],[test "x$ENABLED_HMAC" = "xyes"])
AM_CONDITIONAL([BUILD_ERROR_STRINGS],[test "x$ENABLED_ERROR_STRINGS" = "xyes"])
AM_CONDITIONAL([BUILD_DO178],[test "x$ENABLED_DO178" = "xyes"])
AM_CONDITIONAL([BUILD_PSA],[test "x$ENABLED_PSA" = "xyes"])
-AM_CONDITIONAL([BUILD_DTLS13],[test "x$ENABLED_DTLS13" = "xyes"])
+AM_CONDITIONAL([BUILD_DTLS13],[test "x$ENABLED_DTLS13" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_QUIC],[test "x$ENABLED_QUIC" = "xyes"])
AM_CONDITIONAL([BUILD_DTLS_CID],[test "x$ENABLED_DTLS_CID" = "xyes"])
-AM_CONDITIONAL([BUILD_DTLS],[test "x$ENABLED_DTLS" = "xyes"])
+AM_CONDITIONAL([BUILD_DTLS],[test "x$ENABLED_DTLS" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_MAXQ10XX],[test "x$ENABLED_MAXQ10XX" = "xyes"])
if test "$ENABLED_REPRODUCIBLE_BUILD" != "yes" &&
@@ -8616,6 +8639,7 @@ echo " * C++ Flags: $CXXFLAGS"
echo " * CPP Flags: $CPPFLAGS"
echo " * CCAS Flags: $CCASFLAGS"
echo " * LIB Flags: $LIB"
+echo " * Library Suffix: $LIBSUFFIX"
test "$ENABLED_LINUXKM" = "yes" && \
echo " * Linux Kernel Build Root: $KERNEL_ROOT" && \
diff --git a/ctaocrypt/src/misc.c b/ctaocrypt/src/misc.c
index d8f2dcbdc7..d31462fe42 100644
--- a/ctaocrypt/src/misc.c
+++ b/ctaocrypt/src/misc.c
@@ -1,6 +1,6 @@
/* misc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/ctaocrypt/src/wolfcrypt_first.c b/ctaocrypt/src/wolfcrypt_first.c
index f1e2aabdde..cfbe5a1792 100644
--- a/ctaocrypt/src/wolfcrypt_first.c
+++ b/ctaocrypt/src/wolfcrypt_first.c
@@ -1,6 +1,6 @@
/* wolfcrypt_first.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/ctaocrypt/src/wolfcrypt_last.c b/ctaocrypt/src/wolfcrypt_last.c
index f69cc71e7a..472f358f95 100644
--- a/ctaocrypt/src/wolfcrypt_last.c
+++ b/ctaocrypt/src/wolfcrypt_last.c
@@ -1,6 +1,6 @@
/* wolfcrypt_last.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/callbacks.h b/cyassl/callbacks.h
index 569c92a7fa..7a288c026c 100644
--- a/cyassl/callbacks.h
+++ b/cyassl/callbacks.h
@@ -1,6 +1,6 @@
/* callbacks.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/crl.h b/cyassl/crl.h
index acd3b7086c..8a8da6f462 100644
--- a/cyassl/crl.h
+++ b/cyassl/crl.h
@@ -1,6 +1,6 @@
/* crl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/aes.h b/cyassl/ctaocrypt/aes.h
index f6828965bd..023b7871af 100644
--- a/cyassl/ctaocrypt/aes.h
+++ b/cyassl/ctaocrypt/aes.h
@@ -1,6 +1,6 @@
/* aes.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/arc4.h b/cyassl/ctaocrypt/arc4.h
index ae4d2fc1aa..c30f0b64a0 100644
--- a/cyassl/ctaocrypt/arc4.h
+++ b/cyassl/ctaocrypt/arc4.h
@@ -1,6 +1,6 @@
/* arc4.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/asn.h b/cyassl/ctaocrypt/asn.h
index e805e70a45..a1d05a71dd 100644
--- a/cyassl/ctaocrypt/asn.h
+++ b/cyassl/ctaocrypt/asn.h
@@ -1,6 +1,6 @@
/* asn.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/asn_public.h b/cyassl/ctaocrypt/asn_public.h
index 7d5dad63c9..bc4cd182bb 100644
--- a/cyassl/ctaocrypt/asn_public.h
+++ b/cyassl/ctaocrypt/asn_public.h
@@ -1,6 +1,6 @@
/* asn_public.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/blake2-impl.h b/cyassl/ctaocrypt/blake2-impl.h
index 9d000b3c95..2efe538619 100644
--- a/cyassl/ctaocrypt/blake2-impl.h
+++ b/cyassl/ctaocrypt/blake2-impl.h
@@ -12,7 +12,7 @@
*/
/* blake2-impl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/blake2-int.h b/cyassl/ctaocrypt/blake2-int.h
index 6f589b50e1..e5cc3d3660 100644
--- a/cyassl/ctaocrypt/blake2-int.h
+++ b/cyassl/ctaocrypt/blake2-int.h
@@ -12,7 +12,7 @@
*/
/* blake2-int.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/blake2.h b/cyassl/ctaocrypt/blake2.h
index c1092b162e..e63656ab53 100644
--- a/cyassl/ctaocrypt/blake2.h
+++ b/cyassl/ctaocrypt/blake2.h
@@ -1,6 +1,6 @@
/* blake2.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/camellia.h b/cyassl/ctaocrypt/camellia.h
index 52bf4efaf2..880960f1e2 100644
--- a/cyassl/ctaocrypt/camellia.h
+++ b/cyassl/ctaocrypt/camellia.h
@@ -1,6 +1,6 @@
/* camellia.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/chacha.h b/cyassl/ctaocrypt/chacha.h
index 613a874c86..1a07289d4a 100644
--- a/cyassl/ctaocrypt/chacha.h
+++ b/cyassl/ctaocrypt/chacha.h
@@ -1,6 +1,6 @@
/* chacha.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/coding.h b/cyassl/ctaocrypt/coding.h
index b8f2c2df87..3536fba42d 100644
--- a/cyassl/ctaocrypt/coding.h
+++ b/cyassl/ctaocrypt/coding.h
@@ -1,6 +1,6 @@
/* coding.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/compress.h b/cyassl/ctaocrypt/compress.h
index 0d424881fa..3050d85e9e 100644
--- a/cyassl/ctaocrypt/compress.h
+++ b/cyassl/ctaocrypt/compress.h
@@ -1,6 +1,6 @@
/* compress.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/des3.h b/cyassl/ctaocrypt/des3.h
index 24eb1357b6..498ffba4bb 100644
--- a/cyassl/ctaocrypt/des3.h
+++ b/cyassl/ctaocrypt/des3.h
@@ -1,6 +1,6 @@
/* des3.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/dh.h b/cyassl/ctaocrypt/dh.h
index 28e5ed2aa3..3d8bbc418d 100644
--- a/cyassl/ctaocrypt/dh.h
+++ b/cyassl/ctaocrypt/dh.h
@@ -1,6 +1,6 @@
/* dh.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/dsa.h b/cyassl/ctaocrypt/dsa.h
index 4b0abc85f2..a64a7eb45a 100644
--- a/cyassl/ctaocrypt/dsa.h
+++ b/cyassl/ctaocrypt/dsa.h
@@ -1,6 +1,6 @@
/* dsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/ecc.h b/cyassl/ctaocrypt/ecc.h
index 96f5b75d52..b28bd49478 100644
--- a/cyassl/ctaocrypt/ecc.h
+++ b/cyassl/ctaocrypt/ecc.h
@@ -1,6 +1,6 @@
/* ecc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/error-crypt.h b/cyassl/ctaocrypt/error-crypt.h
index c2d5767799..fcde0f5889 100644
--- a/cyassl/ctaocrypt/error-crypt.h
+++ b/cyassl/ctaocrypt/error-crypt.h
@@ -1,6 +1,6 @@
/* error-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/fips_test.h b/cyassl/ctaocrypt/fips_test.h
index f8bc311ecc..0e0ca1fdba 100644
--- a/cyassl/ctaocrypt/fips_test.h
+++ b/cyassl/ctaocrypt/fips_test.h
@@ -1,6 +1,6 @@
/* fips_test.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/hmac.h b/cyassl/ctaocrypt/hmac.h
index 3531203e8b..926cce3026 100644
--- a/cyassl/ctaocrypt/hmac.h
+++ b/cyassl/ctaocrypt/hmac.h
@@ -1,6 +1,6 @@
/* hmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/integer.h b/cyassl/ctaocrypt/integer.h
index 7caf5f6f8e..670a83cd2b 100644
--- a/cyassl/ctaocrypt/integer.h
+++ b/cyassl/ctaocrypt/integer.h
@@ -1,6 +1,6 @@
/* integer.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/logging.h b/cyassl/ctaocrypt/logging.h
index 452f7c622b..4fc9fbf16c 100644
--- a/cyassl/ctaocrypt/logging.h
+++ b/cyassl/ctaocrypt/logging.h
@@ -1,6 +1,6 @@
/* logging.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/md2.h b/cyassl/ctaocrypt/md2.h
index ed5713f4f2..d758875f64 100644
--- a/cyassl/ctaocrypt/md2.h
+++ b/cyassl/ctaocrypt/md2.h
@@ -1,6 +1,6 @@
/* md2.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/md4.h b/cyassl/ctaocrypt/md4.h
index d31b86d9d2..0e0fa35989 100644
--- a/cyassl/ctaocrypt/md4.h
+++ b/cyassl/ctaocrypt/md4.h
@@ -1,6 +1,6 @@
/* md4.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/md5.h b/cyassl/ctaocrypt/md5.h
index 218b53b8c1..842ea6fc76 100644
--- a/cyassl/ctaocrypt/md5.h
+++ b/cyassl/ctaocrypt/md5.h
@@ -1,6 +1,6 @@
/* md5.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/memory.h b/cyassl/ctaocrypt/memory.h
index 16b06c003c..1ba484067d 100644
--- a/cyassl/ctaocrypt/memory.h
+++ b/cyassl/ctaocrypt/memory.h
@@ -1,6 +1,6 @@
/* memory.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/misc.h b/cyassl/ctaocrypt/misc.h
index 5db2a4a54d..918c8c04c8 100644
--- a/cyassl/ctaocrypt/misc.h
+++ b/cyassl/ctaocrypt/misc.h
@@ -1,6 +1,6 @@
/* misc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/mpi_class.h b/cyassl/ctaocrypt/mpi_class.h
index 57720af816..5c05f46e77 100644
--- a/cyassl/ctaocrypt/mpi_class.h
+++ b/cyassl/ctaocrypt/mpi_class.h
@@ -1,6 +1,6 @@
/* mpi_class.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/mpi_superclass.h b/cyassl/ctaocrypt/mpi_superclass.h
index 541fc01d2f..90a652b202 100644
--- a/cyassl/ctaocrypt/mpi_superclass.h
+++ b/cyassl/ctaocrypt/mpi_superclass.h
@@ -1,6 +1,6 @@
/* mpi_superclass.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/pkcs7.h b/cyassl/ctaocrypt/pkcs7.h
index 67d2003791..f9d895e642 100644
--- a/cyassl/ctaocrypt/pkcs7.h
+++ b/cyassl/ctaocrypt/pkcs7.h
@@ -1,6 +1,6 @@
/* pkcs7.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/poly1305.h b/cyassl/ctaocrypt/poly1305.h
index f58e1c85de..75f28f5526 100644
--- a/cyassl/ctaocrypt/poly1305.h
+++ b/cyassl/ctaocrypt/poly1305.h
@@ -1,6 +1,6 @@
/* poly1305.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h b/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h
index d8659c88e6..2134da2403 100644
--- a/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h
+++ b/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h
@@ -1,6 +1,6 @@
/* pic32mz-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/pwdbased.h b/cyassl/ctaocrypt/pwdbased.h
index 00a91ddaa9..e460ef278d 100644
--- a/cyassl/ctaocrypt/pwdbased.h
+++ b/cyassl/ctaocrypt/pwdbased.h
@@ -1,6 +1,6 @@
/* pwdbased.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/random.h b/cyassl/ctaocrypt/random.h
index 998083816a..bacd423a02 100644
--- a/cyassl/ctaocrypt/random.h
+++ b/cyassl/ctaocrypt/random.h
@@ -1,6 +1,6 @@
/* random.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/ripemd.h b/cyassl/ctaocrypt/ripemd.h
index 050de115a1..bff7403c5e 100644
--- a/cyassl/ctaocrypt/ripemd.h
+++ b/cyassl/ctaocrypt/ripemd.h
@@ -1,6 +1,6 @@
/* ripemd.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/rsa.h b/cyassl/ctaocrypt/rsa.h
index 5cada803f7..c874f3467c 100644
--- a/cyassl/ctaocrypt/rsa.h
+++ b/cyassl/ctaocrypt/rsa.h
@@ -1,6 +1,6 @@
/* rsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/settings.h b/cyassl/ctaocrypt/settings.h
index ee81e35481..46012d4d13 100644
--- a/cyassl/ctaocrypt/settings.h
+++ b/cyassl/ctaocrypt/settings.h
@@ -1,6 +1,6 @@
/* settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/settings_comp.h b/cyassl/ctaocrypt/settings_comp.h
index 857506f4e5..bb29655cbe 100644
--- a/cyassl/ctaocrypt/settings_comp.h
+++ b/cyassl/ctaocrypt/settings_comp.h
@@ -1,6 +1,6 @@
/* settings_comp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/sha.h b/cyassl/ctaocrypt/sha.h
index 5a2323c4b4..697426b426 100644
--- a/cyassl/ctaocrypt/sha.h
+++ b/cyassl/ctaocrypt/sha.h
@@ -1,6 +1,6 @@
/* sha.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/sha256.h b/cyassl/ctaocrypt/sha256.h
index cf4873c692..c44461af33 100644
--- a/cyassl/ctaocrypt/sha256.h
+++ b/cyassl/ctaocrypt/sha256.h
@@ -1,6 +1,6 @@
/* sha256.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/sha512.h b/cyassl/ctaocrypt/sha512.h
index 2c2fc341c7..95b98d1518 100644
--- a/cyassl/ctaocrypt/sha512.h
+++ b/cyassl/ctaocrypt/sha512.h
@@ -1,6 +1,6 @@
/* sha512.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/tfm.h b/cyassl/ctaocrypt/tfm.h
index 574e670854..2498ecbd23 100644
--- a/cyassl/ctaocrypt/tfm.h
+++ b/cyassl/ctaocrypt/tfm.h
@@ -1,6 +1,6 @@
/* tfm.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/types.h b/cyassl/ctaocrypt/types.h
index 553b4516fd..68a63cac51 100644
--- a/cyassl/ctaocrypt/types.h
+++ b/cyassl/ctaocrypt/types.h
@@ -1,6 +1,6 @@
/* types.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/visibility.h b/cyassl/ctaocrypt/visibility.h
index eff6da620a..3572fb51f3 100644
--- a/cyassl/ctaocrypt/visibility.h
+++ b/cyassl/ctaocrypt/visibility.h
@@ -1,6 +1,6 @@
/* visibility.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ctaocrypt/wc_port.h b/cyassl/ctaocrypt/wc_port.h
index a928b9eda1..9613b732be 100644
--- a/cyassl/ctaocrypt/wc_port.h
+++ b/cyassl/ctaocrypt/wc_port.h
@@ -1,6 +1,6 @@
/* port.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/error-ssl.h b/cyassl/error-ssl.h
index 70c2905b9b..4546d5e182 100644
--- a/cyassl/error-ssl.h
+++ b/cyassl/error-ssl.h
@@ -1,6 +1,6 @@
/* error-ssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/internal.h b/cyassl/internal.h
index 8e262526b0..abf49bd35d 100644
--- a/cyassl/internal.h
+++ b/cyassl/internal.h
@@ -1,6 +1,6 @@
/* internal.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ocsp.h b/cyassl/ocsp.h
index 2d48e9cb91..256c422d2e 100644
--- a/cyassl/ocsp.h
+++ b/cyassl/ocsp.h
@@ -1,6 +1,6 @@
/* ocsp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/openssl/des.h b/cyassl/openssl/des.h
index f403843cce..ac3ec54511 100644
--- a/cyassl/openssl/des.h
+++ b/cyassl/openssl/des.h
@@ -1,6 +1,6 @@
/* des.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/openssl/evp.h b/cyassl/openssl/evp.h
index ce3a9056f3..0d4026cc00 100644
--- a/cyassl/openssl/evp.h
+++ b/cyassl/openssl/evp.h
@@ -1,6 +1,6 @@
/* evp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/openssl/hmac.h b/cyassl/openssl/hmac.h
index 1095a9f1d4..8cbd560f4f 100644
--- a/cyassl/openssl/hmac.h
+++ b/cyassl/openssl/hmac.h
@@ -1,6 +1,6 @@
/* hmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/openssl/ssl.h b/cyassl/openssl/ssl.h
index 1b3354461d..8a52cd5d7a 100644
--- a/cyassl/openssl/ssl.h
+++ b/cyassl/openssl/ssl.h
@@ -1,6 +1,6 @@
/* ssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/options.h.in b/cyassl/options.h.in
index e4099c37f9..19179a8e88 100644
--- a/cyassl/options.h.in
+++ b/cyassl/options.h.in
@@ -1,6 +1,6 @@
/* options.h.in
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/sniffer.h b/cyassl/sniffer.h
index ee429763f9..560932b476 100644
--- a/cyassl/sniffer.h
+++ b/cyassl/sniffer.h
@@ -1,6 +1,6 @@
/* sniffer.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/sniffer_error.h b/cyassl/sniffer_error.h
index 1c1855ccd3..450ec676f7 100644
--- a/cyassl/sniffer_error.h
+++ b/cyassl/sniffer_error.h
@@ -1,6 +1,6 @@
/* sniffer_error.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/ssl.h b/cyassl/ssl.h
index d18aef5124..c6606d0cb0 100644
--- a/cyassl/ssl.h
+++ b/cyassl/ssl.h
@@ -1,6 +1,6 @@
/* ssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/version.h b/cyassl/version.h
index 33183fe581..c5017f513a 100644
--- a/cyassl/version.h
+++ b/cyassl/version.h
@@ -1,6 +1,6 @@
/* cyassl/version.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/cyassl/version.h.in b/cyassl/version.h.in
index f59cae1826..cbebca824e 100644
--- a/cyassl/version.h.in
+++ b/cyassl/version.h.in
@@ -1,6 +1,6 @@
/* cyassl_version.h.in
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/doc/dox_comments/header_files-ja/asn_public.h b/doc/dox_comments/header_files-ja/asn_public.h
index fbf514df58..5d3a50dc96 100644
--- a/doc/dox_comments/header_files-ja/asn_public.h
+++ b/doc/dox_comments/header_files-ja/asn_public.h
@@ -134,10 +134,3 @@ int wc_SignCert(int requestSz, int sigType, byte* derBuffer,
*/
int wc_MakeSelfCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* key,
WC_RNG* rng);
-
-/*!
- \ingroup ASN
- \brief この関数は、提供されたPEM ISSUERFILE内の証明書の発行者を発行者に設定します。また、証明書の自己署名属性をfalseに変更します。ISSUERFILEで指定された発行者は、CERT発行者を設定する前に確認されます。このメソッドは、署名の前にフィールドを設定するために使用されます。
- \return 0 証明書の発行者を正常に設定した
- \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
- \return ASN_PARSE_E CERTヘッダーファイルの解析中にエラーがある場合は返されます。
diff --git a/doc/dox_comments/header_files-ja/cmac.h b/doc/dox_comments/header_files-ja/cmac.h
new file mode 100644
index 0000000000..cd880939bb
--- /dev/null
+++ b/doc/dox_comments/header_files-ja/cmac.h
@@ -0,0 +1,158 @@
+/*!
+ \ingroup CMAC
+ \brief Cmac 構造体をデフォルトで初期化する
+ \return 成功したら 0 を返す
+ \param cmac Cmac 構造体へのポインタ
+ \param キー キー ポインタ
+ \param keySz キー ポインタのサイズ (16、24、または 32)
+ \param type 常に WC_CMAC_AES = 1
+ \param 未使用 使用されていません。互換性に関する将来の潜在的な使用のために存在します
+
+ _例_
+ \code
+ Cmac cmac[1];
+ ret = wc_InitCmac(cmac、キー、keySz、WC_CMAC_AES、NULL);
+ もし (ret == 0) {
+ ret = wc_CmacUpdate(cmac、in、inSz);
+ }
+ もし (ret == 0) {
+ ret = wc_CmacFinal(cmac, out, outSz);
+ }
+ \endcode
+
+ \sa wc_InitCmac_ex
+ \sa wc_CmacUpdate
+ \sa wc_CmacFinal
+*/
+int wc_InitCmac(Cmac* cmac,
+ const byte* キー、word32 keySz、
+ int型、void*未使用);
+
+/*!
+ \ingroup CMAC
+ \brief Cmac 構造体をデフォルトで初期化する
+ \return 成功したら 0 を返す
+ \param cmac Cmac 構造体へのポインタ
+ \param キー キー ポインタ
+ \param keySz キー ポインタのサイズ (16、24、または 32)
+ \param type 常に WC_CMAC_AES = 1
+ \param 未使用 使用されていません。互換性に関する将来の潜在的な使用のために存在します
+ \param heap 動的割り当てに使用されるヒープ ヒントへのポインター。 通常、スタティック メモリ オプションで使用されます。 NULL にすることができます。
+ \param devId 非同期ハードウェアで使用する ID。 非同期ハードウェアを使用していない場合は、INVALID_DEVID に設定します。
+
+ _例_
+ \code
+ Cmac cmac[1];
+ ret = wc_InitCmac_ex(cmac、キー、keySz、WC_CMAC_AES、NULL、NULL、INVALID_DEVID);
+ もし (ret == 0) {
+ ret = wc_CmacUpdate(cmac、in、inSz);
+ }
+ もし (ret == 0) {
+ ret = wc_CmacFinal(cmac, out, &outSz);
+ }
+ \endcode
+
+ \sa wc_InitCmac_ex
+ \sa wc_CmacUpdate
+ \sa wc_CmacFinal
+*/
+int wc_InitCmac_ex(Cmac* cmac,
+ const byte* キー、word32 keySz、
+ int 型、void* 未使用、void* ヒープ、int devId);
+
+/*!
+ \ingroup CMAC
+ \brief 暗号ベースのメッセージ認証コード入力データを追加
+ \return 成功したら 0 を返す
+ \param cmac Cmac 構造体へのポインタ
+ \param in 処理する入力データの
+ \param inSz 入力データのサイズ
+
+ _例_
+ \code
+ ret = wc_CmacUpdate(cmac、in、inSz);
+ \endcode
+
+ \sa wc_InitCmac
+ \sa wc_CmacFinal
+*/
+int wc_CmacUpdate(Cmac* cmac,
+ const byte* in, word32 inSz);
+
+/*!
+ \ingroup CMAC
+ \brief 暗号ベースのメッセージ認証コードを使用して最終結果を生成する
+ \return 成功したら 0 を返す
+ \param cmac Cmac 構造体へのポインタ
+ \param out 結果を返すポインタ
+ \param outSz 出力のポインタサイズ (in/out)
+
+ _例_
+ \code
+ ret = wc_CmacFinal(cmac, out, &outSz);
+ \endcode
+
+ \sa wc_InitCmac
+ \sa wc_CmacFinal
+*/
+int wc_CmacFinal(Cmac* cmac,
+ byte* out, word32* outSz);
+
+/*!
+ \ingroup CMAC
+ \brief CMAC を生成するためのシングル ショット関数
+ \return 成功したら 0 を返す
+ \param out 結果を返すポインタ
+ \param outSz 出力のポインタサイズ (in/out)
+ \param in 処理する入力データのポインタ
+ \param inSz 入力データのサイズ
+ \param キー キー ポインタ
+ \param keySz キー ポインタのサイズ (16、24、または 32)
+
+ _例_
+ \code
+ ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, key, keySz);
+ \endcode
+
+ \sa wc_AesCmacVerify
+*/
+int wc_AesCmacGenerate(byte* out, word32* outSz,
+ const byte* in、word32 inSz、
+ const byte* key, word32 keySz);
+
+/*!
+ \ingroup CMAC
+ \brief CMAC を検証するためのシングル ショット機能
+ \return 成功したら 0 を返す
+ \param 結果を返すチェック ポインタ
+ \param checkSz チェックアウト バッファのサイズ
+ \param in 処理する入力データのポインタ
+ \param inSz 入力データのサイズ
+ \param キー キー ポインタ
+ \param keySz キー ポインタのサイズ (16、24、または 32)
+
+ _例_
+ \code
+ ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, key, keySz);
+ \endcode
+
+ \sa wc_AesCmacGenerate
+*/
+int wc_AesCmacVerify(const byte* check, word32 checkSz,
+ const byte* in、word32 inSz、
+ const byte* key, word32 keySz);
+
+
+/*!
+ \ingroup CMAC
+ \brief ハードウェアがシングル ショットを必要とし、更新をメモリにキャッシュする必要がある場合にのみ、WOLFSSL_HASH_KEEP で使用されます
+ \return 成功したら 0 を返す
+ 処理する入力データの \param
+ \param inSz 入力データのサイズ
+
+ _例_
+ \code
+ ret = wc_CMAC_Grow(cmac、in、inSz)
+ \endcode
+*/
+int wc_CMAC_Grow(Cmac* cmac, const byte* in, int inSz);
\ No newline at end of file
diff --git a/doc/dox_comments/header_files-ja/quic.h b/doc/dox_comments/header_files-ja/quic.h
new file mode 100644
index 0000000000..d3f33b4bd0
--- /dev/null
+++ b/doc/dox_comments/header_files-ja/quic.h
@@ -0,0 +1,603 @@
+/*!
+ \ingroup QUIC
+
+ \brief ハンドシェイク中にシークレットが生成されたときに呼び出されるコールバック。
+ QUIC プロトコル ハンドラはパケットの暗号化/復号化を実行するため、
+ レベル Early_data/handshake/application のネゴシエートされたシークレットが必要です。
+
+ コールバックは、ハンドシェイク中に数回呼び出されます。 両方のどちらか
+ または、読み取りシークレットまたは書き込みシークレットのみが提供される場合があります。 これは、
+ 指定された暗号化レベルはすでに有効になっています。
+
+ \return 成功すると 1 を返し、失敗すると 0 を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param level - シークレットの暗号化レベル
+ \param read_secret - 特定のレベルで復号化に使用されるシークレット。NULL の場合があります。
+ \param write_secret - 特定のレベルで暗号化に使用されるシークレット。NULL の場合があります。
+ \param secret_len - シークレットの長さ
+
+ \sa wolfSSL_set_quic_method
+*/
+int (*set_encryption_secrets)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル,
+ const uint8_t *read_secret,
+ const uint8_t *write_secret, size_t secret_len);
+
+/*!
+ \ingroup QUIC
+
+ \brief ハンドシェイク CRYPTO データをピアに転送するために呼び出されるコールバック。
+ この方法で転送されるデータは暗号化されません。 QUICの仕事です
+ これを行うためのプロトコル実装。 どのシークレットを使用するか
+ 指定された暗号化レベルによって決まります。
+
+ このコールバックは、ハンドシェイク中またはポスト ハンドシェイク中に数回呼び出される場合があります。
+ 処理。 データは完全な CRYPTO レコードをカバーする場合がありますが、
+ 部分的であること。 ただし、コールバックは以前にすべてのレコード データを受信しています。
+ 別の暗号化レベルを使用しています。
+
+ \return 成功すると 1 を返し、失敗すると 0 を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param level - データの暗号化に使用する暗号化レベル
+ \param data - データ自体
+ \param len - データの長さ
+
+ \sa wolfSSL_set_quic_method
+*/
+int (*add_handshake_data)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル,
+ const uint8_t *data, size_t len);
+
+/*!
+ \ingroup QUIC
+
+ \brief 送信するデータのアドバイザリ フラッシュのために呼び出されるコールバック。
+
+ \return 成功すると 1 を返し、失敗すると 0 を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_set_quic_method
+*/
+int (*flush_flight)(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief 処理中に SSL アラートが発生したときに呼び出されるコールバック。
+
+ \return 成功すると 1 を返し、失敗すると 0 を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param level - アラートが発生したときに有効だった暗号化レベル
+ \param alert - エラー
+
+ \sa wolfSSL_set_quic_method
+*/
+int (*send_alert)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル, uint8_t アラート);
+
+/*!
+ \ingroup QUIC
+
+ \brief WOLFSSL_CTX および派生したすべての WOLFSSL インスタンスに対して QUIC プロトコルを有効にします
+ 必要な 4 つのコールバックを提供します。 CTX は TLSv1.3 である必要があります。
+
+ 渡された quic_method には、SSL インスタンスよりも長い寿命が必要です。
+ コピーされません。 すべてのコールバックを提供する必要があります。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ctx - wolfSSL_CTX_new() を使用して作成された WOLFSSL_CTX 構造体へのポインター。
+ \param quic_method - コールバック構造
+
+ \sa wolfSSL_is_quic
+ \sa wolfSSL_set_quic_method
+*/
+int wolfSSL_CTX_set_quic_method(WOLFSSL_CTX *ctx, const WOLFSSL_QUIC_METHOD *quic_method);
+
+/*!
+ \ingroup QUIC
+
+ \brief を提供して、WOLFSSL インスタンスの QUIC プロトコルを有効にします。
+ 4 つのコールバックが必要です。 WOLFSSL は TLSv1.3 である必要があります。
+
+ 渡された quic_method には、SSL インスタンスよりも長い寿命が必要です。
+ コピーされません。 すべてのコールバックを提供する必要があります。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param quic_method - コールバック構造
+
+ \sa wolfSSL_is_quic
+ \sa wolfSSL_CTX_set_quic_method
+*/
+int wolfSSL_set_quic_method(WOLFSSL *ssl, const WOLFSSL_QUIC_METHOD *quic_method);
+
+/*!
+ \ingroup QUIC
+
+ \brief QUIC が WOLFSSL インスタンスでアクティブ化されているかどうかを確認します。
+
+ \return WOLFSSL が QUIC を使用している場合は 1 を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_CTX_quic_method
+ \sa wolfSSL_CTX_set_quic_method
+*/
+int wolfSSL_is_quic(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief 現在使用中の読み取りの暗号化レベルを決定します。 場合にのみ意味があります。
+ WOLFSSL インスタンスは QUIC を使用しています。
+
+ 有効レベルは、データを返すときは常にパラメーターであることに注意してください。
+ 前方へ。 ピアからのデータは、これを介して報告される以外のレベルで到着する可能性があります
+ 関数。
+
+ \return 暗号化レベル。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_quic_write_level
+*/
+WOLFSSL_ENCRYPTION_LEVEL wolfSSL_quic_read_level(const WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief 現在使用中の書き込みの暗号化レベルを決定します。 場合にのみ意味があります。
+ WOLFSSL インスタンスは QUIC を使用しています。
+
+ 有効レベルは、データを返すときは常にパラメーターであることに注意してください。
+ 前方へ。 ピアからのデータは、これを介して報告される以外のレベルで到着する可能性があります
+ 関数。
+
+ \return 暗号化レベル。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_quic_read_level
+*/
+WOLFSSL_ENCRYPTION_LEVEL wolfSSL_quic_write_level(const WOLFSSL *ssl);
+
+
+/*!
+ \ingroup QUIC
+
+ \brief どの QUIC バージョンを使用するかを設定します。 これを呼ばずに、
+ WOLFSSL は両方 (draft-27 と v1) をサーバーに提供します。 受け入れる
+ クライアントからの両方と、最新のものをネゴシエートします。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param use_legacy - ドラフト 27 を使用する場合は true、QUICv1 のみを使用する場合は 0。
+
+ \sa wolfSSL_set_quic_transport_version
+*/
+void wolfSSL_set_quic_use_legacy_codepoint(WOLFSSL *ssl, int use_legacy);
+
+/*!
+ \ingroup QUIC
+
+ \brief どの QUIC バージョンを使用するかを設定します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param version - QUIC バージョン用に定義された TLS 拡張。
+
+ \sa wolfSSL_set_quic_use_legacy_codepoint
+*/
+void wolfSSL_set_quic_transport_version(WOLFSSL *ssl, int バージョン);
+
+/*!
+ \ingroup QUIC
+
+ \brief 構成された QUIC バージョンを取得します。
+
+ \return 構成されたバージョンの TLS 拡張。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_set_quic_use_legacy_codepoint
+ \sa wolfSSL_set_quic_transport_version
+*/
+int wolfSSL_get_quic_transport_version(const WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief 使用する QUIC トランスポート パラメータを設定します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param params - 使用するパラメータ バイト
+ ·param params_len - パラメータの長さ
+
+ \sa wolfSSL_set_quic_use_legacy_codepoint
+ \sa wolfSSL_set_quic_transport_version
+*/
+int wolfSSL_set_quic_transport_params(WOLFSSL *ssl, const uint8_t *params, size_t params_len);
+
+/*!
+ \ingroup QUIC
+
+ \brief ネゴシエートされた QUIC トランスポート バージョンを取得します。 これは与えるだけです
+ それぞれの TLS 拡張機能が有効になった後に呼び出されると、意味のある結果が得られます。
+ ピアから見られました。
+
+ \return ネゴシエートされたバージョンまたは -1 を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_set_quic_use_legacy_codepoint
+ \sa wolfSSL_set_quic_transport_version
+*/
+int wolfSSL_get_peer_quic_transport_version(const WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief ネゴシエートされた QUIC トランスポート パラメータを取得します。 これは与えるだけです
+ それぞれの TLS 拡張機能が有効になった後に呼び出されると、意味のある結果が得られます。
+ ピアから見られました。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param out_params - ピアに送信されるパラメーター。利用できない場合は NULL に設定されます。
+ \param out_params_len - ピアに送信されるパラメータの長さ。利用できない場合は 0 に設定
+
+ \sa wolfSSL_get_peer_quic_transport_version
+*/
+void wolfSSL_get_peer_quic_transport_params(const WOLFSSL *ssl, const uint8_t **out_params, size_t *out_params_len);
+
+
+/*!
+ \ingroup QUIC
+
+ \brief 初期データを有効にするかどうかを構成します。 サーバーがシグナルを送ることを目的としています
+ これをクライアントに。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param enabled - != 初期データが有効な場合は 0
+
+*/
+void wolfSSL_set_quic_early_data_enabled(WOLFSSL *ssl, int enabled);
+
+/*!
+ \ingroup QUIC
+
+ \brief 「飛行中」のデータ量についてアドバイスを得る。 未承認
+ 指定された暗号化レベルで。 これはWOLFSSLインスタンスのデータ量です
+ バッファする準備ができています。
+
+ \return 飛行中の推奨最大データを返す
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param level - 問い合わせる暗号化レベル
+
+*/
+size_t wolfSSL_quic_max_handshake_flight_len(const WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル);
+
+
+/*!
+ \ingroup QUIC
+
+ \brief 復号化された CRYPTO データを、さらに処理するために WOLFSSL インスタンスに渡します。
+ 通話間の暗号化レベルは、すべて増加することが許可されており、
+ また、暗号化の変更前にデータレコードが完全であることを確認しました
+ レベルが受け入れられます。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+ \param level - データが暗号化されたレベル
+ \param data - データ自体
+ \param len - データの長さ
+
+ \sa wolfSSL_process_quic_post_handshake
+*/
+int wolfSSL_provide_quic_data(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル, const uint8_t *data, size_t len);
+
+/*!
+ \ingroup QUIC
+
+ \brief ハンドシェイク後に提供されたすべての CRYPTO レコードを処理します
+ 完了しました。 それより前に呼び出すと失敗します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_provide_quic_data
+ \sa wolfSSL_quic_read_write
+ \sa wolfSSL_accept
+ \sa wolfSSL_connect
+*/
+WOLFSSL_API int wolfSSL_process_quic_post_handshake(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief ハンドシェイク中またはハンドシェイク後に提供されたすべての CRYPTO レコードを処理します。
+ ハンドシェイクがまだ完了していない場合は進行し、そうでない場合は次のように機能します
+ wolfSSL_process_quic_post_handshake()。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_provide_quic_data
+ \sa wolfSSL_quic_read_write
+ \sa wolfSSL_accept
+ \sa wolfSSL_connect
+*/
+int wolfSSL_quic_read_write(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief TLS ハンドシェイクでネゴシエートされた AEAD 暗号を取得します。
+
+ \return ネゴシエートされた暗号、または決定されない場合は NULL を返します。
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_quic_aad_is_gcm
+ \sa wolfSSL_quic_aad_is_ccm
+ \sa wolfSSL_quic_aad_is_chacha20
+ \sa wolfSSL_quic_get_aad_tag_len
+ \sa wolfSSL_quic_get_md
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_crypt_new
+ \sa wolfSSL_quic_aad_encrypt
+ \sa wolfSSL_quic_aad_decrypt
+*/
+const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_aad(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief AEAD 暗号が GCM かどうかを確認します。
+
+ \return != 0 (AEAD 暗号が GCM の場合)。
+
+ \param cipher - 暗号
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_aad_is_ccm
+ \sa wolfSSL_quic_aad_is_chacha20
+ \sa wolfSSL_quic_get_aad_tag_len
+ \sa wolfSSL_quic_get_md
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_crypt_new
+ \sa wolfSSL_quic_aad_encrypt
+ \sa wolfSSL_quic_aad_decrypt
+*/
+int wolfSSL_quic_aead_is_gcm(const WOLFSSL_EVP_CIPHER *aead_cipher);
+
+/*!
+ \ingroup QUIC
+
+ \brief AEAD 暗号が CCM かどうかを確認します。
+
+ \return != 0 AEAD 暗号が CCM の場合。
+
+ \param cipher - 暗号
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_aad_is_gcm
+ \sa wolfSSL_quic_aad_is_chacha20
+ \sa wolfSSL_quic_get_aad_tag_len
+ \sa wolfSSL_quic_get_md
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_crypt_new
+ \sa wolfSSL_quic_aad_encrypt
+ \sa wolfSSL_quic_aad_decrypt
+*/
+int wolfSSL_quic_aead_is_ccm(const WOLFSSL_EVP_CIPHER *aead_cipher);
+
+/*!
+ \ingroup QUIC
+
+ \brief AEAD 暗号が CHACHA20 かどうかを確認します。
+
+ \return != 0 は、AEAD 暗号が CHACHA20 の場合です。
+
+ \param cipher - 暗号
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_aad_is_ccm
+ \sa wolfSSL_quic_aad_is_gcm
+ \sa wolfSSL_quic_get_aad_tag_len
+ \sa wolfSSL_quic_get_md
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_crypt_new
+ \sa wolfSSL_quic_aad_encrypt
+ \sa wolfSSL_quic_aad_decrypt
+*/
+int wolfSSL_quic_aead_is_chacha20(const WOLFSSL_EVP_CIPHER *aead_cipher);
+
+/*!
+ \ingroup QUIC
+
+ \brief AEAD 暗号のタグの長さを決定します。
+
+ \return AEAD 暗号のタグ長。
+
+ \param cipher - 暗号
+
+ \sa wolfSSL_quic_get_aad
+*/
+WOLFSSL_API size_t wolfSSL_quic_get_aead_tag_len(const WOLFSSL_EVP_CIPHER *aead_cipher);
+
+/*!
+ \ingroup QUIC
+
+ \brief TLS ハンドシェイクでネゴシエートされたメッセージ ダイジェストを決定します。
+
+ \return TLS ハンドシェイクでネゴシエートされたメッセージ ダイジェストを返す
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_get_hp
+*/
+WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_quic_get_md(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief TLS ハンドシェイクでネゴシエートされたヘッダー保護暗号を決定します。
+
+ \return TLS ハンドシェイクでネゴシエートされたヘッダー保護暗号を返します
+
+ \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_get_md
+*/
+const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_hp(WOLFSSL *ssl);
+
+/*!
+ \ingroup QUIC
+
+ \brief 暗号化/復号化のための暗号コンテキストを作成します。
+
+ \return エラーの場合は、作成されたコンテキストまたは NULL を返します。
+
+ \param cipher - コンテキストで使用する暗号。
+ \param key - コンテキストで使用するキー。
+ \param iv - コンテキストで使用する iv。
+ \param encrypt - 暗号化の場合は != 0、それ以外の場合は復号化
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_aad_encrypt
+ \sa wolfSSL_quic_aad_decrypt
+*/
+WOLFSSL_EVP_CIPHER_CTX *wolfSSL_quic_crypt_new(const WOLFSSL_EVP_CIPHER *cipher,
+ const uint8_t *key, const uint8_t *iv, int encrypt);
+
+/*!
+ \ingroup QUIC
+
+ \brief 指定されたコンテキストでプレーン テキストを暗号化します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param dest - 暗号化されたデータの書き込み先
+ \param aead_ctx - 使用する暗号コンテキスト
+ \param plain - 暗号化するプレーン データ
+ \param plainlen - プレーン データの長さ
+ \param iv - 使用する iv
+ \param aad - 使用する追加
+ \param aadlen - aad の長さ
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_crypt_new
+ \sa wolfSSL_quic_aad_decrypt
+*/
+int wolfSSL_quic_aead_encrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *aead_ctx,
+ const uint8_t *plain, size_t plainlen,
+ const uint8_t *iv, const uint8_t *aad, size_t aadlen);
+
+/*!
+ \ingroup QUIC
+
+ \brief 指定されたコンテキストで暗号文を復号化します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param dest - プレーンテキストの書き込み先
+ \param ctx - 使用する暗号コンテキスト
+ \param enc - 復号化する暗号化データ
+ \param envlen - 暗号化されたデータの長さ
+ \param iv - 使用する iv
+ \param aad - 使用する追加
+ \param aadlen - aad の長さ
+
+ \sa wolfSSL_quic_get_aad
+ \sa wolfSSL_quic_get_hp
+ \sa wolfSSL_quic_crypt_new
+ \sa wolfSSL_quic_aad_encrypt
+*/
+int wolfSSL_quic_aad_decrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *ctx,
+ const uint8_t *enc, size_t enclen,
+ const uint8_t *iv, const uint8_t *aad, size_t aadlen);
+
+/*!
+ \ingroup QUIC
+
+ \brief 擬似乱数キーを抽出します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param dest - キーの書き込み先
+ \param md - 使用するメッセージ ダイジェスト
+ \param secret - 使用するシークレット
+ \param secretlen - シークレットの長さ
+ \param salt - 使用するソルト
+ \param saltlen - ソルトの長さ
+
+ \sa wolfSSL_quic_hkdf_expand
+ \sa wolfSSL_quic_hkdf
+*/
+int wolfSSL_quic_hkdf_extract(uint8_t *dest, const WOLFSSL_EVP_MD *md,
+ const uint8_t *secret, size_t secretlen,
+ const uint8_t *salt, size_t saltlen);
+
+/*!
+ \ingroup QUIC
+
+ \brief 疑似ランダム キーを新しいキーに展開します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param dest - キーの書き込み先
+ \param destlen - 展開するキーの長さ
+ \param md - 使用するメッセージ ダイジェスト
+ \param secret - 使用するシークレット
+ \param secretlen - シークレットの長さ
+ \param info - 使用する情報
+ \param infolen - 情報の長さ
+
+ \sa wolfSSL_quic_hkdf_extract
+ \sa wolfSSL_quic_hkdf
+*/
+int wolfSSL_quic_hkdf_expand(uint8_t *dest, size_t destlen,
+ const WOLFSSL_EVP_MD *md,
+ const uint8_t *secret, size_t secretlen,
+ const uint8_t *info, size_t infolen);
+
+/*!
+ \ingroup QUIC
+
+ \brief 疑似乱数キーを展開して抽出します。
+
+ \return WOLFSSL_SUCCESS 成功した場合。
+
+ \param dest - キーの書き込み先
+ \param destlen - キーの長さ
+ \param md - 使用するメッセージ ダイジェスト
+ \param secret - 使用するシークレット
+ \param secretlen - シークレットの長さ
+ \param salt - 使用するソルト
+ \param saltlen - ソルトの長さ
+ \param info - 使用する情報
+ \param infolen - 情報の長さ
+
+ \sa wolfSSL_quic_hkdf_extract
+ \sa wolfSSL_quic_hkdf_expand
+*/
+int wolfSSL_quic_hkdf(uint8_t *dest, size_t destlen,
+ const WOLFSSL_EVP_MD *md,
+ const uint8_t *secret, size_t secretlen,
+ const uint8_t *salt, size_t saltlen,
+ const uint8_t *info, size_t infolen);
diff --git a/examples/benchmark/include.am b/examples/benchmark/include.am
index 9440df4aa4..54abeec8c1 100644
--- a/examples/benchmark/include.am
+++ b/examples/benchmark/include.am
@@ -7,8 +7,8 @@ if BUILD_THREADED_EXAMPLES
noinst_PROGRAMS += examples/benchmark/tls_bench
noinst_HEADERS += examples/benchmark/tls_bench.h
examples_benchmark_tls_bench_SOURCES = examples/benchmark/tls_bench.c
-examples_benchmark_tls_bench_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_benchmark_tls_bench_DEPENDENCIES = src/libwolfssl.la
+examples_benchmark_tls_bench_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+examples_benchmark_tls_bench_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
dist_example_DATA+= examples/benchmark/tls_bench.c
diff --git a/examples/benchmark/tls_bench.c b/examples/benchmark/tls_bench.c
index 88f79552cd..91468bc779 100644
--- a/examples/benchmark/tls_bench.c
+++ b/examples/benchmark/tls_bench.c
@@ -1,6 +1,6 @@
/* tls_bench.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/benchmark/tls_bench.h b/examples/benchmark/tls_bench.h
index 5ebbbfd045..6ed021b63d 100644
--- a/examples/benchmark/tls_bench.h
+++ b/examples/benchmark/tls_bench.h
@@ -1,6 +1,6 @@
/* tls_bench.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/client/client.c b/examples/client/client.c
index 0c1ebc3791..973fb21f16 100644
--- a/examples/client/client.c
+++ b/examples/client/client.c
@@ -1,6 +1,6 @@
/* client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -799,20 +799,19 @@ static int ClientBenchmarkThroughput(WOLFSSL_CTX* ctx, char* host, word16 port,
if (exitWithRet)
return err;
- printf(
-#if !defined(__MINGW32__)
- "wolfSSL Client Benchmark %zu bytes\n"
+#ifdef __MINGW32__
+#define SIZE_FMT "%d"
+#define SIZE_TYPE int
#else
- "wolfSSL Client Benchmark %d bytes\n"
+#define SIZE_FMT "%zu"
+#define SIZE_TYPE size_t
#endif
+ printf(
+ "wolfSSL Client Benchmark " SIZE_FMT " bytes\n"
"\tConnect %8.3f ms\n"
"\tTX %8.3f ms (%8.3f MBps)\n"
"\tRX %8.3f ms (%8.3f MBps)\n",
-#if !defined(__MINGW32__)
- throughput,
-#else
- (int)throughput,
-#endif
+ (SIZE_TYPE)throughput,
conn_time * 1000,
tx_time * 1000, throughput / tx_time / 1024 / 1024,
rx_time * 1000, throughput / rx_time / 1024 / 1024
@@ -843,7 +842,8 @@ static int StartTLS_Init(SOCKET_T* sockfd)
if (recv(*sockfd, tmpBuf, sizeof(tmpBuf)-1, 0) < 0)
err_sys("failed to read STARTTLS command\n");
- if (!XSTRCMP(tmpBuf, starttlsCmd[0])) {
+ if ((!XSTRNCMP(tmpBuf, starttlsCmd[0], XSTRLEN(starttlsCmd[0]))) &&
+ (tmpBuf[XSTRLEN(starttlsCmd[0])] == ' ')) {
printf("%s\n", tmpBuf);
} else {
err_sys("incorrect STARTTLS command received");
@@ -859,7 +859,8 @@ static int StartTLS_Init(SOCKET_T* sockfd)
if (recv(*sockfd, tmpBuf, sizeof(tmpBuf)-1, 0) < 0)
err_sys("failed to read STARTTLS command\n");
- if (!XSTRCMP(tmpBuf, starttlsCmd[2])) {
+ if ((!XSTRNCMP(tmpBuf, starttlsCmd[2], XSTRLEN(starttlsCmd[2]))) &&
+ (tmpBuf[XSTRLEN(starttlsCmd[2])] == '-')) {
printf("%s\n", tmpBuf);
} else {
err_sys("incorrect STARTTLS command received");
@@ -876,7 +877,9 @@ static int StartTLS_Init(SOCKET_T* sockfd)
if (recv(*sockfd, tmpBuf, sizeof(tmpBuf)-1, 0) < 0)
err_sys("failed to read STARTTLS command\n");
tmpBuf[sizeof(tmpBuf)-1] = '\0';
- if (!XSTRCMP(tmpBuf, starttlsCmd[4])) {
+
+ if ((!XSTRNCMP(tmpBuf, starttlsCmd[4], XSTRLEN(starttlsCmd[4]))) &&
+ (tmpBuf[XSTRLEN(starttlsCmd[4])] == ' ')) {
printf("%s\n", tmpBuf);
} else {
err_sys("incorrect STARTTLS command received, expected 220");
@@ -3658,7 +3661,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
}
}
-#ifdef HAVE_CRL
+#if defined(HAVE_CRL) && !defined(NO_FILESYSTEM)
if (disableCRL == 0 && !useVerifyCb) {
#if defined(HAVE_IO_TIMEOUT) && defined(HAVE_HTTP_CLIENT)
wolfIO_SetTimeout(DEFAULT_TIMEOUT_SEC);
@@ -4269,7 +4272,8 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
}
#endif
-#if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE)
+#if !defined(NO_SESSION_CACHE) && (defined(OPENSSL_EXTRA) || \
+ defined(HAVE_EXT_CACHE))
if (flatSession) {
const byte* constFlatSession = flatSession;
session = wolfSSL_d2i_SSL_SESSION(NULL,
@@ -4279,7 +4283,8 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
wolfSSL_set_session(sslResume, session);
-#if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE)
+#if !defined(NO_SESSION_CACHE) && (defined(OPENSSL_EXTRA) || \
+ defined(HAVE_EXT_CACHE))
if (flatSession) {
XFREE(flatSession, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
@@ -4450,7 +4455,8 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
exit:
#ifdef WOLFSSL_WOLFSENTRY_HOOKS
- wolfsentry_ret = wolfsentry_shutdown(&wolfsentry);
+ wolfsentry_ret =
+ wolfsentry_shutdown(WOLFSENTRY_CONTEXT_ARGS_OUT_EX(&wolfsentry));
if (wolfsentry_ret < 0) {
fprintf(stderr,
"wolfsentry_shutdown() returned " WOLFSENTRY_ERROR_FMT "\n",
diff --git a/examples/client/client.h b/examples/client/client.h
index 9922c7a3f6..3317670e59 100644
--- a/examples/client/client.h
+++ b/examples/client/client.h
@@ -1,6 +1,6 @@
/* client.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/client/client.vcxproj b/examples/client/client.vcxproj
index 3704f4feee..10eb69d881 100644
--- a/examples/client/client.vcxproj
+++ b/examples/client/client.vcxproj
@@ -42,46 +42,46 @@
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
@@ -333,4 +333,4 @@
-
+
\ No newline at end of file
diff --git a/examples/client/include.am b/examples/client/include.am
index a4fb59a118..36e65f218c 100644
--- a/examples/client/include.am
+++ b/examples/client/include.am
@@ -5,8 +5,8 @@ if BUILD_EXAMPLE_CLIENTS
noinst_PROGRAMS += examples/client/client
noinst_HEADERS += examples/client/client.h
examples_client_client_SOURCES = examples/client/client.c
-examples_client_client_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
-examples_client_client_DEPENDENCIES = src/libwolfssl.la
+examples_client_client_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
+examples_client_client_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
examples_client_client_CFLAGS = $(WOLFSENTRY_INCLUDE) $(AM_CFLAGS)
endif
EXTRA_DIST += examples/client/client.sln
diff --git a/examples/configs/user_settings_all.h b/examples/configs/user_settings_all.h
index 695f952e4b..29d21756af 100644
--- a/examples/configs/user_settings_all.h
+++ b/examples/configs/user_settings_all.h
@@ -1,6 +1,6 @@
/* user_settings_all.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -50,22 +50,30 @@ extern "C" {
#define HAVE_NULL_CIPHER /* Enable use of TLS cipher suites without cipher (clear text / no encryption) */
#define WOLFSSL_HAVE_CERT_SERVICE
#define WOLFSSL_JNI
-#define WOLFSSL_SEP
+#define WOLFSSL_SEP /* certificate policy set extension */
#define WOLFCRYPT_HAVE_SRP
#define WOLFSSL_HAVE_WOLFSCEP
#define WOLFSSL_ENCRYPTED_KEYS /* Support for encrypted keys PKCS8 */
#define HAVE_PKCS7
-#define WOLFSSL_MULTI_ATTRIB
-#define WOLFSSL_DER_LOAD
-#define ASN_BER_TO_DER /* BER to DER support */
#define WOLFSSL_SIGNER_DER_CERT
+#define WOLFSSL_TRUST_PEER_CERT
+#define WOLFSSL_SYS_CA_CERTS /* Enable ability to load CA certs from OS */
+#define WOLFSSL_WOLFSSH
+#define WC_NO_ASYNC_THREADING
//#define HAVE_THREAD_LS /* DG Commented: Thread local storage - may not be portable */
//#define WOLFSSL_AEAD_ONLY /* automatically set if TLS v1.3 only, but can be enabled for TLS v1.2 manually */
/* TLS Features */
-#define WOLFSSL_DTLS
#define WOLFSSL_TLS13
#define WOLFSSL_EITHER_SIDE /* allow generic server/client method for WOLFSSL_CTX new */
+#define WOLFSSL_TLS13_NO_PEEK_HANDSHAKE_DONE
+
+/* DTLS */
+#define WOLFSSL_DTLS
+#define WOLFSSL_MULTICAST
+
+/* DTLS v1.3 is not yet included with enable-all */
+//#define WOLFSSL_DTLS13
/* DG Disabled SSLv3 and TLSv1.0 - should avoid using */
//#define WOLFSSL_ALLOW_SSLV3
@@ -80,9 +88,17 @@ extern "C" {
#define HAVE_MAX_FRAGMENT
#define HAVE_TRUNCATED_HMAC
#define HAVE_SESSION_TICKET
+#define WOLFSSL_TICKET_HAVE_ID
+#define WOLFSSL_FORCE_CACHE_ON_TICKET
#define HAVE_EXTENDED_MASTER
#define HAVE_TRUSTED_CA
#define HAVE_ENCRYPT_THEN_MAC
+#define WOLFSSL_POST_HANDSHAKE_AUTH
+#define WOLFSSL_SEND_HRR_COOKIE /* Used by DTLS v1.3 */
+#define HAVE_ANON /* anon cipher suites */
+#define HAVE_FALLBACK_SCSV /* TLS_FALLBACK_SCSV */
+#define WOLFSSL_EARLY_DATA
+#define HAVE_SERVER_RENEGOTIATION_INFO
/* TLS Session Cache */
#define SESSION_CERTS
@@ -94,6 +110,22 @@ extern "C" {
#define WOLFSSL_CERT_GEN
#define WOLFSSL_CERT_REQ
#define WOLFSSL_CERT_EXT
+#define WOLFSSL_MULTI_ATTRIB
+#define HAVE_SMIME
+#define WOLFSSL_DER_LOAD
+#define ASN_BER_TO_DER /* BER to DER support */
+#define WOLFSSL_HAVE_ISSUER_NAMES /* Store pointers to issuer name components and their lengths and encodings */
+#define WOLFSSL_SUBJ_DIR_ATTR /* Enable support for SubjectDirectoryAttributes extension */
+#define WOLFSSL_SUBJ_INFO_ACC /* Enable support for SubjectInfoAccess extension */
+#define WOLFSSL_CERT_NAME_ALL /* Adds more certificate name capability at the cost of taking up more memory. Adds initials, givenname, dnQualifer for example */
+#define WOLFSSL_FPKI /* Enable support for FPKI (Federal PKI) extensions */
+#define WOLFSSL_AKID_NAME /* Enable support for full AuthorityKeyIdentifier extension. Only supports copying full AKID from an existing certificate */
+#define HAVE_CTS /* Ciphertext stealing interface */
+#define WOLFSSL_PEM_TO_DER
+#define WOLFSSL_DER_TO_PEM
+#define WOLFSSL_CUSTOM_OID
+#define HAVE_OID_ENCODING
+//#define WOLFSSL_ASN_TEMPLATE /* Not enabled yet by default */
/* Certificate Revocation */
#define HAVE_OCSP
@@ -105,11 +137,21 @@ extern "C" {
//#define HAVE_CRL_MONITOR /* DG Disabled (Monitors CRL files on filesystem) - not portable feature */
-/* Fast math key size 4096-bit max */
-#define USE_FAST_MATH
-#define FP_MAX_BITS 8192
+#if 1
+ /* sp_int.c */
+ #define WOLFSSL_SP_MATH_ALL
+#else
+ /* Fast math key size 4096-bit max */
+ #define USE_FAST_MATH
+#endif
//#define HAVE___UINT128_T 1 /* DG commented: May not be portable */
+/* Max Sizes */
+#define RSA_MAX_SIZE 4096
+#define FP_MAX_BITS 8192
+#define SP_INT_BITS 4096
+
+
/* Timing Resistance */
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
@@ -118,6 +160,8 @@ extern "C" {
/* DH Key Sizes */
#define HAVE_FFDHE_2048
#define HAVE_FFDHE_3072
+#define WOLFSSL_DH_EXTRA /* Enable additional DH key import/export */
+#define HAVE_DH_DEFAULT_PARAMS
/* ECC Features */
#define HAVE_ECC
@@ -132,9 +176,14 @@ extern "C" {
#define HAVE_COMP_KEY /* Compressed key support */
#define FP_ECC /* Fixed point caching - speed repeated operations against same key */
#define HAVE_ECC_ENCRYPT
+#define WOLFCRYPT_HAVE_ECCSI
+#define WOLFCRYPT_HAVE_SAKKE
+#define WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT
/* RSA */
#define WC_RSA_PSS
+#define WOLFSSL_PSS_LONG_SALT
+#define WC_RSA_NO_PADDING
/* AES */
#define HAVE_AES_DECRYPT
@@ -142,11 +191,16 @@ extern "C" {
#define WOLFSSL_AES_DIRECT
#define WOLFSSL_AES_COUNTER
#define HAVE_AESGCM
+#define GCM_TABLE_4BIT
+#define WOLFSSL_AESGCM_STREAM
#define HAVE_AESCCM
#define WOLFSSL_AES_OFB
#define WOLFSSL_AES_CFB
#define WOLFSSL_AES_XTS
#define HAVE_AES_KEYWRAP
+#define WOLFSSL_AES_CBC_LENGTH_CHECKS
+#define WOLFSSL_USE_ALIGN
+#define WOLFSSL_AES_SIV
/* Hashing */
#define WOLFSSL_SHA224
@@ -155,29 +209,44 @@ extern "C" {
#define WOLFSSL_SHAKE256
#define WOLFSSL_SHA3
#define WOLFSSL_HASH_FLAGS /* enable hash flag API's */
+#define WOLFSSL_SHAKE256
/* Additional Algorithms */
#define HAVE_HASHDRBG
#define HAVE_CURVE25519
#define HAVE_ED25519
+#define WOLFSSL_ED25519_STREAMING_VERIFY
#define CURVED25519_SMALL
+#define HAVE_ED448
+#define WOLFSSL_ED448_STREAMING_VERIFY
#define HAVE_CURVE448
#define HAVE_POLY1305
#define HAVE_CHACHA
+#define HAVE_XCHACHA
#define HAVE_HKDF
#define HAVE_X963_KDF
#define WOLFSSL_CMAC
#define WOLFSSL_DES_ECB
+#define HAVE_BLAKE2
+#define HAVE_BLAKE2B
+#define HAVE_BLAKE2S
+#define WOLFSSL_SIPHASH
+#define HAVE_KEYING_MATERIAL
+#define WOLFSSL_HAVE_PRF
+
/* Non-Standard Algorithms (DG disabled) */
//#define HAVE_CAMELLIA
//#define WOLFSSL_RIPEMD
//#define HAVE_SCRYPT
+//#define WOLFSSL_MD2
+//#define WOLFSSL_ALLOW_RC4
/* Encoding */
#define WOLFSSL_BASE16
#define WOLFSSL_BASE64_ENCODE
+
/* Openssl compatibility */
#if 0 /* DG Disabled */
/* Openssl compatibility API's */
@@ -192,6 +261,13 @@ extern "C" {
#define NO_OLD_WC_NAMES
#define NO_OLD_SSL_NAMES
#define NO_OLD_SHA_NAMES
+ #define NO_OLD_MD5_NAME
+ #define OPENSSL_NO_EC /* macro to enable ECC in openssl */
+ #define WOLFSSL_VERBOSE_ERRORS
+ #define ERROR_QUEUE_PER_THREAD
+ #define WOLFSSL_ERROR_CODE_OPENSSL
+ #define HAVE_WOLFSSL_SSL_H 1
+ #define OPENSSL_COMPATIBLE_DEFAULTS
/* Openssl compatibility application specific */
#define WOLFSSL_LIBWEBSOCKETS
@@ -206,6 +282,9 @@ extern "C" {
#define WOLFSSL_ASIO
#define ASIO_USE_WOLFSSL
#define BOOST_ASIO_USE_WOLFSSL
+ #define WOLFSSL_OPENVPN
+
+ #define NO_WOLFSSL_STUB
#endif
/* TLS static cipher support - off by default */
@@ -222,6 +301,68 @@ extern "C" {
#endif
+/* Used to manually test disable edge cases */
+#ifdef TEST_DISABLES
+ #define NO_SESSION_CACHE
+
+ //#define NO_ECC256
+ //#define NO_ECC_KEY_EXPORT
+ //#define NO_ECC_DHE
+ //#define NO_ECC_SIGN
+ //#define NO_ECC_VERIFY
+
+ //#define NO_RSA
+ #define NO_DH
+ #define NO_DSA
+
+ #define NO_SHA
+ #define NO_SHA256
+ #ifdef NO_SHA256
+ #undef WOLFSSL_SHA224
+ #endif
+ #define NO_SHA512
+ #ifdef NO_SHA512
+ #undef WOLFSSL_SHA384
+ #undef WOLFSSL_SHA512
+ #undef HAVE_ED25519
+ #endif
+ #define NO_MD4
+ #define NO_MD5
+ //#define NO_KDF
+ //#define NO_HMAC
+
+ #define NO_RC4
+ #define NO_DES3
+ //#define NO_AES
+ #define NO_AES_CBC
+ #define WOLFSSL_NO_SHAKE128
+
+ #define NO_PSK
+ #define NO_PWDBASED
+ #define NO_OLD_TLS
+ //#define WOLFSSL_NO_TLS12
+
+ //#define NO_64BIT
+ #define WOLFSSL_SP_NO_MALLOC
+ #define NO_FILESYSTEM
+ #define NO_WRITEV
+
+ #define NO_ERROR_STRINGS
+ //#define NO_WOLFSSL_CLIENT
+ //#define NO_WOLFSSL_SERVER
+
+ #define NO_MULTIBYTE_PRINT
+ //#define NO_ASN_TIME
+ //#define NO_ASN_CRYPT
+ //#define NO_CODING
+ #define NO_SIG_WRAPPER
+ //#define NO_HASH_WRAPPER
+ //#define WC_NO_HARDEN
+
+ //#define NO_CERTS
+ //#define NO_ASN
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/examples/configs/user_settings_fipsv2.h b/examples/configs/user_settings_fipsv2.h
index df1ee4fe41..f6096341e4 100644
--- a/examples/configs/user_settings_fipsv2.h
+++ b/examples/configs/user_settings_fipsv2.h
@@ -1,6 +1,6 @@
/* user_settings_fipsv2.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/configs/user_settings_fipsv5.h b/examples/configs/user_settings_fipsv5.h
index 441b5a8471..9f6bbfd463 100644
--- a/examples/configs/user_settings_fipsv5.h
+++ b/examples/configs/user_settings_fipsv5.h
@@ -1,6 +1,6 @@
/* user_settings_fipsv5.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/configs/user_settings_min_ecc.h b/examples/configs/user_settings_min_ecc.h
index 4f2d662ddf..f052500331 100644
--- a/examples/configs/user_settings_min_ecc.h
+++ b/examples/configs/user_settings_min_ecc.h
@@ -1,6 +1,6 @@
/* user_settings_min_ecc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/configs/user_settings_stm32.h b/examples/configs/user_settings_stm32.h
index bc5fb7e872..eb60161dba 100644
--- a/examples/configs/user_settings_stm32.h
+++ b/examples/configs/user_settings_stm32.h
@@ -1,6 +1,6 @@
/* wolfSSL_conf.h (example of generated wolfSSL.I-CUBE-wolfSSL_conf.h)
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/configs/user_settings_template.h b/examples/configs/user_settings_template.h
index d6950bce67..4bc6da7155 100644
--- a/examples/configs/user_settings_template.h
+++ b/examples/configs/user_settings_template.h
@@ -1,6 +1,6 @@
/* user_settings_template.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/configs/user_settings_wolfboot_keytools.h b/examples/configs/user_settings_wolfboot_keytools.h
index 2d26a7e21a..ee283710b4 100644
--- a/examples/configs/user_settings_wolfboot_keytools.h
+++ b/examples/configs/user_settings_wolfboot_keytools.h
@@ -4,7 +4,7 @@
* Enabled via WOLFSSL_USER_SETTINGS.
*
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -26,7 +26,7 @@
#ifndef H_USER_SETTINGS_
#define H_USER_SETTINGS_
-#include
+/* #include */ /* DG: Removed, not needed for testing */
/* System */
#define WOLFSSL_GENERAL_ALIGNMENT 4
@@ -35,8 +35,6 @@
#define SIZEOF_LONG_LONG 8
/* Math */
-#define WOLFSSL_SP
-#define WOLFSSL_SP_NO_3072
#define USE_FAST_MATH
#define FP_MAX_BITS (4096 * 2)
#define TFM_TIMING_RESISTANT
@@ -45,10 +43,18 @@
#define HAVE_ECC
#define WOLFSSL_HAVE_SP_ECC
#define ECC_TIMING_RESISTANT
+#define HAVE_ECC256
+#define HAVE_ECC384
+#define HAVE_ECC521
/* ED25519 */
#define HAVE_ED25519
-#define CURVED25519_SMALL
+/* DG: Added, since --enable-usersettings expects small version to be used */
+#define ED25519_SMALL
+
+/* ED448 */
+#define HAVE_ED448
+#define WOLFSSL_SHAKE256
/* RSA */
#define HAVE_RSA
@@ -58,14 +64,18 @@
/* Hashing */
#define WOLFSSL_SHA512 /* Required for ED25519 */
+#define WOLFSSL_SHA384
#define WOLFSSL_SHA3
#undef NO_SHA256
/* Chacha stream cipher */
#define HAVE_CHACHA
+/* AES */
+#define WOLFSSL_AES_COUNTER
+#define WOLFSSL_AES_DIRECT
+
/* Disables */
-#define NO_AES
#define NO_CMAC
#define NO_HMAC
#define NO_RC4
@@ -73,15 +83,16 @@
#define NO_DH
#define NO_DSA
#define NO_MD4
+#define NO_RABBIT
#define NO_MD5
#define NO_SIG_WRAPPER
#define NO_CERT
#define NO_SESSION_CACHE
+#define NO_HC128
#define NO_DES3
#define NO_PWDBASED
#define NO_WRITEV
#define NO_FILESYSTEM
-//#define NO_MAIN_DRIVER
#define NO_OLD_RNGNAME
#define NO_WOLFSSL_DIR
#define WOLFSSL_NO_SOCK
@@ -89,7 +100,10 @@
#define NO_ERROR_STRINGS
#define BENCH_EMBEDDED
-#define NO_CRYPT_TEST
-#define NO_CRYPT_BENCHMARK
+
+/* DG: Removed since we need it here for testing */
+/* #define NO_MAIN_DRIVER */
+/* #define NO_CRYPT_TEST */
+/* #define NO_CRYPT_BENCHMARK */
#endif /* !H_USER_SETTINGS_ */
diff --git a/examples/echoclient/echoclient.c b/examples/echoclient/echoclient.c
index 35a4219d55..740af4ed0f 100644
--- a/examples/echoclient/echoclient.c
+++ b/examples/echoclient/echoclient.c
@@ -1,6 +1,6 @@
/* echoclient.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/echoclient/echoclient.h b/examples/echoclient/echoclient.h
index 9cf5f59015..23c4597c3d 100644
--- a/examples/echoclient/echoclient.h
+++ b/examples/echoclient/echoclient.h
@@ -1,6 +1,6 @@
/* echoclient.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/echoclient/echoclient.vcxproj b/examples/echoclient/echoclient.vcxproj
index b291d634d6..61bb7240ad 100644
--- a/examples/echoclient/echoclient.vcxproj
+++ b/examples/echoclient/echoclient.vcxproj
@@ -42,46 +42,46 @@
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
@@ -333,4 +333,4 @@
-
+
\ No newline at end of file
diff --git a/examples/echoclient/include.am b/examples/echoclient/include.am
index aab6312e36..5cae9be273 100644
--- a/examples/echoclient/include.am
+++ b/examples/echoclient/include.am
@@ -7,8 +7,8 @@ if BUILD_EXAMPLE_CLIENTS
noinst_PROGRAMS += examples/echoclient/echoclient
noinst_HEADERS += examples/echoclient/echoclient.h
examples_echoclient_echoclient_SOURCES = examples/echoclient/echoclient.c
-examples_echoclient_echoclient_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_echoclient_echoclient_DEPENDENCIES = src/libwolfssl.la
+examples_echoclient_echoclient_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+examples_echoclient_echoclient_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += examples/echoclient/echoclient.sln
EXTRA_DIST += examples/echoclient/echoclient.vcproj
diff --git a/examples/echoserver/echoserver.c b/examples/echoserver/echoserver.c
index 7b8adb8226..5a01c1226c 100644
--- a/examples/echoserver/echoserver.c
+++ b/examples/echoserver/echoserver.c
@@ -1,6 +1,6 @@
/* echoserver.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/echoserver/echoserver.h b/examples/echoserver/echoserver.h
index 85cf5b28bd..a73c549ea3 100644
--- a/examples/echoserver/echoserver.h
+++ b/examples/echoserver/echoserver.h
@@ -1,6 +1,6 @@
/* echoserver.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/echoserver/echoserver.vcxproj b/examples/echoserver/echoserver.vcxproj
index 775ccc8181..1ff84bb877 100644
--- a/examples/echoserver/echoserver.vcxproj
+++ b/examples/echoserver/echoserver.vcxproj
@@ -42,46 +42,46 @@
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
@@ -333,4 +333,4 @@
-
+
\ No newline at end of file
diff --git a/examples/echoserver/include.am b/examples/echoserver/include.am
index 7b754b25c5..f278ca9dd1 100644
--- a/examples/echoserver/include.am
+++ b/examples/echoserver/include.am
@@ -7,8 +7,8 @@ if BUILD_EXAMPLE_SERVERS
noinst_PROGRAMS += examples/echoserver/echoserver
noinst_HEADERS += examples/echoserver/echoserver.h
examples_echoserver_echoserver_SOURCES = examples/echoserver/echoserver.c
-examples_echoserver_echoserver_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_echoserver_echoserver_DEPENDENCIES = src/libwolfssl.la
+examples_echoserver_echoserver_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+examples_echoserver_echoserver_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += examples/echoserver/echoserver.sln
EXTRA_DIST += examples/echoserver/echoserver.vcproj
diff --git a/examples/sctp/include.am b/examples/sctp/include.am
index ae970b40b3..fd0b0b2621 100644
--- a/examples/sctp/include.am
+++ b/examples/sctp/include.am
@@ -11,8 +11,8 @@ noinst_PROGRAMS += \
examples_sctp_sctp_server_SOURCES = examples/sctp/sctp-server.c
examples_sctp_sctp_server_LDADD = $(LIB_STATIC_ADD)
examples_sctp_sctp_server_dtls_SOURCES = examples/sctp/sctp-server-dtls.c
-examples_sctp_sctp_server_dtls_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_sctp_sctp_server_dtls_DEPENDENCIES = src/libwolfssl.la
+examples_sctp_sctp_server_dtls_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+examples_sctp_sctp_server_dtls_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
if BUILD_EXAMPLE_CLIENTS
noinst_PROGRAMS += \
@@ -21,8 +21,8 @@ noinst_PROGRAMS += \
examples_sctp_sctp_client_SOURCES = examples/sctp/sctp-client.c
examples_sctp_sctp_client_LDADD = $(LIB_STATIC_ADD)
examples_sctp_sctp_client_dtls_SOURCES = examples/sctp/sctp-client-dtls.c
-examples_sctp_sctp_client_dtls_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_sctp_sctp_client_dtls_DEPENDENCIES = src/libwolfssl.la
+examples_sctp_sctp_client_dtls_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+examples_sctp_sctp_client_dtls_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
endif
diff --git a/examples/sctp/sctp-client-dtls.c b/examples/sctp/sctp-client-dtls.c
index f624d87294..dcc426534a 100644
--- a/examples/sctp/sctp-client-dtls.c
+++ b/examples/sctp/sctp-client-dtls.c
@@ -1,6 +1,6 @@
/* sctp-client-dtls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/sctp/sctp-client.c b/examples/sctp/sctp-client.c
index 98776a2a88..fdabe43c4a 100644
--- a/examples/sctp/sctp-client.c
+++ b/examples/sctp/sctp-client.c
@@ -1,6 +1,6 @@
/* sctp-client.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/sctp/sctp-server-dtls.c b/examples/sctp/sctp-server-dtls.c
index 964df625f9..802b7d4088 100644
--- a/examples/sctp/sctp-server-dtls.c
+++ b/examples/sctp/sctp-server-dtls.c
@@ -1,6 +1,6 @@
/* sctp-server-dtls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/sctp/sctp-server.c b/examples/sctp/sctp-server.c
index 24c52a2ae7..3f8f6d803e 100644
--- a/examples/sctp/sctp-server.c
+++ b/examples/sctp/sctp-server.c
@@ -1,6 +1,6 @@
/* sctp-server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/server/include.am b/examples/server/include.am
index b7676016bc..cb591d9e34 100644
--- a/examples/server/include.am
+++ b/examples/server/include.am
@@ -7,8 +7,8 @@ if BUILD_EXAMPLE_SERVERS
noinst_PROGRAMS += examples/server/server
noinst_HEADERS += examples/server/server.h
examples_server_server_SOURCES = examples/server/server.c
-examples_server_server_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
-examples_server_server_DEPENDENCIES = src/libwolfssl.la
+examples_server_server_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
+examples_server_server_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
examples_server_server_CFLAGS = $(WOLFSENTRY_INCLUDE) $(AM_CFLAGS)
endif
EXTRA_DIST += examples/server/server.sln
diff --git a/examples/server/server.c b/examples/server/server.c
index 20d8ebe688..5d6db17af4 100644
--- a/examples/server/server.c
+++ b/examples/server/server.c
@@ -1,6 +1,6 @@
/* server.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -499,19 +499,18 @@ int ServerEchoData(SSL* ssl, int clientfd, int echoData, int block,
free(buffer);
if (throughput) {
+#ifdef __MINGW32__
+#define SIZE_FMT "%d"
+#define SIZE_TYPE int
+#else
+#define SIZE_FMT "%zu"
+#define SIZE_TYPE size_t
+#endif
printf(
- #if !defined(__MINGW32__)
- "wolfSSL Server Benchmark %zu bytes\n"
- #else
- "wolfSSL Server Benchmark %d bytes\n"
- #endif
+ "wolfSSL Server Benchmark " SIZE_FMT " bytes\n"
"\tRX %8.3f ms (%8.3f MBps)\n"
"\tTX %8.3f ms (%8.3f MBps)\n",
- #if !defined(__MINGW32__)
- throughput,
- #else
- (int)throughput,
- #endif
+ (SIZE_TYPE)throughput,
rx_time * 1000, throughput / rx_time / 1024 / 1024,
tx_time * 1000, throughput / tx_time / 1024 / 1024
);
@@ -2995,7 +2994,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
#ifndef NO_HANDSHAKE_DONE_CB
wolfSSL_SetHsDoneCb(ssl, myHsDoneCb, NULL);
#endif
-#ifdef HAVE_CRL
+#if defined(HAVE_CRL) && !defined(NO_FILESYSTEM)
if (!disableCRL) {
#ifdef HAVE_CRL_MONITOR
crlFlags = WOLFSSL_CRL_MONITOR | WOLFSSL_CRL_START_MON;
@@ -3021,8 +3020,9 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
}
#ifndef NO_RSA
/* All the OCSP Stapling test certs are RSA. */
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
+#if !defined(NO_FILESYSTEM) && (\
+ defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
+ || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2))
{ /* scope start */
const char* ca1 = "certs/ocsp/intermediate1-ca-cert.pem";
const char* ca2 = "certs/ocsp/intermediate2-ca-cert.pem";
@@ -3714,7 +3714,8 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
exit:
#ifdef WOLFSSL_WOLFSENTRY_HOOKS
- wolfsentry_ret = wolfsentry_shutdown(&wolfsentry);
+ wolfsentry_ret =
+ wolfsentry_shutdown(WOLFSENTRY_CONTEXT_ARGS_OUT_EX(&wolfsentry));
if (wolfsentry_ret < 0) {
fprintf(stderr,
"wolfsentry_shutdown() returned " WOLFSENTRY_ERROR_FMT "\n",
diff --git a/examples/server/server.h b/examples/server/server.h
index 1afd75aa36..dbf492b13d 100644
--- a/examples/server/server.h
+++ b/examples/server/server.h
@@ -1,6 +1,6 @@
/* server.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/examples/server/server.vcxproj b/examples/server/server.vcxproj
index 59e1ed7fdc..1c9dd0bca2 100644
--- a/examples/server/server.vcxproj
+++ b/examples/server/server.vcxproj
@@ -42,46 +42,46 @@
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
@@ -333,4 +333,4 @@
-
+
\ No newline at end of file
diff --git a/gencertbuf.pl b/gencertbuf.pl
index 27bc80cfb5..93860b75cf 100755
--- a/gencertbuf.pl
+++ b/gencertbuf.pl
@@ -111,9 +111,6 @@
["certs/dilithium/bench_dilithium_level2_key.der", "bench_dilithium_level2_key" ],
["certs/dilithium/bench_dilithium_level3_key.der", "bench_dilithium_level3_key" ],
["certs/dilithium/bench_dilithium_level5_key.der", "bench_dilithium_level5_key" ],
- ["certs/dilithium/bench_dilithium_aes_level2_key.der", "bench_dilithium_aes_level2_key" ],
- ["certs/dilithium/bench_dilithium_aes_level3_key.der", "bench_dilithium_aes_level3_key" ],
- ["certs/dilithium/bench_dilithium_aes_level5_key.der", "bench_dilithium_aes_level5_key" ],
);
#Sphincs+ Post-Quantum Keys
diff --git a/linuxkm/Kbuild b/linuxkm/Kbuild
index f42a07fce3..57ad487cfa 100644
--- a/linuxkm/Kbuild
+++ b/linuxkm/Kbuild
@@ -1,6 +1,6 @@
# Linux kernel-native Makefile ("Kbuild") for libwolfssl.ko
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/linuxkm/Makefile b/linuxkm/Makefile
index 1d26de88ea..667015fbe0 100644
--- a/linuxkm/Makefile
+++ b/linuxkm/Makefile
@@ -1,6 +1,6 @@
# libwolfssl Linux kernel module Makefile (wraps Kbuild-native makefile)
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/linuxkm/get_thread_size.c b/linuxkm/get_thread_size.c
index 868c8ff19f..ed273864e3 100644
--- a/linuxkm/get_thread_size.c
+++ b/linuxkm/get_thread_size.c
@@ -1,7 +1,7 @@
/* get_thread_size.c -- trivial program to determine stack frame size
* for a Linux kernel thread, given a configured source tree.
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/linuxkm/linuxkm_memory.c b/linuxkm/linuxkm_memory.c
index a4889704c0..660f9fbaa2 100644
--- a/linuxkm/linuxkm_memory.c
+++ b/linuxkm/linuxkm_memory.c
@@ -1,6 +1,6 @@
/* linuxkm_memory.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/linuxkm/linuxkm_wc_port.h b/linuxkm/linuxkm_wc_port.h
index 49e17325f9..5a7fb52669 100644
--- a/linuxkm/linuxkm_wc_port.h
+++ b/linuxkm/linuxkm_wc_port.h
@@ -1,6 +1,6 @@
/* linuxkm_wc_port.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -322,7 +322,11 @@
*/
#endif
#endif
- typeof(cpu_number) *cpu_number;
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 2, 0)
+ typeof(cpu_number) *cpu_number;
+ #else
+ typeof(pcpu_hot) *pcpu_hot;
+ #endif
typeof(nr_cpu_ids) *nr_cpu_ids;
#endif /* WOLFSSL_LINUXKM_SIMD_X86 */
@@ -459,7 +463,11 @@
*/
#endif
#endif
- #define cpu_number (*(wolfssl_linuxkm_get_pie_redirect_table()->cpu_number))
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 2, 0)
+ #define cpu_number (*(wolfssl_linuxkm_get_pie_redirect_table()->cpu_number))
+ #else
+ #define pcpu_hot (*(wolfssl_linuxkm_get_pie_redirect_table()->pcpu_hot))
+ #endif
#define nr_cpu_ids (*(wolfssl_linuxkm_get_pie_redirect_table()->nr_cpu_ids))
#endif
diff --git a/linuxkm/module_exports.c.template b/linuxkm/module_exports.c.template
index ab1b1f3407..87edee82ed 100644
--- a/linuxkm/module_exports.c.template
+++ b/linuxkm/module_exports.c.template
@@ -1,7 +1,7 @@
/* module_exports.c.template -- static preamble for dynamically generated
* module_exports.c (see Kbuild)
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/linuxkm/module_hooks.c b/linuxkm/module_hooks.c
index 608d34611d..3f703add0b 100644
--- a/linuxkm/module_hooks.c
+++ b/linuxkm/module_hooks.c
@@ -1,6 +1,6 @@
/* module_hooks.c -- module load/unload hooks for libwolfssl.ko
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -445,7 +445,11 @@ static int set_up_wolfssl_linuxkm_pie_redirect_table(void) {
*/
#endif
#endif
- wolfssl_linuxkm_pie_redirect_table.cpu_number = &cpu_number;
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 2, 0)
+ wolfssl_linuxkm_pie_redirect_table.cpu_number = &cpu_number;
+ #else
+ wolfssl_linuxkm_pie_redirect_table.pcpu_hot = &pcpu_hot;
+ #endif
wolfssl_linuxkm_pie_redirect_table.nr_cpu_ids = &nr_cpu_ids;
#endif
diff --git a/linuxkm/pie_first.c b/linuxkm/pie_first.c
index 21091d5984..aa2117bc6c 100644
--- a/linuxkm/pie_first.c
+++ b/linuxkm/pie_first.c
@@ -1,6 +1,6 @@
/* linuxkm/pie_first.c -- memory fenceposts for checking binary image stability
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/linuxkm/pie_last.c b/linuxkm/pie_last.c
index 1032860b34..35de6fc473 100644
--- a/linuxkm/pie_last.c
+++ b/linuxkm/pie_last.c
@@ -1,6 +1,6 @@
/* linuxkm/pie_last.c -- memory fenceposts for checking binary image stability
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/linuxkm/pie_redirect_table.c b/linuxkm/pie_redirect_table.c
index 652f9ed762..c624b9efc8 100644
--- a/linuxkm/pie_redirect_table.c
+++ b/linuxkm/pie_redirect_table.c
@@ -1,6 +1,6 @@
/* pie_redirect_table.c -- module load/unload hooks for libwolfssl.ko
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/m4/ax_linuxkm.m4 b/m4/ax_linuxkm.m4
index e494d06933..aebc2a6036 100644
--- a/m4/ax_linuxkm.m4
+++ b/m4/ax_linuxkm.m4
@@ -1,6 +1,6 @@
# ax_linuxkm.m4 -- macros for getting attributes of default configured kernel
#
-# Copyright (C) 2006-2022 wolfSSL Inc.
+# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
diff --git a/mcapi/crypto.c b/mcapi/crypto.c
index ea390bba48..abfe65f783 100644
--- a/mcapi/crypto.c
+++ b/mcapi/crypto.c
@@ -1,6 +1,6 @@
/* crypto.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/mcapi/crypto.h b/mcapi/crypto.h
index 6f79e2b19a..979d650070 100644
--- a/mcapi/crypto.h
+++ b/mcapi/crypto.h
@@ -1,6 +1,6 @@
/* crypto.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/mcapi/include.am b/mcapi/include.am
index 7a174c1c4b..aa36c19f85 100644
--- a/mcapi/include.am
+++ b/mcapi/include.am
@@ -7,8 +7,8 @@ check_PROGRAMS += mcapi/test
noinst_PROGRAMS += mcapi/test
mcapi_test_SOURCES = mcapi/crypto.c \
mcapi/mcapi_test.c
-mcapi_test_LDADD = src/libwolfssl.la
-mcapi_test_DEPENDENCIES = src/libwolfssl.la
+mcapi_test_LDADD = src/libwolfssl@LIBSUFFIX@.la
+mcapi_test_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
noinst_HEADERS += mcapi/crypto.h
diff --git a/mcapi/mcapi_test.c b/mcapi/mcapi_test.c
index 1bbce530cd..3e79de2ff4 100644
--- a/mcapi/mcapi_test.c
+++ b/mcapi/mcapi_test.c
@@ -1,6 +1,6 @@
/* mcapi_test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/mplabx/benchmark_main.c b/mplabx/benchmark_main.c
index e71e9b9f2a..ef4c82a914 100644
--- a/mplabx/benchmark_main.c
+++ b/mplabx/benchmark_main.c
@@ -1,6 +1,6 @@
/* benchmark_main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/mplabx/test_main.c b/mplabx/test_main.c
index 24739518fd..e072c08db5 100644
--- a/mplabx/test_main.c
+++ b/mplabx/test_main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/rpm/spec.in b/rpm/spec.in
index 753fc9af09..fe6e624c92 100644
--- a/rpm/spec.in
+++ b/rpm/spec.in
@@ -50,7 +50,7 @@ fi
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR="%{buildroot}" AM_INSTALL_PROGRAM_FLAGS=""
mkdir -p $RPM_BUILD_ROOT/
-%{__rm} -f %{buildroot}/%{_libdir}/libwolfssl.la
+%{__rm} -f %{buildroot}/%{_libdir}/libwolfssl@LIBSUFFIX@.la
%check
@@ -78,9 +78,9 @@ mkdir -p $RPM_BUILD_ROOT/
%{_docdir}/wolfssl/README.txt
%{_docdir}/wolfssl/QUIC.md
-%{_libdir}/libwolfssl.so
-%{_libdir}/libwolfssl.so.@WOLFSSL_LIBRARY_VERSION_FIRST@
-%{_libdir}/libwolfssl.so.@WOLFSSL_LIBRARY_VERSION_FIRST@.@WOLFSSL_LIBRARY_VERSION_SECOND@.@WOLFSSL_LIBRARY_VERSION_THIRD@
+%{_libdir}/libwolfssl@LIBSUFFIX@.so
+%{_libdir}/libwolfssl@LIBSUFFIX@.so.@WOLFSSL_LIBRARY_VERSION_FIRST@
+%{_libdir}/libwolfssl@LIBSUFFIX@.so.@WOLFSSL_LIBRARY_VERSION_FIRST@.@WOLFSSL_LIBRARY_VERSION_SECOND@.@WOLFSSL_LIBRARY_VERSION_THIRD@
%files devel
%defattr(-,root,root,-)
diff --git a/scripts/ocsp.test b/scripts/ocsp.test
index 49415b8493..0131b0bfd6 100755
--- a/scripts/ocsp.test
+++ b/scripts/ocsp.test
@@ -77,8 +77,8 @@ if test -n "$WOLFSSL_OCSP_TEST"; then
printf '%s\n' "Test Passed!"
exit 0
elif [ $GL_UNREACHABLE -eq 1 ] && [ $GR_RESULT -eq 0 ]; then
- printf '%s\n' "Global Sign is currently unreachable. Logging it but if"
- printf '%s\n' "this continues to occur should be investigated"
+ printf '%s\n' "Global Sign is currently unreachable. Logging it but if"
+ printf '%s\n' "this continues to occur should be investigated"
exit 0
else
# Unlike other environment variables the intent of WOLFSSL_OCSP_TEST
@@ -96,7 +96,7 @@ else
if [ $GL_RESULT -ne 0 ] && [ $GR_RESULT -ne 0 ]; then
printf '\n\n%s\n' "Both OCSP connection to globalsign and google failed"
printf '%s\n' "Test Failed!"
- exit 1
+ exit 77
else
printf '\n\n%s\n' "WOLFSSL_OCSP_TEST NOT set, and 1 of the tests passed"
printf '%s\n' "Test Passed!"
diff --git a/src/bio.c b/src/bio.c
index d9c67fc95c..f0921a2a52 100644
--- a/src/bio.c
+++ b/src/bio.c
@@ -1,6 +1,6 @@
/* bio.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/conf.c b/src/conf.c
index c8c2d40af3..a106fb608a 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -1,6 +1,6 @@
/* conf.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -330,7 +330,7 @@ static unsigned long wolfSSL_CONF_VALUE_hash(const WOLFSSL_CONF_VALUE *val)
return 0;
}
-/* Use SHA for hashing as OpenSSL uses a hash algorithm that is
+/* Use SHA[256] for hashing as OpenSSL uses a hash algorithm that is
* "not as good as MD5, but still good" so using SHA should be more
* than good enough for this application. The produced hashes don't
* need to line up between OpenSSL and wolfSSL. The hashes are for
@@ -338,19 +338,21 @@ static unsigned long wolfSSL_CONF_VALUE_hash(const WOLFSSL_CONF_VALUE *val)
unsigned long wolfSSL_LH_strhash(const char *str)
{
unsigned long ret = 0;
-#ifndef NO_SHA
- wc_Sha sha;
int strLen;
+#if !defined(NO_SHA)
+ wc_Sha sha;
byte digest[WC_SHA_DIGEST_SIZE];
+#elif !defined(NO_SHA256)
+ wc_Sha256 sha;
+ byte digest[WC_SHA256_DIGEST_SIZE];
#endif
WOLFSSL_ENTER("wolfSSL_LH_strhash");
if (!str)
return 0;
-
-#ifndef NO_SHA
strLen = (int)XSTRLEN(str);
+#if !defined(NO_SHA)
if (wc_InitSha_ex(&sha, NULL, 0) != 0) {
WOLFSSL_MSG("SHA1 Init failed");
return 0;
@@ -366,6 +368,25 @@ unsigned long wolfSSL_LH_strhash(const char *str)
}
}
wc_ShaFree(&sha);
+#elif !defined(NO_SHA256)
+ if (wc_InitSha256_ex(&sha, NULL, 0) != 0) {
+ WOLFSSL_MSG("SHA256 Init failed");
+ return 0;
+ }
+
+ ret = wc_Sha256Update(&sha, (const byte *)str, (word32)strLen);
+ if (ret != 0) {
+ WOLFSSL_MSG("SHA256 Update failed");
+ } else {
+ ret = wc_Sha256Final(&sha, digest);
+ if (ret != 0) {
+ WOLFSSL_MSG("SHA256 Final failed");
+ }
+ }
+ wc_Sha256Free(&sha);
+#endif
+
+#if !defined(NO_SHA) || !defined(NO_SHA256)
if (ret != 0)
return 0;
diff --git a/src/crl.c b/src/crl.c
index c9b120c8ee..d7083145ff 100644
--- a/src/crl.c
+++ b/src/crl.c
@@ -1,6 +1,6 @@
/* crl.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/dtls.c b/src/dtls.c
index d636dc8a67..ab8c79b9e0 100644
--- a/src/dtls.c
+++ b/src/dtls.c
@@ -1,6 +1,6 @@
/* dtls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/dtls13.c b/src/dtls13.c
index 35974911ca..217cb17ccd 100644
--- a/src/dtls13.c
+++ b/src/dtls13.c
@@ -1,6 +1,6 @@
/* dtls13.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/include.am b/src/include.am
index 309ee2815b..c11a4a27e4 100644
--- a/src/include.am
+++ b/src/include.am
@@ -27,13 +27,13 @@ $(FIPS_FILES):
$(AM_V_at)touch $(srcdir)/$@
if !BUILD_NO_LIBRARY
-lib_LTLIBRARIES+= src/libwolfssl.la
+lib_LTLIBRARIES+= src/libwolfssl@LIBSUFFIX@.la
endif
-src_libwolfssl_la_SOURCES =
-src_libwolfssl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFSSL_LIBRARY_VERSION}
-src_libwolfssl_la_LIBADD = $(LIBM) $(LIB_ADD) $(LIB_STATIC_ADD)
-src_libwolfssl_la_CFLAGS = -DBUILDING_WOLFSSL $(AM_CFLAGS) -DLIBWOLFSSL_GLOBAL_EXTRA_CFLAGS="\" $(EXTRA_CFLAGS)\""
-src_libwolfssl_la_CPPFLAGS = -DBUILDING_WOLFSSL $(AM_CPPFLAGS)
+src_libwolfssl@LIBSUFFIX@_la_SOURCES =
+src_libwolfssl@LIBSUFFIX@_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFSSL_LIBRARY_VERSION}
+src_libwolfssl@LIBSUFFIX@_la_LIBADD = $(LIBM) $(LIB_ADD) $(LIB_STATIC_ADD)
+src_libwolfssl@LIBSUFFIX@_la_CFLAGS = -DBUILDING_WOLFSSL $(AM_CFLAGS) -DLIBWOLFSSL_GLOBAL_EXTRA_CFLAGS="\" $(EXTRA_CFLAGS)\""
+src_libwolfssl@LIBSUFFIX@_la_CPPFLAGS = -DBUILDING_WOLFSSL $(AM_CPPFLAGS)
# install the packaged IPP libraries
if BUILD_FAST_RSA
@@ -53,114 +53,114 @@ if BUILD_FIPS
if BUILD_FIPS_V1
# fips first file
-src_libwolfssl_la_SOURCES += ctaocrypt/src/wolfcrypt_first.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/wolfcrypt_first.c
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
ctaocrypt/src/hmac.c \
ctaocrypt/src/random.c \
ctaocrypt/src/sha256.c
if BUILD_RSA
-src_libwolfssl_la_SOURCES += ctaocrypt/src/rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/rsa.c
endif
if BUILD_AES
-src_libwolfssl_la_SOURCES += ctaocrypt/src/aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/aes.c
endif
if BUILD_DES3
-src_libwolfssl_la_SOURCES += ctaocrypt/src/des3.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/des3.c
endif
if BUILD_SHA
-src_libwolfssl_la_SOURCES += ctaocrypt/src/sha.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/sha.c
endif
if BUILD_SHA512
-src_libwolfssl_la_SOURCES += ctaocrypt/src/sha512.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/sha512.c
endif
-src_libwolfssl_la_SOURCES += ctaocrypt/src/fips.c
-src_libwolfssl_la_SOURCES += ctaocrypt/src/fips_test.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/fips.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/fips_test.c
# fips last file
-src_libwolfssl_la_SOURCES += ctaocrypt/src/wolfcrypt_last.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += ctaocrypt/src/wolfcrypt_last.c
endif BUILD_FIPS_V1
if BUILD_FIPS_V2
# FIPSv2 first file
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/wolfcrypt_first.c
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/hmac.c \
wolfcrypt/src/random.c \
wolfcrypt/src/sha256.c
if BUILD_RSA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/rsa.c
endif
if BUILD_ECC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ecc.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ecc.c
endif
if BUILD_AES
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes.c
endif
if BUILD_AESNI
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
if BUILD_X86_ASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
endif
endif
if BUILD_DES3
-src_libwolfssl_la_SOURCES += wolfcrypt/src/des3.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/des3.c
endif
if BUILD_SHA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha.c
endif
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256_asm.S
endif
if BUILD_SHA512
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512_asm.S
endif
endif
if BUILD_SHA3
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3_asm.S
endif
endif
if BUILD_DH
-src_libwolfssl_la_SOURCES += wolfcrypt/src/dh.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dh.c
endif
if BUILD_CMAC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/cmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/cmac.c
endif
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fips.c \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fips.c \
wolfcrypt/src/fips_test.c
# fips last file
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wolfcrypt_last.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wolfcrypt_last.c
endif BUILD_FIPS_V2
if BUILD_FIPS_RAND
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/wolfcrypt_first.c \
wolfcrypt/src/hmac.c \
wolfcrypt/src/random.c \
@@ -173,105 +173,105 @@ endif BUILD_FIPS_RAND
if BUILD_FIPS_V5
# FIPS 140-3 first file
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/wolfcrypt_first.c
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/hmac.c \
wolfcrypt/src/random.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/kdf.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/kdf.c
if BUILD_RSA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/rsa.c
endif
if BUILD_ECC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ecc.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ecc.c
endif
if BUILD_AES
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes.c
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c
if !BUILD_ARMASM_CRYPTO
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-aes-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-aes-asm.S
endif
endif
endif
if BUILD_AESNI
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
if BUILD_X86_ASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
endif
endif
if BUILD_SHA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha.c
endif
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
endif
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256_asm.S
endif
endif
if BUILD_SHA512
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
endif
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512_asm.S
endif
endif
endif
if BUILD_SHA3
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3.c
if BUILD_ARMASM
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm.S
endif
endif
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3_asm.S
endif
endif
if BUILD_DH
-src_libwolfssl_la_SOURCES += wolfcrypt/src/dh.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dh.c
endif
if BUILD_CMAC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/cmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/cmac.c
endif
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fips.c \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fips.c \
wolfcrypt/src/fips_test.c
# fips last file
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wolfcrypt_last.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wolfcrypt_last.c
endif BUILD_FIPS_V5
endif BUILD_FIPS
@@ -285,171 +285,171 @@ if !BUILD_FIPS_RAND
# CtaoCrypt files included above.
if !BUILD_FIPS_CURRENT
if BUILD_HMAC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/hmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/hmac.c
endif
endif !BUILD_FIPS_CURRENT
# CAVP self test
if BUILD_SELFTEST
-src_libwolfssl_la_SOURCES += wolfcrypt/src/selftest.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/selftest.c
endif
endif !BUILD_FIPS_RAND
-src_libwolfssl_la_SOURCES += wolfcrypt/src/hash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/hash.c
if !BUILD_DO178
-src_libwolfssl_la_SOURCES += wolfcrypt/src/cpuid.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/cpuid.c
endif !BUILD_DO178
if !BUILD_FIPS_RAND
if !BUILD_FIPS_V5
if BUILD_KDF
-src_libwolfssl_la_SOURCES += wolfcrypt/src/kdf.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/kdf.c
endif
endif !BUILD_FIPS_V5
if !BUILD_FIPS_CURRENT
if BUILD_RNG
-src_libwolfssl_la_SOURCES += wolfcrypt/src/random.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/random.c
endif
endif !BUILD_FIPS_CURRENT
if !BUILD_FIPS_CURRENT
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256.c
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
endif
else
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256_asm.S
endif
endif
endif !BUILD_FIPS_CURRENT
if BUILD_AFALG
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/af_alg/afalg_hash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/af_alg/afalg_hash.c
endif
if BUILD_KCAPI
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_aes.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_hash.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_hmac.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_ecc.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_rsa.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_dh.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_hash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_hmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_ecc.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/kcapi/kcapi_dh.c
endif
if BUILD_WOLFEVENT
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wolfevent.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wolfevent.c
endif
if BUILD_ASYNCCRYPT
-src_libwolfssl_la_SOURCES += wolfcrypt/src/async.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/async.c
endif
if !BUILD_USER_RSA
if BUILD_RSA
if BUILD_FAST_RSA
-src_libwolfssl_la_SOURCES += wolfcrypt/user-crypto/src/rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/user-crypto/src/rsa.c
else
if !BUILD_FIPS_CURRENT
-src_libwolfssl_la_SOURCES += wolfcrypt/src/rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/rsa.c
endif !BUILD_FIPS_CURRENT
endif
endif
endif
if BUILD_RC2
-src_libwolfssl_la_SOURCES += wolfcrypt/src/rc2.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/rc2.c
endif
if BUILD_SP
if BUILD_SP_C32
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_c32.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_c32.c
endif
if BUILD_SP_C64
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_c64.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_c64.c
endif
if BUILD_SP_X86_64
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_x86_64.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_x86_64_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_x86_64.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_x86_64_asm.S
endif
if !BUILD_FIPS_V2
if BUILD_SP_ARM32
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_arm32.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_arm32.c
endif
endif
if BUILD_SP_ARM_THUMB
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_armthumb.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_armthumb.c
endif
if !BUILD_FIPS_V2
if BUILD_SP_ARM64
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_arm64.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_arm64.c
endif
endif
if BUILD_SP_ARM_CORTEX
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_cortexm.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_cortexm.c
endif
endif BUILD_SP
if BUILD_SP_INT
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_int.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sp_int.c
endif
if !BUILD_FIPS_CURRENT
if BUILD_AES
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes.c
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c
if !BUILD_ARMASM_CRYPTO
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-aes-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-aes-asm.S
endif !BUILD_ARMASM_CRYPTO
endif BUILD_ARMASM
if BUILD_AFALG
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/af_alg/afalg_aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/af_alg/afalg_aes.c
endif
endif BUILD_AES
endif !BUILD_FIPS_CURRENT
if !BUILD_FIPS_CURRENT
if BUILD_CMAC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/cmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/cmac.c
endif
endif !BUILD_FIPS_CURRENT
if !BUILD_FIPS_V2
if BUILD_DES3
-src_libwolfssl_la_SOURCES += wolfcrypt/src/des3.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/des3.c
endif BUILD_DES3
endif !BUILD_FIPS_V2
if !BUILD_FIPS_CURRENT
if BUILD_SHA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha.c
endif
endif !BUILD_FIPS_CURRENT
if !BUILD_FIPS_CURRENT
if BUILD_SHA512
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
endif
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512_asm.S
endif
endif
endif
@@ -457,16 +457,16 @@ endif !BUILD_FIPS_CURRENT
if !BUILD_FIPS_CURRENT
if BUILD_SHA3
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3.c
if BUILD_ARMASM
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm.S
endif
endif
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3_asm.S
endif
endif
endif !BUILD_FIPS_CURRENT
@@ -474,183 +474,183 @@ endif !BUILD_FIPS_CURRENT
endif !BUILD_FIPS_RAND
if BUILD_SIPHASH
-src_libwolfssl_la_SOURCES += wolfcrypt/src/siphash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/siphash.c
endif
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/logging.c \
wolfcrypt/src/wc_port.c
if BUILD_ERROR_STRINGS
-src_libwolfssl_la_SOURCES += wolfcrypt/src/error.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/error.c
endif
if !BUILD_FIPS_RAND
if !BUILD_DO178
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
wolfcrypt/src/wc_encrypt.c \
wolfcrypt/src/signature.c
endif !BUILD_DO178
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wolfmath.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wolfmath.c
endif !BUILD_FIPS_RAND
if BUILD_MEMORY
-src_libwolfssl_la_SOURCES += wolfcrypt/src/memory.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/memory.c
endif
if !BUILD_FIPS_RAND
if !BUILD_FIPS_CURRENT
if BUILD_DH
-src_libwolfssl_la_SOURCES += wolfcrypt/src/dh.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dh.c
endif
endif
if BUILD_ASN
-src_libwolfssl_la_SOURCES += wolfcrypt/src/asn.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/asn.c
endif
endif !BUILD_FIPS_RAND
if BUILD_CODING
-src_libwolfssl_la_SOURCES += wolfcrypt/src/coding.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/coding.c
endif
if !BUILD_FIPS_RAND
if BUILD_POLY1305
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-poly1305.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-poly1305.c
endif
-src_libwolfssl_la_SOURCES += wolfcrypt/src/poly1305.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/poly1305.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/poly1305_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/poly1305_asm.S
endif
endif
if BUILD_RC4
-src_libwolfssl_la_SOURCES += wolfcrypt/src/arc4.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/arc4.c
endif
if BUILD_MD4
-src_libwolfssl_la_SOURCES += wolfcrypt/src/md4.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/md4.c
endif
if BUILD_MD5
-src_libwolfssl_la_SOURCES += wolfcrypt/src/md5.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/md5.c
endif
if BUILD_PWDBASED
-src_libwolfssl_la_SOURCES += wolfcrypt/src/pwdbased.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/pkcs12.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/pwdbased.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/pkcs12.c
endif
if BUILD_DSA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/dsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dsa.c
endif
if !BUILD_FIPS_CURRENT
if BUILD_AESNI
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
if BUILD_X86_ASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
endif
endif
endif
if BUILD_CAMELLIA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/camellia.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/camellia.c
endif
if BUILD_MD2
-src_libwolfssl_la_SOURCES += wolfcrypt/src/md2.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/md2.c
endif
if BUILD_RIPEMD
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ripemd.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ripemd.c
endif
if BUILD_BLAKE2
-src_libwolfssl_la_SOURCES += wolfcrypt/src/blake2b.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/blake2b.c
endif
if BUILD_BLAKE2S
-src_libwolfssl_la_SOURCES += wolfcrypt/src/blake2s.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/blake2s.c
endif
if BUILD_CHACHA
if BUILD_ARMASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-chacha.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-chacha.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/chacha.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/chacha.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/chacha_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/chacha_asm.S
endif
endif
if BUILD_POLY1305
-src_libwolfssl_la_SOURCES += wolfcrypt/src/chacha20_poly1305.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/chacha20_poly1305.c
endif
endif
if !BUILD_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/misc.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/misc.c
endif
if BUILD_FASTMATH
-src_libwolfssl_la_SOURCES += wolfcrypt/src/tfm.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/tfm.c
endif
if BUILD_HEAPMATH
-src_libwolfssl_la_SOURCES += wolfcrypt/src/integer.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/integer.c
endif
if !BUILD_FIPS_CURRENT
if BUILD_ECC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ecc.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ecc.c
endif
if BUILD_ECCSI
-src_libwolfssl_la_SOURCES += wolfcrypt/src/eccsi.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/eccsi.c
endif
if BUILD_SAKKE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sakke.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sakke.c
endif
endif
if !BUILD_FIPS_CURRENT
if BUILD_WC_KYBER
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wc_kyber.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wc_kyber_poly.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_kyber.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_kyber_poly.c
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wc_kyber_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_kyber_asm.S
endif
endif
endif
if BUILD_CURVE25519
-src_libwolfssl_la_SOURCES += wolfcrypt/src/curve25519.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/curve25519.c
endif
if BUILD_ED25519
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ed25519.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ed25519.c
endif
if BUILD_FEMATH
if BUILD_CURVE25519_SMALL
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_low_mem.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_low_mem.c
else
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
else
if BUILD_ARMASM
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-curve25519_c.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-curve25519_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-curve25519.S
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-curve25519.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519.S
endif
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_operations.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_operations.c
endif
endif
endif
@@ -658,21 +658,21 @@ endif
if BUILD_GEMATH
if BUILD_ED25519_SMALL
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ge_low_mem.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_low_mem.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ge_operations.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_operations.c
if !BUILD_FEMATH
if BUILD_INTELASM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
else
if BUILD_ARMASM
if BUILD_ARMASM_INLINE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519_c.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519_c.c
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519.S
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519.S
endif
else
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_operations.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_operations.c
endif
endif
endif
@@ -680,50 +680,50 @@ endif
endif
if BUILD_CURVE448
-src_libwolfssl_la_SOURCES += wolfcrypt/src/curve448.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/curve448.c
endif
if BUILD_ED448
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ed448.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ed448.c
endif
if BUILD_FE448
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_448.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_448.c
endif
if BUILD_GE448
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ge_448.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_448.c
if !BUILD_FE448
-src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_448.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_448.c
endif
endif
if BUILD_LIBOQS
-src_libwolfssl_la_SOURCES += wolfcrypt/src/falcon.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/dilithium.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/sphincs.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/ext_kyber.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/falcon.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dilithium.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sphincs.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ext_kyber.c
endif
if BUILD_LIBZ
-src_libwolfssl_la_SOURCES += wolfcrypt/src/compress.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/compress.c
endif
if BUILD_PKCS7
-src_libwolfssl_la_SOURCES += wolfcrypt/src/pkcs7.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/pkcs7.c
endif
if BUILD_SRP
-src_libwolfssl_la_SOURCES += wolfcrypt/src/srp.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/srp.c
endif
if BUILD_AFALG
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/af_alg/wc_afalg.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/af_alg/wc_afalg.c
endif
if !BUILD_CRYPTONLY
# ssl files
-src_libwolfssl_la_SOURCES += \
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += \
src/internal.c \
src/wolfio.c \
src/keys.c \
@@ -731,31 +731,31 @@ src_libwolfssl_la_SOURCES += \
src/tls.c
if BUILD_TLS13
-src_libwolfssl_la_SOURCES += src/tls13.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/tls13.c
endif
if BUILD_OCSP
-src_libwolfssl_la_SOURCES += src/ocsp.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/ocsp.c
endif
if BUILD_CRL
-src_libwolfssl_la_SOURCES += src/crl.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/crl.c
endif
if BUILD_SNIFFER
-src_libwolfssl_la_SOURCES += src/sniffer.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/sniffer.c
endif
if BUILD_DTLS13
-src_libwolfssl_la_SOURCES += src/dtls13.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/dtls13.c
endif
if BUILD_QUIC
-src_libwolfssl_la_SOURCES += src/quic.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/quic.c
endif
if BUILD_DTLS
-src_libwolfssl_la_SOURCES += src/dtls.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += src/dtls.c
endif
endif !BUILD_CRYPTONLY
diff --git a/src/internal.c b/src/internal.c
index c58ae3a1ef..1afa361f9d 100644
--- a/src/internal.c
+++ b/src/internal.c
@@ -1,6 +1,6 @@
/* internal.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -2857,27 +2857,6 @@ static WC_INLINE void AddSuiteHashSigAlgo(Suites* suites, byte macAlgo,
*inOutIdx += 1;
}
else
- if (sigAlgo == dilithium_aes_level2_sa_algo) {
- suites->hashSigAlgo[*inOutIdx] = DILITHIUM_AES_LEVEL2_SA_MAJOR;
- *inOutIdx += 1;
- suites->hashSigAlgo[*inOutIdx] = DILITHIUM_AES_LEVEL2_SA_MINOR;
- *inOutIdx += 1;
- }
- else
- if (sigAlgo == dilithium_aes_level3_sa_algo) {
- suites->hashSigAlgo[*inOutIdx] = DILITHIUM_AES_LEVEL3_SA_MAJOR;
- *inOutIdx += 1;
- suites->hashSigAlgo[*inOutIdx] = DILITHIUM_AES_LEVEL3_SA_MINOR;
- *inOutIdx += 1;
- }
- else
- if (sigAlgo == dilithium_aes_level5_sa_algo) {
- suites->hashSigAlgo[*inOutIdx] = DILITHIUM_AES_LEVEL5_SA_MAJOR;
- *inOutIdx += 1;
- suites->hashSigAlgo[*inOutIdx] = DILITHIUM_AES_LEVEL5_SA_MINOR;
- *inOutIdx += 1;
- }
- else
#endif /* HAVE_DILITHIUM */
#endif /* HAVE_PQC */
#ifdef WC_RSA_PSS
@@ -2957,12 +2936,6 @@ void InitSuitesHashSigAlgo(Suites* suites, int haveECDSAsig, int haveRSAsig,
&idx);
AddSuiteHashSigAlgo(suites, no_mac, dilithium_level5_sa_algo, keySz,
&idx);
- AddSuiteHashSigAlgo(suites, no_mac, dilithium_aes_level2_sa_algo, keySz,
- &idx);
- AddSuiteHashSigAlgo(suites, no_mac, dilithium_aes_level3_sa_algo, keySz,
- &idx);
- AddSuiteHashSigAlgo(suites, no_mac, dilithium_aes_level5_sa_algo, keySz,
- &idx);
#endif /* HAVE_DILITHIUM */
#endif /* HAVE_PQC */
}
@@ -4052,18 +4025,6 @@ static WC_INLINE void DecodeSigAlg(const byte* input, byte* hashAlgo, byte* hsTy
*hsType = dilithium_level5_sa_algo;
*hashAlgo = sha512_mac;
}
- else if (input[1] == DILITHIUM_AES_LEVEL2_SA_MINOR) {
- *hsType = dilithium_aes_level2_sa_algo;
- *hashAlgo = sha512_mac;
- }
- else if (input[1] == DILITHIUM_AES_LEVEL3_SA_MINOR) {
- *hsType = dilithium_aes_level3_sa_algo;
- *hashAlgo = sha512_mac;
- }
- else if (input[1] == DILITHIUM_AES_LEVEL5_SA_MINOR) {
- *hsType = dilithium_aes_level5_sa_algo;
- *hashAlgo = sha512_mac;
- }
#endif /* HAVE_DILITHIUM */
break;
#endif
@@ -8310,10 +8271,19 @@ static DtlsFragBucket* DtlsMsgCombineFragBuckets(DtlsMsg* msg,
}
{
+#ifdef XREALLOC
DtlsFragBucket* tmp = (DtlsFragBucket*)XREALLOC(*chosenBucket,
sizeof(DtlsFragBucket) + newSz, heap, DYNAMIC_TYPE_DTLS_FRAG);
+#else
+ DtlsFragBucket* tmp = (DtlsFragBucket*)XMALLOC(
+ sizeof(DtlsFragBucket) + newSz, heap, DYNAMIC_TYPE_DTLS_FRAG);
+#endif
if (tmp == NULL)
return NULL;
+#ifndef XREALLOC
+ XMEMCPY(tmp, *chosenBucket, sizeof(DtlsFragBucket) +
+ (*chosenBucket)->m.m.sz);
+#endif
if (chosenBucket == &next) {
/* Update the link */
DtlsFragBucket* beforeNext = cur;
@@ -8321,6 +8291,9 @@ static DtlsFragBucket* DtlsMsgCombineFragBuckets(DtlsMsg* msg,
beforeNext = beforeNext->m.m.next;
beforeNext->m.m.next = tmp;
}
+#ifndef XREALLOC
+ XFREE(*chosenBucket, heap, DYNAMIC_TYPE_DTLS_FRAG);
+#endif
newBucket = *chosenBucket = tmp;
}
@@ -8857,9 +8830,8 @@ int DtlsMsgPoolSend(WOLFSSL* ssl, int sendOnlyFirstPacket)
#endif
- /* add back in header space from saved pool size */
- sendSz += DTLS_HANDSHAKE_EXTRA;
- sendSz += DTLS_RECORD_EXTRA;
+ /* add back in record header space from saved pool size */
+ sendSz += DTLS_RECORD_HEADER_SZ;
if ((ret = CheckAvailableSize(ssl, sendSz)) != 0) {
WOLFSSL_ERROR(ret);
@@ -13017,7 +12989,6 @@ static int ProcessPeerCertCheckKey(WOLFSSL* ssl, ProcPeerCertArgs* args)
#endif /* HAVE_PQC */
#if defined(HAVE_DILITHIUM)
case DILITHIUM_LEVEL2k:
- case DILITHIUM_AES_LEVEL2k:
if (ssl->options.minDilithiumKeySz < 0 ||
DILITHIUM_LEVEL2_KEY_SIZE
< (word16)ssl->options.minDilithiumKeySz) {
@@ -13026,7 +12997,6 @@ static int ProcessPeerCertCheckKey(WOLFSSL* ssl, ProcPeerCertArgs* args)
}
break;
case DILITHIUM_LEVEL3k:
- case DILITHIUM_AES_LEVEL3k:
if (ssl->options.minDilithiumKeySz < 0 ||
DILITHIUM_LEVEL3_KEY_SIZE
< (word16)ssl->options.minDilithiumKeySz) {
@@ -13035,7 +13005,6 @@ static int ProcessPeerCertCheckKey(WOLFSSL* ssl, ProcPeerCertArgs* args)
}
break;
case DILITHIUM_LEVEL5k:
- case DILITHIUM_AES_LEVEL5k:
if (ssl->options.minDilithiumKeySz < 0 ||
DILITHIUM_LEVEL5_KEY_SIZE
< (word16)ssl->options.minDilithiumKeySz) {
@@ -14405,9 +14374,6 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
case DILITHIUM_LEVEL2k:
case DILITHIUM_LEVEL3k:
case DILITHIUM_LEVEL5k:
- case DILITHIUM_AES_LEVEL2k:
- case DILITHIUM_AES_LEVEL3k:
- case DILITHIUM_AES_LEVEL5k:
{
int keyRet = 0;
if (ssl->peerDilithiumKey == NULL) {
@@ -14422,37 +14388,16 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
if (keyRet == 0) {
if (args->dCert->keyOID == DILITHIUM_LEVEL2k) {
- keyRet = wc_dilithium_set_level_and_sym(
- ssl->peerDilithiumKey, 2,
- SHAKE_VARIANT);
+ keyRet = wc_dilithium_set_level(
+ ssl->peerDilithiumKey, 2);
}
else if (args->dCert->keyOID == DILITHIUM_LEVEL3k) {
- keyRet = wc_dilithium_set_level_and_sym(
- ssl->peerDilithiumKey, 3,
- SHAKE_VARIANT);
+ keyRet = wc_dilithium_set_level(
+ ssl->peerDilithiumKey, 3);
}
else if (args->dCert->keyOID == DILITHIUM_LEVEL5k) {
- keyRet = wc_dilithium_set_level_and_sym(
- ssl->peerDilithiumKey, 5,
- SHAKE_VARIANT);
- }
- else if (args->dCert->keyOID
- == DILITHIUM_AES_LEVEL2k) {
- keyRet = wc_dilithium_set_level_and_sym(
- ssl->peerDilithiumKey, 2,
- AES_VARIANT);
- }
- else if (args->dCert->keyOID
- == DILITHIUM_AES_LEVEL3k) {
- keyRet = wc_dilithium_set_level_and_sym(
- ssl->peerDilithiumKey, 3,
- AES_VARIANT);
- }
- else if (args->dCert->keyOID
- == DILITHIUM_AES_LEVEL5k) {
- keyRet = wc_dilithium_set_level_and_sym(
- ssl->peerDilithiumKey, 5,
- AES_VARIANT);
+ keyRet = wc_dilithium_set_level(
+ ssl->peerDilithiumKey, 5);
}
}
@@ -24938,18 +24883,6 @@ static int MatchSigAlgo(WOLFSSL* ssl, int sigAlgo)
/* Certificate has Dilithium level 5 key, only match with it. */
return sigAlgo == dilithium_level5_sa_algo;
}
- if (ssl->pkCurveOID == CTC_DILITHIUM_AES_LEVEL2) {
- /* Certificate has Dilithium AES level 2 key, only match with it. */
- return sigAlgo == dilithium_aes_level2_sa_algo;
- }
- if (ssl->pkCurveOID == CTC_DILITHIUM_AES_LEVEL3) {
- /* Certificate has Dilithium AES level 3 key, only match with it. */
- return sigAlgo == dilithium_aes_level3_sa_algo;
- }
- if (ssl->pkCurveOID == CTC_DILITHIUM_AES_LEVEL5) {
- /* Certificate has Dilithium AES level 5 key, only match with it. */
- return sigAlgo == dilithium_aes_level5_sa_algo;
- }
#endif /* HAVE_DILITHIUM */
#endif /* HAVE_PQC */
#ifdef WC_RSA_PSS
@@ -25069,10 +25002,7 @@ int PickHashSigAlgo(WOLFSSL* ssl, const byte* hashSigAlgo, word32 hashSigAlgoSz)
#if defined(HAVE_DILITHIUM)
if (ssl->pkCurveOID == CTC_DILITHIUM_LEVEL2 ||
ssl->pkCurveOID == CTC_DILITHIUM_LEVEL3 ||
- ssl->pkCurveOID == CTC_DILITHIUM_LEVEL5 ||
- ssl->pkCurveOID == CTC_DILITHIUM_AES_LEVEL2 ||
- ssl->pkCurveOID == CTC_DILITHIUM_AES_LEVEL3 ||
- ssl->pkCurveOID == CTC_DILITHIUM_AES_LEVEL5 ) {
+ ssl->pkCurveOID == CTC_DILITHIUM_LEVEL5) {
/* Matched Dilithium - set chosen and finished. */
ssl->suites->sigAlgo = sigAlgo;
ssl->suites->hashAlgo = hashAlgo;
@@ -25837,9 +25767,6 @@ int DecodePrivateKey(WOLFSSL *ssl, word16* length)
if (ssl->buffers.keyType == dilithium_level2_sa_algo ||
ssl->buffers.keyType == dilithium_level3_sa_algo ||
ssl->buffers.keyType == dilithium_level5_sa_algo ||
- ssl->buffers.keyType == dilithium_aes_level2_sa_algo ||
- ssl->buffers.keyType == dilithium_aes_level3_sa_algo ||
- ssl->buffers.keyType == dilithium_aes_level5_sa_algo ||
ssl->buffers.keyType == 0) {
ssl->hsType = DYNAMIC_TYPE_DILITHIUM;
@@ -25849,28 +25776,13 @@ int DecodePrivateKey(WOLFSSL *ssl, word16* length)
}
if (ssl->buffers.keyType == dilithium_level2_sa_algo) {
- ret = wc_dilithium_set_level_and_sym((dilithium_key*)ssl->hsKey,
- 2, SHAKE_VARIANT);
+ ret = wc_dilithium_set_level((dilithium_key*)ssl->hsKey, 2);
}
else if (ssl->buffers.keyType == dilithium_level3_sa_algo) {
- ret = wc_dilithium_set_level_and_sym((dilithium_key*)ssl->hsKey,
- 3, SHAKE_VARIANT);
+ ret = wc_dilithium_set_level((dilithium_key*)ssl->hsKey, 3);
}
else if (ssl->buffers.keyType == dilithium_level5_sa_algo) {
- ret = wc_dilithium_set_level_and_sym((dilithium_key*)ssl->hsKey,
- 5, SHAKE_VARIANT);
- }
- else if (ssl->buffers.keyType == dilithium_aes_level2_sa_algo) {
- ret = wc_dilithium_set_level_and_sym((dilithium_key*)ssl->hsKey,
- 2, AES_VARIANT);
- }
- else if (ssl->buffers.keyType == dilithium_aes_level3_sa_algo) {
- ret = wc_dilithium_set_level_and_sym((dilithium_key*)ssl->hsKey,
- 3, AES_VARIANT);
- }
- else if (ssl->buffers.keyType == dilithium_aes_level5_sa_algo) {
- ret = wc_dilithium_set_level_and_sym((dilithium_key*)ssl->hsKey,
- 5, AES_VARIANT);
+ ret = wc_dilithium_set_level((dilithium_key*)ssl->hsKey, 5);
}
else {
/* What if ssl->buffers.keyType is 0? We might want to do something
diff --git a/src/keys.c b/src/keys.c
index 7bd0e5cfd0..f9da104e01 100644
--- a/src/keys.c
+++ b/src/keys.c
@@ -1,6 +1,6 @@
/* keys.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/ocsp.c b/src/ocsp.c
index 78f23e81cb..69be0534b7 100644
--- a/src/ocsp.c
+++ b/src/ocsp.c
@@ -1,6 +1,6 @@
/* ocsp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/pk.c b/src/pk.c
index 7b0335b0f4..686d84cd78 100644
--- a/src/pk.c
+++ b/src/pk.c
@@ -1,6 +1,6 @@
/* pk.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/quic.c b/src/quic.c
index dd0ef1e1c2..f535475b5b 100644
--- a/src/quic.c
+++ b/src/quic.c
@@ -1,6 +1,6 @@
/* quic.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/sniffer.c b/src/sniffer.c
index 9665fbf2c8..a2a134389e 100644
--- a/src/sniffer.c
+++ b/src/sniffer.c
@@ -1,6 +1,6 @@
/* sniffer.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/ssl.c b/src/ssl.c
index 1f693f5304..6e7620bd5b 100644
--- a/src/ssl.c
+++ b/src/ssl.c
@@ -1,6 +1,6 @@
/* ssl.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -1474,13 +1474,12 @@ WOLF_STACK_OF(WOLFSSL_SRTP_PROTECTION_PROFILE)* wolfSSL_get_srtp_profiles(
}
#endif
+#define DTLS_SRTP_KEYING_MATERIAL_LABEL "EXTRACTOR-dtls_srtp"
+
int wolfSSL_export_dtls_srtp_keying_material(WOLFSSL* ssl,
unsigned char* out, size_t* olen)
{
- int ret = WOLFSSL_FAILURE;
- const char* label = "EXTRACTOR-dtls_srtp";
const WOLFSSL_SRTP_PROTECTION_PROFILE* profile = NULL;
- byte seed[SEED_LEN];
if (ssl == NULL || olen == NULL) {
return BAD_FUNC_ARG;
@@ -1500,28 +1499,9 @@ int wolfSSL_export_dtls_srtp_keying_material(WOLFSSL* ssl,
return BUFFER_E;
}
-#ifdef WOLFSSL_HAVE_PRF
- XMEMCPY(seed, ssl->arrays->clientRandom, RAN_LEN);
- XMEMCPY(seed + RAN_LEN, ssl->arrays->serverRandom, RAN_LEN);
-
- PRIVATE_KEY_UNLOCK();
- ret = wc_PRF_TLS(out, profile->kdfBits, /* out: generated keys / salt */
- ssl->arrays->masterSecret, SECRET_LEN, /* existing master secret */
- (const byte*)label, (int)XSTRLEN(label),/* label */
- seed, SEED_LEN, /* seed: client/server random */
- IsAtLeastTLSv1_2(ssl), ssl->specs.mac_algorithm,
- ssl->heap, INVALID_DEVID);
- if (ret == 0) {
- *olen = profile->kdfBits;
- ret = WOLFSSL_SUCCESS;
- }
- PRIVATE_KEY_LOCK();
-#else
- /* Pseudo random function must be enabled in the configuration */
- ret = PRF_MISSING;
-#endif
-
- return ret;
+ return wolfSSL_export_keying_material(ssl, out, profile->kdfBits,
+ DTLS_SRTP_KEYING_MATERIAL_LABEL,
+ XSTR_SIZEOF(DTLS_SRTP_KEYING_MATERIAL_LABEL), NULL, 0, 0);
}
#endif /* WOLFSSL_SRTP */
@@ -2747,8 +2727,8 @@ int wolfSSL_SNI_GetFromBuffer(const byte* clientHello, word32 helloSz,
#ifdef HAVE_TRUSTED_CA
-WOLFSSL_API int wolfSSL_UseTrustedCA(WOLFSSL* ssl, byte type,
- const byte* certId, word32 certIdSz)
+int wolfSSL_UseTrustedCA(WOLFSSL* ssl, byte type,
+ const byte* certId, word32 certIdSz)
{
if (ssl == NULL)
return BAD_FUNC_ARG;
@@ -3487,8 +3467,7 @@ int wolfSSL_CTX_UseSessionTicket(WOLFSSL_CTX* ctx)
return TLSX_UseSessionTicket(&ctx->extensions, NULL, ctx->heap);
}
-WOLFSSL_API int wolfSSL_get_SessionTicket(WOLFSSL* ssl,
- byte* buf, word32* bufSz)
+int wolfSSL_get_SessionTicket(WOLFSSL* ssl, byte* buf, word32* bufSz)
{
if (ssl == NULL || buf == NULL || bufSz == NULL || *bufSz == 0)
return BAD_FUNC_ARG;
@@ -3503,7 +3482,7 @@ WOLFSSL_API int wolfSSL_get_SessionTicket(WOLFSSL* ssl,
return WOLFSSL_SUCCESS;
}
-WOLFSSL_API int wolfSSL_set_SessionTicket(WOLFSSL* ssl, const byte* buf,
+int wolfSSL_set_SessionTicket(WOLFSSL* ssl, const byte* buf,
word32 bufSz)
{
if (ssl == NULL || (buf == NULL && bufSz > 0))
@@ -3543,8 +3522,8 @@ WOLFSSL_API int wolfSSL_set_SessionTicket(WOLFSSL* ssl, const byte* buf,
}
-WOLFSSL_API int wolfSSL_set_SessionTicket_cb(WOLFSSL* ssl,
- CallbackSessionTicket cb, void* ctx)
+int wolfSSL_set_SessionTicket_cb(WOLFSSL* ssl,
+ CallbackSessionTicket cb, void* ctx)
{
if (ssl == NULL)
return BAD_FUNC_ARG;
@@ -4549,7 +4528,8 @@ int wolfSSL_CertManagerUnload_trust_peers(WOLFSSL_CERT_MANAGER* cm)
#endif /* NO_CERTS */
-#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM)
+#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) \
+ && defined(XFPRINTF)
void wolfSSL_ERR_print_errors_fp(XFILE fp, int err)
{
@@ -4573,7 +4553,7 @@ void wolfSSL_ERR_print_errors_cb (int (*cb)(const char *str, size_t len,
wc_ERR_print_errors_cb(cb, u);
}
#endif
-#endif
+#endif /* !NO_FILESYSTEM && !NO_STDIO_FILESYSTEM && XFPRINTF */
/*
* TODO This ssl parameter needs to be changed to const once our ABI checker
@@ -5264,7 +5244,6 @@ int AddCA(WOLFSSL_CERT_MANAGER* cm, DerBuffer** pDer, int type, int verify)
#endif /* HAVE_FALCON */
#if defined(HAVE_DILITHIUM)
case DILITHIUM_LEVEL2k:
- case DILITHIUM_AES_LEVEL2k:
if (cm->minDilithiumKeySz < 0 ||
DILITHIUM_LEVEL2_KEY_SIZE < (word16)cm->minDilithiumKeySz) {
ret = DILITHIUM_KEY_SIZE_E;
@@ -5272,7 +5251,6 @@ int AddCA(WOLFSSL_CERT_MANAGER* cm, DerBuffer** pDer, int type, int verify)
}
break;
case DILITHIUM_LEVEL3k:
- case DILITHIUM_AES_LEVEL3k:
if (cm->minDilithiumKeySz < 0 ||
DILITHIUM_LEVEL3_KEY_SIZE < (word16)cm->minDilithiumKeySz) {
ret = DILITHIUM_KEY_SIZE_E;
@@ -5280,7 +5258,6 @@ int AddCA(WOLFSSL_CERT_MANAGER* cm, DerBuffer** pDer, int type, int verify)
}
break;
case DILITHIUM_LEVEL5k:
- case DILITHIUM_AES_LEVEL5k:
if (cm->minDilithiumKeySz < 0 ||
DILITHIUM_LEVEL5_KEY_SIZE < (word16)cm->minDilithiumKeySz) {
ret = DILITHIUM_KEY_SIZE_E;
@@ -6271,10 +6248,7 @@ static int ProcessBufferTryDecode(WOLFSSL_CTX* ctx, WOLFSSL* ssl, DerBuffer* der
if ((*keyFormat == 0) ||
(*keyFormat == DILITHIUM_LEVEL2k) ||
(*keyFormat == DILITHIUM_LEVEL3k) ||
- (*keyFormat == DILITHIUM_LEVEL5k) ||
- (*keyFormat == DILITHIUM_AES_LEVEL2k) ||
- (*keyFormat == DILITHIUM_AES_LEVEL3k) ||
- (*keyFormat == DILITHIUM_AES_LEVEL5k)) {
+ (*keyFormat == DILITHIUM_LEVEL5k)) {
/* make sure Dilithium key can be used */
dilithium_key* key = (dilithium_key*)XMALLOC(sizeof(dilithium_key),
heap,
@@ -6285,22 +6259,13 @@ static int ProcessBufferTryDecode(WOLFSSL_CTX* ctx, WOLFSSL* ssl, DerBuffer* der
ret = wc_dilithium_init(key);
if (ret == 0) {
if (*keyFormat == DILITHIUM_LEVEL2k) {
- ret = wc_dilithium_set_level_and_sym(key, 2, SHAKE_VARIANT);
+ ret = wc_dilithium_set_level(key, 2);
}
else if (*keyFormat == DILITHIUM_LEVEL3k) {
- ret = wc_dilithium_set_level_and_sym(key, 3, SHAKE_VARIANT);
+ ret = wc_dilithium_set_level(key, 3);
}
else if (*keyFormat == DILITHIUM_LEVEL5k) {
- ret = wc_dilithium_set_level_and_sym(key, 5, SHAKE_VARIANT);
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL2k) {
- ret = wc_dilithium_set_level_and_sym(key, 2, AES_VARIANT);
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL3k) {
- ret = wc_dilithium_set_level_and_sym(key, 3, AES_VARIANT);
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL5k) {
- ret = wc_dilithium_set_level_and_sym(key, 5, AES_VARIANT);
+ ret = wc_dilithium_set_level(key, 5);
}
else {
/* What if *keyformat is 0? We might want to do something more
@@ -6333,15 +6298,6 @@ static int ProcessBufferTryDecode(WOLFSSL_CTX* ctx, WOLFSSL* ssl, DerBuffer* der
else if (*keyFormat == DILITHIUM_LEVEL5k) {
ssl->buffers.keyType = dilithium_level5_sa_algo;
}
- else if (*keyFormat == DILITHIUM_AES_LEVEL2k) {
- ssl->buffers.keyType = dilithium_aes_level2_sa_algo;
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL3k) {
- ssl->buffers.keyType = dilithium_aes_level3_sa_algo;
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL5k) {
- ssl->buffers.keyType = dilithium_aes_level5_sa_algo;
- }
ssl->buffers.keySz = *keySz;
}
else {
@@ -6354,15 +6310,6 @@ static int ProcessBufferTryDecode(WOLFSSL_CTX* ctx, WOLFSSL* ssl, DerBuffer* der
else if (*keyFormat == DILITHIUM_LEVEL5k) {
ctx->privateKeyType = dilithium_level5_sa_algo;
}
- else if (*keyFormat == DILITHIUM_AES_LEVEL2k) {
- ctx->privateKeyType = dilithium_aes_level2_sa_algo;
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL3k) {
- ctx->privateKeyType = dilithium_aes_level3_sa_algo;
- }
- else if (*keyFormat == DILITHIUM_AES_LEVEL5k) {
- ctx->privateKeyType = dilithium_aes_level5_sa_algo;
- }
ctx->privateKeySz = *keySz;
}
@@ -6741,9 +6688,6 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff,
case CTC_DILITHIUM_LEVEL2:
case CTC_DILITHIUM_LEVEL3:
case CTC_DILITHIUM_LEVEL5:
- case CTC_DILITHIUM_AES_LEVEL2:
- case CTC_DILITHIUM_AES_LEVEL3:
- case CTC_DILITHIUM_AES_LEVEL5:
WOLFSSL_MSG("Dilithium cert signature");
if (ssl)
ssl->options.haveDilithiumSig = 1;
@@ -6796,10 +6740,7 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff,
#ifdef HAVE_DILITHIUM
else if (cert->keyOID == DILITHIUM_LEVEL2k ||
cert->keyOID == DILITHIUM_LEVEL3k ||
- cert->keyOID == DILITHIUM_LEVEL5k ||
- cert->keyOID == DILITHIUM_AES_LEVEL2k ||
- cert->keyOID == DILITHIUM_AES_LEVEL3k ||
- cert->keyOID == DILITHIUM_AES_LEVEL5k) {
+ cert->keyOID == DILITHIUM_LEVEL5k) {
ssl->options.haveDilithiumSig = 1;
}
#endif /* HAVE_DILITHIUM */
@@ -6846,10 +6787,7 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff,
#ifdef HAVE_DILITHIUM
else if (cert->keyOID == DILITHIUM_LEVEL2k ||
cert->keyOID == DILITHIUM_LEVEL3k ||
- cert->keyOID == DILITHIUM_LEVEL5k ||
- cert->keyOID == DILITHIUM_AES_LEVEL2k ||
- cert->keyOID == DILITHIUM_AES_LEVEL3k ||
- cert->keyOID == DILITHIUM_AES_LEVEL5k) {
+ cert->keyOID == DILITHIUM_LEVEL5k) {
ctx->haveDilithiumSig = 1;
}
#endif /* HAVE_DILITHIUM */
@@ -6992,9 +6930,6 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff,
case DILITHIUM_LEVEL2k:
case DILITHIUM_LEVEL3k:
case DILITHIUM_LEVEL5k:
- case DILITHIUM_AES_LEVEL2k:
- case DILITHIUM_AES_LEVEL3k:
- case DILITHIUM_AES_LEVEL5k:
/* Dilithium is fixed key size */
keySz = DILITHIUM_MAX_KEY_SIZE;
if (ssl && !ssl->options.verifyNone) {
@@ -7178,14 +7113,14 @@ static WC_INLINE WOLFSSL_METHOD* cm_pick_method(void)
}
-/* like load verify locations, 1 for success, < 0 for error */
-int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER* cm,
- const unsigned char* in, long sz, int format)
+int wolfSSL_CertManagerLoadCABuffer_ex(WOLFSSL_CERT_MANAGER* cm,
+ const unsigned char* in, long sz,
+ int format, int userChain, word32 flags)
{
int ret = WOLFSSL_FATAL_ERROR;
WOLFSSL_CTX* tmp;
- WOLFSSL_ENTER("wolfSSL_CertManagerLoadCABuffer");
+ WOLFSSL_ENTER("wolfSSL_CertManagerLoadCABuffer_ex");
if (cm == NULL) {
WOLFSSL_MSG("No CertManager error");
@@ -7202,7 +7137,8 @@ int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER* cm,
wolfSSL_CertManagerFree(tmp->cm);
tmp->cm = cm;
- ret = wolfSSL_CTX_load_verify_buffer(tmp, in, sz, format);
+ ret = wolfSSL_CTX_load_verify_buffer_ex(tmp, in, sz, format,
+ userChain, flags);
/* don't loose our good one */
tmp->cm = NULL;
@@ -7211,6 +7147,15 @@ int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER* cm,
return ret;
}
+/* like load verify locations, 1 for success, < 0 for error */
+int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER* cm,
+ const unsigned char* in, long sz,
+ int format)
+{
+ return wolfSSL_CertManagerLoadCABuffer_ex(cm, in, sz, format, 0,
+ WOLFSSL_LOAD_VERIFY_DEFAULT_FLAGS);
+}
+
#ifdef HAVE_CRL
int wolfSSL_CertManagerLoadCRLBuffer(WOLFSSL_CERT_MANAGER* cm,
@@ -7637,9 +7582,9 @@ int wolfSSL_CertManagerCheckOCSP(WOLFSSL_CERT_MANAGER* cm, byte* der, int sz)
return ret == 0 ? WOLFSSL_SUCCESS : ret;
}
-WOLFSSL_API int wolfSSL_CertManagerCheckOCSPResponse(WOLFSSL_CERT_MANAGER *cm,
- byte *response, int responseSz, buffer *responseBuffer,
- CertStatus *status, OcspEntry *entry, OcspRequest *ocspRequest)
+int wolfSSL_CertManagerCheckOCSPResponse(WOLFSSL_CERT_MANAGER *cm,
+ byte *response, int responseSz, buffer *responseBuffer,
+ CertStatus *status, OcspEntry *entry, OcspRequest *ocspRequest)
{
int ret;
@@ -9485,74 +9430,32 @@ static WOLFSSL_EVP_PKEY* d2iGenericKey(WOLFSSL_EVP_PKEY** out,
#endif
if (wc_dilithium_init(dilithium) == 0) {
- /* Test if Dilithium key. Try all levels for both SHAKE and AES */
+ /* Test if Dilithium key. Try all levels. */
if (priv) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 2,
- SHAKE_VARIANT) == 0 &&
+ isDilithium = wc_dilithium_set_level(dilithium, 2) == 0 &&
wc_dilithium_import_private_only(mem,
(word32)memSz, dilithium) == 0;
if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 3,
- SHAKE_VARIANT) == 0 &&
- wc_dilithium_import_private_only(mem,
- (word32)memSz, dilithium) == 0;
- }
- if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 5,
- SHAKE_VARIANT) == 0 &&
- wc_dilithium_import_private_only(mem,
- (word32)memSz, dilithium) == 0;
- }
- if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 2,
- AES_VARIANT) == 0 &&
- wc_dilithium_import_private_only(mem,
- (word32)memSz, dilithium) == 0;
- }
- if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 3,
- AES_VARIANT) == 0 &&
+ isDilithium = wc_dilithium_set_level(dilithium, 3) == 0 &&
wc_dilithium_import_private_only(mem,
(word32)memSz, dilithium) == 0;
}
if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 5,
- AES_VARIANT) == 0 &&
+ isDilithium = wc_dilithium_set_level(dilithium, 5) == 0 &&
wc_dilithium_import_private_only(mem,
(word32)memSz, dilithium) == 0;
}
} else {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 2,
- SHAKE_VARIANT) == 0 &&
+ isDilithium = wc_dilithium_set_level(dilithium, 2) == 0 &&
wc_dilithium_import_public(mem, (word32)memSz,
dilithium) == 0;
if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 3,
- SHAKE_VARIANT) == 0 &&
- wc_dilithium_import_public(mem, (word32)memSz,
- dilithium) == 0;
- }
- if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 5,
- SHAKE_VARIANT) == 0 &&
- wc_dilithium_import_public(mem, (word32)memSz,
- dilithium) == 0;
- }
- if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 2,
- AES_VARIANT) == 0 &&
- wc_dilithium_import_public(mem, (word32)memSz,
- dilithium) == 0;
- }
- if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 3,
- AES_VARIANT) == 0 &&
+ isDilithium = wc_dilithium_set_level(dilithium, 3) == 0 &&
wc_dilithium_import_public(mem, (word32)memSz,
dilithium) == 0;
}
if (!isDilithium) {
- isDilithium = wc_dilithium_set_level_and_sym(dilithium, 5,
- AES_VARIANT) == 0 &&
+ isDilithium = wc_dilithium_set_level(dilithium, 5) == 0 &&
wc_dilithium_import_public(mem, (word32)memSz,
dilithium) == 0;
}
@@ -11218,6 +11121,43 @@ long wolfSSL_CTX_set_session_cache_mode(WOLFSSL_CTX* ctx, long mode)
return WOLFSSL_SUCCESS;
}
+#ifdef OPENSSL_EXTRA
+/* Get the session cache mode for CTX
+ *
+ * ctx WOLFSSL_CTX struct to get cache mode from
+ *
+ * Returns a bit mask that has the session cache mode */
+long wolfSSL_CTX_get_session_cache_mode(WOLFSSL_CTX* ctx)
+{
+ long m = 0;
+
+ WOLFSSL_ENTER("SSL_CTX_set_session_cache_mode");
+
+ if (ctx == NULL) {
+ return m;
+ }
+
+ if (ctx->sessionCacheOff != 1) {
+ m |= WOLFSSL_SESS_CACHE_SERVER;
+ }
+
+ if (ctx->sessionCacheFlushOff == 1) {
+ m |= WOLFSSL_SESS_CACHE_NO_AUTO_CLEAR;
+ }
+
+#ifdef HAVE_EXT_CACHE
+ if (ctx->internalCacheOff == 1) {
+ m |= WOLFSSL_SESS_CACHE_NO_INTERNAL_STORE;
+ }
+ if (ctx->internalCacheLookupOff == 1) {
+ m |= WOLFSSL_SESS_CACHE_NO_INTERNAL_LOOKUP;
+ }
+#endif
+
+ return m;
+}
+#endif /* OPENSSL_EXTRA */
+
#endif /* NO_SESSION_CACHE */
@@ -14385,7 +14325,7 @@ ClientSession* AddSessionToClientCache(int side, int row, int idx, byte* serverI
else
return NULL;
}
-#endif
+#endif /* !NO_CLIENT_CACHE */
/**
* For backwards compatibility, this API needs to be used in *ALL* functions
@@ -17760,7 +17700,7 @@ static int GetMinProtoVersion(int minDowngrade)
return ret;
}
-WOLFSSL_API int wolfSSL_CTX_get_min_proto_version(WOLFSSL_CTX* ctx)
+int wolfSSL_CTX_get_min_proto_version(WOLFSSL_CTX* ctx)
{
int ret = 0;
@@ -23679,7 +23619,7 @@ const unsigned char *SSL_SESSION_get0_id_context(const WOLFSSL_SESSION *sess, un
/*** TBD ***/
#ifndef NO_WOLFSSL_STUB
-WOLFSSL_API int wolfSSL_sk_SSL_COMP_zero(WOLFSSL_STACK* st)
+int wolfSSL_sk_SSL_COMP_zero(WOLFSSL_STACK* st)
{
(void)st;
WOLFSSL_STUB("wolfSSL_sk_SSL_COMP_zero");
@@ -23721,7 +23661,7 @@ long wolfSSL_get_tlsext_status_type(WOLFSSL *s)
#endif /* HAVE_CERTIFICATE_STATUS_REQUEST */
#ifndef NO_WOLFSSL_STUB
-WOLFSSL_API long wolfSSL_get_tlsext_status_exts(WOLFSSL *s, void *arg)
+long wolfSSL_get_tlsext_status_exts(WOLFSSL *s, void *arg)
{
(void)s;
(void)arg;
@@ -23732,7 +23672,7 @@ WOLFSSL_API long wolfSSL_get_tlsext_status_exts(WOLFSSL *s, void *arg)
/*** TBD ***/
#ifndef NO_WOLFSSL_STUB
-WOLFSSL_API long wolfSSL_set_tlsext_status_exts(WOLFSSL *s, void *arg)
+long wolfSSL_set_tlsext_status_exts(WOLFSSL *s, void *arg)
{
(void)s;
(void)arg;
@@ -23743,7 +23683,7 @@ WOLFSSL_API long wolfSSL_set_tlsext_status_exts(WOLFSSL *s, void *arg)
/*** TBD ***/
#ifndef NO_WOLFSSL_STUB
-WOLFSSL_API long wolfSSL_get_tlsext_status_ids(WOLFSSL *s, void *arg)
+long wolfSSL_get_tlsext_status_ids(WOLFSSL *s, void *arg)
{
(void)s;
(void)arg;
@@ -23754,7 +23694,7 @@ WOLFSSL_API long wolfSSL_get_tlsext_status_ids(WOLFSSL *s, void *arg)
/*** TBD ***/
#ifndef NO_WOLFSSL_STUB
-WOLFSSL_API long wolfSSL_set_tlsext_status_ids(WOLFSSL *s, void *arg)
+long wolfSSL_set_tlsext_status_ids(WOLFSSL *s, void *arg)
{
(void)s;
(void)arg;
@@ -23765,7 +23705,8 @@ WOLFSSL_API long wolfSSL_set_tlsext_status_ids(WOLFSSL *s, void *arg)
/*** TBD ***/
#ifndef NO_WOLFSSL_STUB
-WOLFSSL_API int SSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid, unsigned int sid_len)
+int wolfSSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid,
+ unsigned int sid_len)
{
(void)s;
(void)sid;
@@ -23777,7 +23718,8 @@ WOLFSSL_API int SSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid
#ifndef NO_WOLFSSL_STUB
/*** TBD ***/
-WOLFSSL_API int SSL_SESSION_set1_id_context(WOLFSSL_SESSION *s, const unsigned char *sid_ctx, unsigned int sid_ctx_len)
+int wolfSSL_SESSION_set1_id_context(WOLFSSL_SESSION *s,
+ const unsigned char *sid_ctx, unsigned int sid_ctx_len)
{
(void)s;
(void)sid_ctx;
@@ -23888,7 +23830,7 @@ void wolfSSL_ASN1_TYPE_free(WOLFSSL_ASN1_TYPE* at)
#ifndef NO_WOLFSSL_STUB
/*** TBD ***/
-WOLFSSL_API WOLFSSL_EVP_PKEY *wolfSSL_get_privatekey(const WOLFSSL *ssl)
+WOLFSSL_EVP_PKEY *wolfSSL_get_privatekey(const WOLFSSL *ssl)
{
(void)ssl;
WOLFSSL_STUB("SSL_get_privatekey");
@@ -23907,8 +23849,7 @@ WOLFSSL_API WOLFSSL_EVP_PKEY *wolfSSL_get_privatekey(const WOLFSSL *ssl)
*
* return the string length written on success, WOLFSSL_FAILURE on failure.
*/
-WOLFSSL_API int wolfSSL_i2t_ASN1_OBJECT(char *buf, int buf_len,
- WOLFSSL_ASN1_OBJECT *a)
+int wolfSSL_i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a)
{
WOLFSSL_ENTER("wolfSSL_i2t_ASN1_OBJECT");
return wolfSSL_OBJ_obj2txt(buf, buf_len, a, 0);
@@ -24037,8 +23978,7 @@ WOLFSSL_ASN1_OBJECT *wolfSSL_c2i_ASN1_OBJECT(WOLFSSL_ASN1_OBJECT **a,
#ifndef NO_BIO
/* Return number of bytes written to BIO on success. 0 on failure. */
-WOLFSSL_API int wolfSSL_i2a_ASN1_OBJECT(WOLFSSL_BIO *bp,
- WOLFSSL_ASN1_OBJECT *a)
+int wolfSSL_i2a_ASN1_OBJECT(WOLFSSL_BIO *bp, WOLFSSL_ASN1_OBJECT *a)
{
int length = 0;
word32 idx = 0;
@@ -24115,7 +24055,8 @@ int wolfSSL_i2d_ASN1_OBJECT(WOLFSSL_ASN1_OBJECT *a, unsigned char **pp)
#ifndef NO_WOLFSSL_STUB
/*** TBD ***/
-WOLFSSL_API void SSL_CTX_set_tmp_dh_callback(WOLFSSL_CTX *ctx, WOLFSSL_DH *(*dh) (WOLFSSL *ssl, int is_export, int keylength))
+void SSL_CTX_set_tmp_dh_callback(WOLFSSL_CTX *ctx,
+ WOLFSSL_DH *(*dh) (WOLFSSL *ssl, int is_export, int keylength))
{
(void)ctx;
(void)dh;
@@ -24125,7 +24066,7 @@ WOLFSSL_API void SSL_CTX_set_tmp_dh_callback(WOLFSSL_CTX *ctx, WOLFSSL_DH *(*dh)
#ifndef NO_WOLFSSL_STUB
/*** TBD ***/
-WOLFSSL_API WOLF_STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void)
+WOLF_STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void)
{
WOLFSSL_STUB("SSL_COMP_get_compression_methods");
return NULL;
@@ -24142,21 +24083,21 @@ int wolfSSL_sk_SSL_CIPHER_num(const WOLF_STACK_OF(WOLFSSL_CIPHER)* p)
return (int)p->num;
}
-WOLFSSL_API WOLFSSL_CIPHER* wolfSSL_sk_SSL_CIPHER_value(WOLFSSL_STACK* sk, int i)
+WOLFSSL_CIPHER* wolfSSL_sk_SSL_CIPHER_value(WOLFSSL_STACK* sk, int i)
{
WOLFSSL_ENTER("wolfSSL_sk_SSL_CIPHER_value");
return (WOLFSSL_CIPHER*)wolfSSL_sk_value(sk, i);
}
#if !defined(NETOS)
-WOLFSSL_API void ERR_load_SSL_strings(void)
+void ERR_load_SSL_strings(void)
{
}
#endif
#ifdef HAVE_OCSP
-WOLFSSL_API long wolfSSL_get_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char **resp)
+long wolfSSL_get_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char **resp)
{
if (s == NULL || resp == NULL)
return 0;
@@ -24165,7 +24106,8 @@ WOLFSSL_API long wolfSSL_get_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char *
return s->ocspRespSz;
}
-WOLFSSL_API long wolfSSL_set_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char *resp, int len)
+long wolfSSL_set_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char *resp,
+ int len)
{
if (s == NULL)
return WOLFSSL_FAILURE;
@@ -24185,8 +24127,8 @@ WOLFSSL_API long wolfSSL_set_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char *
* @param mode maximum fragment length mode
* @return 1 on success, otherwise 0 or negative error code
*/
-WOLFSSL_API int wolfSSL_CTX_set_tlsext_max_fragment_length(WOLFSSL_CTX *c,
- unsigned char mode)
+int wolfSSL_CTX_set_tlsext_max_fragment_length(WOLFSSL_CTX *c,
+ unsigned char mode)
{
if (c == NULL || (mode < WOLFSSL_MFL_2_9 || mode > WOLFSSL_MFL_2_12 ))
return BAD_FUNC_ARG;
@@ -24199,8 +24141,7 @@ WOLFSSL_API int wolfSSL_CTX_set_tlsext_max_fragment_length(WOLFSSL_CTX *c,
* @param mode maximum fragment length mode
* @return 1 on success, otherwise 0 or negative error code
*/
-WOLFSSL_API int wolfSSL_set_tlsext_max_fragment_length(WOLFSSL *s,
- unsigned char mode)
+int wolfSSL_set_tlsext_max_fragment_length(WOLFSSL *s, unsigned char mode)
{
if (s == NULL || (mode < WOLFSSL_MFL_2_9 || mode > WOLFSSL_MFL_2_12 ))
return BAD_FUNC_ARG;
@@ -24213,7 +24154,7 @@ WOLFSSL_API int wolfSSL_set_tlsext_max_fragment_length(WOLFSSL *s,
#endif /* OPENSSL_EXTRA */
#ifdef WOLFSSL_HAVE_TLS_UNIQUE
-WOLFSSL_API size_t wolfSSL_get_finished(const WOLFSSL *ssl, void *buf, size_t count)
+size_t wolfSSL_get_finished(const WOLFSSL *ssl, void *buf, size_t count)
{
byte len = 0;
@@ -24235,7 +24176,7 @@ WOLFSSL_API size_t wolfSSL_get_finished(const WOLFSSL *ssl, void *buf, size_t co
return len;
}
-WOLFSSL_API size_t wolfSSL_get_peer_finished(const WOLFSSL *ssl, void *buf, size_t count)
+size_t wolfSSL_get_peer_finished(const WOLFSSL *ssl, void *buf, size_t count)
{
byte len = 0;
WOLFSSL_ENTER("SSL_get_peer_finished");
@@ -24506,44 +24447,7 @@ long wolfSSL_CTX_set_tlsext_status_arg(WOLFSSL_CTX* ctx, void* arg)
return WOLFSSL_SUCCESS;
}
-#endif /* NO_CERTS */
-
-
-/* Get the session cache mode for CTX
- *
- * ctx WOLFSSL_CTX struct to get cache mode from
- *
- * Returns a bit mask that has the session cache mode */
-WOLFSSL_API long wolfSSL_CTX_get_session_cache_mode(WOLFSSL_CTX* ctx)
-{
- long m = 0;
-
- WOLFSSL_ENTER("SSL_CTX_set_session_cache_mode");
-
- if (ctx == NULL) {
- return m;
- }
-
- if (ctx->sessionCacheOff != 1) {
- m |= SSL_SESS_CACHE_SERVER;
- }
-
- if (ctx->sessionCacheFlushOff == 1) {
- m |= SSL_SESS_CACHE_NO_AUTO_CLEAR;
- }
-
-#ifdef HAVE_EXT_CACHE
- if (ctx->internalCacheOff == 1) {
- m |= SSL_SESS_CACHE_NO_INTERNAL_STORE;
- }
- if (ctx->internalCacheLookupOff == 1) {
- m |= SSL_SESS_CACHE_NO_INTERNAL_LOOKUP;
- }
-#endif
-
- return m;
-}
-
+#endif /* !NO_CERTS */
int wolfSSL_get_read_ahead(const WOLFSSL* ssl)
{
@@ -25307,8 +25211,8 @@ int wolfSSL_ASN1_TIME_check(const WOLFSSL_ASN1_TIME* a)
/*
* Convert time to Unix time (GMT).
*/
-static long long TimeToUnixTime(int sec, int min, int hour, int mday, int mon,
- int year)
+static long long TimeToUnixTime(int sec, int minute, int hour, int mday,
+ int mon, int year)
{
/* Number of cumulative days from the previous months, starting from
* beginning of January. */
@@ -25324,8 +25228,8 @@ static long long TimeToUnixTime(int sec, int min, int hour, int mday, int mon,
1969 / 100 - 1969 / 400;
return ((((long long) (year - 1970) * 365 + leapDays +
- monthDaysCumulative[mon] + mday - 1) * 24 + hour) * 60 + min) * 60 +
- sec;
+ monthDaysCumulative[mon] + mday - 1) * 24 + hour) * 60 + minute) *
+ 60 + sec;
}
int wolfSSL_ASN1_TIME_diff(int *days, int *secs, const WOLFSSL_ASN1_TIME *from,
@@ -26802,12 +26706,6 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
"Dilithium Level 3", "Dilithium Level 3"},
{ CTC_DILITHIUM_LEVEL5, DILITHIUM_LEVEL5k, oidKeyType,
"Dilithium Level 5", "Dilithium Level 5"},
- { CTC_DILITHIUM_AES_LEVEL2, DILITHIUM_AES_LEVEL2k, oidKeyType,
- "Dilithium AES Level 2", "Dilithium AES Level 2"},
- { CTC_DILITHIUM_AES_LEVEL3, DILITHIUM_AES_LEVEL3k, oidKeyType,
- "Dilithium AES Level 3", "Dilithium AES Level 3"},
- { CTC_DILITHIUM_AES_LEVEL5, DILITHIUM_AES_LEVEL5k, oidKeyType,
- "Dilithium AES Level 5", "Dilithium AES Level 5"},
#endif /* HAVE_DILITHIUM */
#endif /* HAVE_PQC */
@@ -28455,9 +28353,6 @@ struct WOLFSSL_HashSigInfo {
{ no_mac, dilithium_level2_sa_algo, CTC_DILITHIUM_LEVEL2 },
{ no_mac, dilithium_level3_sa_algo, CTC_DILITHIUM_LEVEL3 },
{ no_mac, dilithium_level5_sa_algo, CTC_DILITHIUM_LEVEL5 },
- { no_mac, dilithium_aes_level2_sa_algo, CTC_DILITHIUM_AES_LEVEL2 },
- { no_mac, dilithium_aes_level3_sa_algo, CTC_DILITHIUM_AES_LEVEL3 },
- { no_mac, dilithium_aes_level5_sa_algo, CTC_DILITHIUM_AES_LEVEL5 },
#endif /* HAVE_DILITHIUM */
#endif /* HAVE_PQC */
#ifndef NO_DSA
@@ -29564,10 +29459,10 @@ int wolfSSL_ASN1_STRING_canon(WOLFSSL_ASN1_STRING* asn_out,
/* trimming spaces at the head and tail */
dst--;
- for (; (len > 0 && XISSPACE(*dst)); len--) {
+ for (; (len > 0 && XISSPACE((unsigned char)*dst)); len--) {
dst--;
}
- for (; (len > 0 && XISSPACE(*src)); len--) {
+ for (; (len > 0 && XISSPACE((unsigned char)*src)); len--) {
src++;
}
@@ -29578,10 +29473,10 @@ int wolfSSL_ASN1_STRING_canon(WOLFSSL_ASN1_STRING* asn_out,
if (!XISASCII(*src)) {
/* keep non-ascii code */
*dst = *src++;
- } else if (XISSPACE(*src)) {
+ } else if ((*src) > 0 && XISSPACE((unsigned char)*src)) {
*dst = 0x20; /* space */
/* remove the rest of spaces */
- while (XISSPACE(*++src) && i++ < len);
+ while (XISSPACE((unsigned char)*++src) && i++ < len);
} else {
*dst = (char)XTOLOWER((unsigned char)*src++);
}
@@ -35727,7 +35622,7 @@ int wolfSSL_BN_sub(WOLFSSL_BIGNUM* r, const WOLFSSL_BIGNUM* a,
return 0;
}
-WOLFSSL_API int wolfSSL_BN_mul(WOLFSSL_BIGNUM *r, WOLFSSL_BIGNUM *a, WOLFSSL_BIGNUM *b,
+int wolfSSL_BN_mul(WOLFSSL_BIGNUM *r, WOLFSSL_BIGNUM *a, WOLFSSL_BIGNUM *b,
WOLFSSL_BN_CTX *ctx)
{
int ret = WOLFSSL_SUCCESS;
@@ -35942,7 +35837,7 @@ int wolfSSL_BN_is_negative(const WOLFSSL_BIGNUM* bn)
return mp_isneg((mp_int*)bn->internal);
}
-WOLFSSL_API void wolfSSL_BN_zero(WOLFSSL_BIGNUM* bn)
+void wolfSSL_BN_zero(WOLFSSL_BIGNUM* bn)
{
if (bn == NULL || bn->internal == NULL) {
return;
@@ -35951,7 +35846,7 @@ WOLFSSL_API void wolfSSL_BN_zero(WOLFSSL_BIGNUM* bn)
mp_zero((mp_int*)bn->internal);
}
-WOLFSSL_API int wolfSSL_BN_one(WOLFSSL_BIGNUM* bn)
+int wolfSSL_BN_one(WOLFSSL_BIGNUM* bn)
{
int ret = WOLFSSL_SUCCESS;
@@ -36022,7 +35917,8 @@ int wolfSSL_BN_is_word(const WOLFSSL_BIGNUM* bn, WOLFSSL_BN_ULONG w)
return WOLFSSL_FAILURE;
}
- if (w <= (WOLFSSL_BN_ULONG)MP_MASK) {
+ /* Check operand sizes before value check to avoid pointless comparison */
+ if ((sizeof(w) <= sizeof(MP_MASK)) || (w <= (WOLFSSL_BN_ULONG)MP_MASK)) {
if (mp_isword((mp_int*)bn->internal, (mp_digit)w) == MP_YES) {
return WOLFSSL_SUCCESS;
}
@@ -36680,7 +36576,8 @@ static int wolfSSL_BN_add_word_int(WOLFSSL_BIGNUM *bn, WOLFSSL_BN_ULONG w,
}
if (ret == WOLFSSL_SUCCESS) {
- if (w <= (WOLFSSL_BN_ULONG)MP_MASK) {
+ /* Check operand sizes before value check to avoid pointless comparison */
+ if ((sizeof(w) <= sizeof(MP_MASK)) || (w <= (WOLFSSL_BN_ULONG)MP_MASK)) {
if (sub == 1) {
rc = mp_sub_d((mp_int*)bn->internal, (mp_digit)w,
(mp_int*)bn->internal);
@@ -36748,7 +36645,7 @@ int wolfSSL_BN_add_word(WOLFSSL_BIGNUM *bn, WOLFSSL_BN_ULONG w)
/* return code compliant with OpenSSL :
* 1 if success, 0 else
*/
-WOLFSSL_API int wolfSSL_BN_sub_word(WOLFSSL_BIGNUM* bn, WOLFSSL_BN_ULONG w)
+int wolfSSL_BN_sub_word(WOLFSSL_BIGNUM* bn, WOLFSSL_BN_ULONG w)
{
int ret;
@@ -36992,7 +36889,8 @@ WOLFSSL_BN_ULONG wolfSSL_BN_mod_word(const WOLFSSL_BIGNUM *bn,
return (WOLFSSL_BN_ULONG)WOLFSSL_FATAL_ERROR;
}
- if (w <= (WOLFSSL_BN_ULONG)MP_MASK) {
+ /* Check operand sizes before value check to avoid pointless comparison */
+ if ((sizeof(w) <= sizeof(MP_MASK)) || (w <= (WOLFSSL_BN_ULONG)MP_MASK)) {
mp_digit bn_ret;
if (mp_mod_d((mp_int*)bn->internal, (mp_digit)w, &bn_ret) != MP_OKAY) {
WOLFSSL_MSG("mp_add_d error");
@@ -37053,7 +36951,7 @@ char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM *bn)
return buf;
}
-#ifndef NO_FILESYSTEM
+#if !defined(NO_FILESYSTEM) && defined(XFPRINTF)
/* return code compliant with OpenSSL :
* 1 if success, 0 if error
*/
@@ -37084,7 +36982,7 @@ int wolfSSL_BN_print_fp(XFILE fp, const WOLFSSL_BIGNUM *bn)
return ret;
}
-#endif /* !NO_FILESYSTEM */
+#endif /* !NO_FILESYSTEM && XFPRINTF */
WOLFSSL_BIGNUM *wolfSSL_BN_CTX_get(WOLFSSL_BN_CTX *ctx)
@@ -40669,7 +40567,7 @@ int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
* RETURNS:
* returns pointer to a PKCS7 structure on success, otherwise returns NULL
*/
-WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
+PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
WOLFSSL_BIO** bcont)
{
MimeHdr* allHdrs = NULL;
diff --git a/src/ssl_misc.c b/src/ssl_misc.c
index d6525a4eb4..6197b45f8e 100644
--- a/src/ssl_misc.c
+++ b/src/ssl_misc.c
@@ -1,6 +1,6 @@
/* ssl_misc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/tls.c b/src/tls.c
index 27c1002b2d..d02fdb19ce 100644
--- a/src/tls.c
+++ b/src/tls.c
@@ -1,6 +1,6 @@
/* tls.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -10058,7 +10058,7 @@ int TLSX_EarlyData_Use(WOLFSSL* ssl, word32 maxSz, int is_response)
extension->resp = is_response;
/* In QUIC, earlydata size is either 0 or 0xffffffff.
- * Override any size between, possibly left from our intial value */
+ * Override any size between, possibly left from our initial value */
extension->val = (WOLFSSL_IS_QUIC(ssl) && is_response && maxSz > 0) ?
WOLFSSL_MAX_32BIT : maxSz;
@@ -11407,7 +11407,7 @@ int TLSX_GetRequestSize(WOLFSSL* ssl, byte msgType, word16* pLength)
#endif
}
#endif
-#endif
+#endif /* WOLFSSL_TLS13 */
#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
|| defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
if (!SSL_CM(ssl)->ocspStaplingEnabled) {
@@ -11480,8 +11480,9 @@ int TLSX_WriteRequest(WOLFSSL* ssl, byte* output, byte msgType, word16* pOffset)
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_SIGNATURE_ALGORITHMS));
#endif
#ifdef WOLFSSL_TLS13
- if (!IsAtLeastTLSv1_2(ssl))
+ if (!IsAtLeastTLSv1_2(ssl)) {
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_SUPPORTED_VERSIONS));
+ }
#if !defined(WOLFSSL_NO_TLS12) || !defined(NO_OLD_TLS)
if (!IsAtLeastTLSv1_3(ssl->version)) {
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
@@ -11506,7 +11507,7 @@ int TLSX_WriteRequest(WOLFSSL* ssl, byte* output, byte msgType, word16* pOffset)
*/
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
#endif
-#endif
+#endif /* WOLFSSL_TLS13 */
#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
|| defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
/* mark already sent, so it won't send it */
@@ -11591,33 +11592,34 @@ int TLSX_GetResponseSize(WOLFSSL* ssl, byte msgType, word16* pLength)
#ifndef NO_WOLFSSL_SERVER
case server_hello:
PF_VALIDATE_RESPONSE(ssl, semaphore);
- #ifdef WOLFSSL_TLS13
+ #ifdef WOLFSSL_TLS13
if (IsAtLeastTLSv1_3(ssl->version)) {
XMEMSET(semaphore, 0xff, SEMAPHORE_SIZE);
TURN_OFF(semaphore,
TLSX_ToSemaphore(TLSX_SUPPORTED_VERSIONS));
- #ifdef HAVE_SUPPORTED_CURVES
- if (!ssl->options.noPskDheKe)
+ #ifdef HAVE_SUPPORTED_CURVES
+ if (!ssl->options.noPskDheKe) {
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
- #endif
- #if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
+ }
+ #endif
+ #if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
- #endif
- #ifdef WOLFSSL_DTLS_CID
+ #endif
+ #ifdef WOLFSSL_DTLS_CID
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_CONNECTION_ID));
- #endif /* WOLFSSL_DTLS_CID */
+ #endif
}
- #if !defined(WOLFSSL_NO_TLS12) || !defined(NO_OLD_TLS)
+ #if !defined(WOLFSSL_NO_TLS12) || !defined(NO_OLD_TLS)
else {
- #ifdef HAVE_SUPPORTED_CURVES
+ #ifdef HAVE_SUPPORTED_CURVES
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
- #endif
- #if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
+ #endif
+ #if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
- #endif
+ #endif
}
- #endif
- #endif
+ #endif
+ #endif /* WOLFSSL_TLS13 */
break;
#ifdef WOLFSSL_TLS13
diff --git a/src/tls13.c b/src/tls13.c
index 42eb7ffce0..5f8be72aa4 100644
--- a/src/tls13.c
+++ b/src/tls13.c
@@ -1,6 +1,6 @@
/* tls13.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -6771,18 +6771,6 @@ static WC_INLINE void EncodeSigAlg(byte hashAlgo, byte hsType, byte* output)
output[0] = DILITHIUM_LEVEL5_SA_MAJOR;
output[1] = DILITHIUM_LEVEL5_SA_MINOR;
break;
- case dilithium_aes_level2_sa_algo:
- output[0] = DILITHIUM_AES_LEVEL2_SA_MAJOR;
- output[1] = DILITHIUM_AES_LEVEL2_SA_MINOR;
- break;
- case dilithium_aes_level3_sa_algo:
- output[0] = DILITHIUM_AES_LEVEL3_SA_MAJOR;
- output[1] = DILITHIUM_AES_LEVEL3_SA_MINOR;
- break;
- case dilithium_aes_level5_sa_algo:
- output[0] = DILITHIUM_AES_LEVEL5_SA_MAJOR;
- output[1] = DILITHIUM_AES_LEVEL5_SA_MINOR;
- break;
#endif
#endif
default:
@@ -6855,18 +6843,6 @@ static WC_INLINE int DecodeTls13SigAlg(byte* input, byte* hashAlgo,
*hsType = dilithium_level5_sa_algo;
/* Hash performed as part of sign/verify operation. */
*hashAlgo = sha512_mac;
- } else if (input[1] == DILITHIUM_AES_LEVEL2_SA_MINOR) {
- *hsType = dilithium_aes_level2_sa_algo;
- /* Hash performed as part of sign/verify operation. */
- *hashAlgo = sha512_mac;
- } else if (input[1] == DILITHIUM_AES_LEVEL3_SA_MINOR) {
- *hsType = dilithium_aes_level3_sa_algo;
- /* Hash performed as part of sign/verify operation. */
- *hashAlgo = sha512_mac;
- } else if (input[1] == DILITHIUM_AES_LEVEL5_SA_MINOR) {
- *hsType = dilithium_aes_level5_sa_algo;
- /* Hash performed as part of sign/verify operation. */
- *hashAlgo = sha512_mac;
}
else
#endif /* HAVE_DILITHIUM */
@@ -7730,28 +7706,18 @@ static int SendTls13CertificateVerify(WOLFSSL* ssl)
else if (ssl->hsType == DYNAMIC_TYPE_DILITHIUM) {
dilithium_key* fkey = (dilithium_key*)ssl->hsKey;
byte level = 0;
- byte sym = 0;
- if (wc_dilithium_get_level_and_sym(fkey, &level, &sym) != 0) {
+ if (wc_dilithium_get_level(fkey, &level) != 0) {
ERROR_OUT(ALGO_ID_E, exit_scv);
}
- if ((level == 2) && (sym == SHAKE_VARIANT)) {
+ if (level == 2) {
args->sigAlgo = dilithium_level2_sa_algo;
}
- else if ((level == 3) && (sym == SHAKE_VARIANT)) {
+ else if (level == 3) {
args->sigAlgo = dilithium_level3_sa_algo;
}
- else if ((level == 5) && (sym == SHAKE_VARIANT)) {
+ else if (level == 5) {
args->sigAlgo = dilithium_level5_sa_algo;
}
- else if ((level == 2) && (sym == AES_VARIANT)) {
- args->sigAlgo = dilithium_aes_level2_sa_algo;
- }
- else if ((level == 3) && (sym == AES_VARIANT)) {
- args->sigAlgo = dilithium_aes_level3_sa_algo;
- }
- else if ((level == 5) && (sym == AES_VARIANT)) {
- args->sigAlgo = dilithium_aes_level5_sa_algo;
- }
else {
ERROR_OUT(ALGO_ID_E, exit_scv);
}
@@ -8322,21 +8288,6 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input,
validSigAlgo = (ssl->peerDilithiumKey != NULL) &&
ssl->peerDilithiumKeyPresent;
}
- if (args->sigAlgo == dilithium_aes_level2_sa_algo) {
- WOLFSSL_MSG("Peer sent Dilithium AES Level 2 sig");
- validSigAlgo = (ssl->peerDilithiumKey != NULL) &&
- ssl->peerDilithiumKeyPresent;
- }
- if (args->sigAlgo == dilithium_aes_level3_sa_algo) {
- WOLFSSL_MSG("Peer sent Dilithium AES Level 3 sig");
- validSigAlgo = (ssl->peerDilithiumKey != NULL) &&
- ssl->peerDilithiumKeyPresent;
- }
- if (args->sigAlgo == dilithium_aes_level5_sa_algo) {
- WOLFSSL_MSG("Peer sent Dilithium AES Level 5 sig");
- validSigAlgo = (ssl->peerDilithiumKey != NULL) &&
- ssl->peerDilithiumKeyPresent;
- }
#endif
#ifndef NO_RSA
if (args->sigAlgo == rsa_sa_algo) {
diff --git a/src/wolfio.c b/src/wolfio.c
index 9bea3a6962..ee420129a4 100644
--- a/src/wolfio.c
+++ b/src/wolfio.c
@@ -1,6 +1,6 @@
/* wolfio.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -1529,12 +1529,6 @@ int wolfIO_HttpProcessResponse(int sfd, const char** appStrList,
case phr_http_start:
case phr_have_length:
case phr_have_type:
- if (XSTRLEN(start) < 13) { /* 13 is the shortest of the following
- next lines we're checking for. */
- WOLFSSL_MSG("wolfIO_HttpProcessResponse content type is too short.");
- return HTTP_VERSION_ERR;
- }
-
if (XSTRNCASECMP(start, "Content-Type:", 13) == 0) {
int i;
diff --git a/src/x509.c b/src/x509.c
index 92162d39a9..b4673a9a1b 100644
--- a/src/x509.c
+++ b/src/x509.c
@@ -1,6 +1,6 @@
/* x509.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/src/x509_str.c b/src/x509_str.c
index 51ec112d9a..5c52d9f9c8 100644
--- a/src/x509_str.c
+++ b/src/x509_str.c
@@ -1,6 +1,6 @@
/* x509_str.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/sslSniffer/sslSniffer.vcxproj b/sslSniffer/sslSniffer.vcxproj
index 75c7bf2a5d..738b89b729 100644
--- a/sslSniffer/sslSniffer.vcxproj
+++ b/sslSniffer/sslSniffer.vcxproj
@@ -26,24 +26,24 @@
DynamicLibrary
- v110
+ v143
Unicode
true
DynamicLibrary
- v110
+ v143
Unicode
true
DynamicLibrary
- v110
+ v143
Unicode
DynamicLibrary
- v110
+ v143
Unicode
@@ -185,4 +185,4 @@
-
+
\ No newline at end of file
diff --git a/sslSniffer/sslSnifferTest/include.am b/sslSniffer/sslSnifferTest/include.am
index 1af1644c81..40800bb7e6 100644
--- a/sslSniffer/sslSnifferTest/include.am
+++ b/sslSniffer/sslSnifferTest/include.am
@@ -5,8 +5,8 @@
if BUILD_SNIFFTEST
noinst_PROGRAMS += sslSniffer/sslSnifferTest/snifftest
sslSniffer_sslSnifferTest_snifftest_SOURCES = sslSniffer/sslSnifferTest/snifftest.c
-sslSniffer_sslSnifferTest_snifftest_LDADD = src/libwolfssl.la -lpcap $(LIB_STATIC_ADD)
-sslSniffer_sslSnifferTest_snifftest_DEPENDENCIES = src/libwolfssl.la
+sslSniffer_sslSnifferTest_snifftest_LDADD = src/libwolfssl@LIBSUFFIX@.la -lpcap $(LIB_STATIC_ADD)
+sslSniffer_sslSnifferTest_snifftest_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += sslSniffer/README.md
EXTRA_DIST += sslSniffer/sslSniffer.vcproj
diff --git a/sslSniffer/sslSnifferTest/snifftest.c b/sslSniffer/sslSnifferTest/snifftest.c
index 27571e4efb..060e86aa4e 100644
--- a/sslSniffer/sslSnifferTest/snifftest.c
+++ b/sslSniffer/sslSnifferTest/snifftest.c
@@ -1,6 +1,6 @@
/* snifftest.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/sslSniffer/sslSnifferTest/sslSniffTest.vcxproj b/sslSniffer/sslSnifferTest/sslSniffTest.vcxproj
index 72770eba53..1ee967fb1c 100644
--- a/sslSniffer/sslSnifferTest/sslSniffTest.vcxproj
+++ b/sslSniffer/sslSnifferTest/sslSniffTest.vcxproj
@@ -27,24 +27,24 @@
Application
- v141
+ v143
Unicode
true
Application
- v141
+ v143
Unicode
true
Application
- v141
+ v143
Unicode
Application
- v141
+ v143
Unicode
diff --git a/tests/api.c b/tests/api.c
index 77bde7d246..71fda4e00e 100644
--- a/tests/api.c
+++ b/tests/api.c
@@ -1,6 +1,6 @@
/* api.c API unit tests
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -402,7 +402,7 @@ typedef struct testVector {
/* Test failed. */
#define TEST_FAIL (0)
/* Test skipped - not run. */
-#define TEST_SKIPPED (-1)
+#define TEST_SKIPPED (-7777)
/* Returns the result based on whether check is true.
*
@@ -1491,6 +1491,76 @@ static int test_cm_load_ca_file(const char* ca_cert_file)
return ret;
}
+
+static int test_cm_load_ca_buffer_ex(const byte* cert_buf, size_t cert_sz,
+ int file_type, word32 flags)
+{
+ int ret;
+ WOLFSSL_CERT_MANAGER* cm;
+
+ cm = wolfSSL_CertManagerNew();
+ if (cm == NULL) {
+ fprintf(stderr, "test_cm_load_ca failed\n");
+ return -1;
+ }
+
+ ret = wolfSSL_CertManagerLoadCABuffer_ex(cm, cert_buf, cert_sz, file_type,
+ 0, flags);
+
+ wolfSSL_CertManagerFree(cm);
+
+ return ret;
+}
+
+static int test_cm_load_ca_file_ex(const char* ca_cert_file, word32 flags)
+{
+ int ret = 0;
+ byte* cert_buf = NULL;
+ size_t cert_sz = 0;
+#if defined(WOLFSSL_PEM_TO_DER)
+ DerBuffer* pDer = NULL;
+#endif
+
+ ret = load_file(ca_cert_file, &cert_buf, &cert_sz);
+ if (ret == 0) {
+ /* normal test */
+ ret = test_cm_load_ca_buffer_ex(cert_buf, cert_sz,
+ WOLFSSL_FILETYPE_PEM, flags);
+
+ if (ret == WOLFSSL_SUCCESS) {
+ /* test including null terminator in length */
+ byte* tmp = (byte*)realloc(cert_buf, cert_sz+1);
+ if (tmp == NULL) {
+ ret = MEMORY_E;
+ }
+ else {
+ cert_buf = tmp;
+ cert_buf[cert_sz] = '\0';
+ ret = test_cm_load_ca_buffer_ex(cert_buf, cert_sz+1,
+ WOLFSSL_FILETYPE_PEM, flags);
+ }
+
+ }
+
+ #if defined(WOLFSSL_PEM_TO_DER)
+ if (ret == WOLFSSL_SUCCESS) {
+ /* test loading DER */
+ ret = wc_PemToDer(cert_buf, cert_sz, CA_TYPE, &pDer, NULL, NULL, NULL);
+ if (ret == 0 && pDer != NULL) {
+ ret = test_cm_load_ca_buffer_ex(pDer->buffer, pDer->length,
+ WOLFSSL_FILETYPE_ASN1, flags);
+
+ wc_FreeDer(&pDer);
+ }
+ }
+ #endif
+
+ }
+ free(cert_buf);
+
+ return ret;
+}
+
#endif /* !NO_FILESYSTEM && !NO_CERTS */
static int test_wolfSSL_CertManagerCheckOCSPResponse(void)
@@ -1891,6 +1961,41 @@ static int test_wolfSSL_CertManagerLoadCABuffer(void)
return res;
}
+static int test_wolfSSL_CertManagerLoadCABuffer_ex(void)
+{
+ int res = TEST_SKIPPED;
+#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
+ const char* ca_cert = "./certs/ca-cert.pem";
+ const char* ca_expired_cert = "./certs/test/expired/expired-ca.pem";
+ int ret;
+
+ ret = test_cm_load_ca_file_ex(ca_cert, WOLFSSL_LOAD_FLAG_NONE);
+#if defined(NO_WOLFSSL_CLIENT) && defined(NO_WOLFSSL_SERVER)
+ AssertIntEQ(ret, WOLFSSL_FATAL_ERROR);
+#elif defined(NO_RSA)
+ AssertIntEQ(ret, ASN_UNKNOWN_OID_E);
+#else
+ AssertIntEQ(ret, WOLFSSL_SUCCESS);
+#endif
+
+ ret = test_cm_load_ca_file_ex(ca_expired_cert,
+ WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY);
+#if defined(NO_WOLFSSL_CLIENT) && defined(NO_WOLFSSL_SERVER)
+ AssertIntEQ(ret, WOLFSSL_FATAL_ERROR);
+ res = TEST_RES_CHECK(ret == WOLFSSL_FATAL_ERROR);
+#elif defined(NO_RSA)
+ AssertIntEQ(ret, ASN_UNKNOWN_OID_E);
+ res = TEST_RES_CHECK(ret == ASN_UNKNOWN_OID_E);
+#else
+ AssertIntEQ(ret, WOLFSSL_SUCCESS);
+ res = TEST_RES_CHECK(ret == WOLFSSL_SUCCESS);
+#endif
+#endif
+
+ return res;
+}
+
+
static int test_wolfSSL_CertManagerGetCerts(void)
{
int res = TEST_SKIPPED;
@@ -2897,8 +3002,11 @@ static int test_wolfSSL_CertRsaPss(void)
XFILE f;
const char* rsaPssSha256Cert = "./certs/rsapss/ca-rsapss.der";
const char* rsaPssRootSha256Cert = "./certs/rsapss/root-rsapss.pem";
-#if defined(WOLFSSL_SHA384) && RSA_MAX_SIZE >= 3072
+#if defined(WOLFSSL_SHA384) && defined(WOLFSSL_PSS_LONG_SALT) && \
+ RSA_MAX_SIZE >= 3072
const char* rsaPssSha384Cert = "./certs/rsapss/ca-3072-rsapss.der";
+#endif
+#if defined(WOLFSSL_SHA384) && RSA_MAX_SIZE >= 3072
const char* rsaPssRootSha384Cert = "./certs/rsapss/root-3072-rsapss.pem";
#endif
DecodedCert cert;
@@ -3290,7 +3398,7 @@ static int test_wolfSSL_CTX_SetMinMaxDhKey_Sz(void)
static int test_wolfSSL_CTX_der_load_verify_locations(void)
{
int res = TEST_SKIPPED;
-#if defined(WOLFSSL_DER_LOAD) && \
+#if !defined(NO_FILESYSTEM) && defined(WOLFSSL_DER_LOAD) && \
(!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER))
WOLFSSL_CTX* ctx = NULL;
const char* derCert = "./certs/server-cert.der";
@@ -3875,7 +3983,7 @@ static int test_wolfSSL_EC(void)
/* check bn2hex */
hexStr = BN_bn2hex(k);
AssertStrEQ(hexStr, kTest);
-#ifndef NO_FILESYSTEM
+#if !defined(NO_FILESYSTEM) && defined(XFPRINTF)
BN_print_fp(stderr, k);
fprintf(stderr, "\n");
#endif
@@ -3883,7 +3991,7 @@ static int test_wolfSSL_EC(void)
hexStr = BN_bn2hex(Gx);
AssertStrEQ(hexStr, kGx);
-#ifndef NO_FILESYSTEM
+#if !defined(NO_FILESYSTEM) && defined(XFPRINTF)
BN_print_fp(stderr, Gx);
fprintf(stderr, "\n");
#endif
@@ -3891,7 +3999,7 @@ static int test_wolfSSL_EC(void)
hexStr = BN_bn2hex(Gy);
AssertStrEQ(hexStr, kGy);
-#ifndef NO_FILESYSTEM
+#if !defined(NO_FILESYSTEM) && defined(XFPRINTF)
BN_print_fp(stderr, Gy);
fprintf(stderr, "\n");
#endif
@@ -6510,7 +6618,10 @@ static THREAD_RETURN WOLFSSL_THREAD run_wolfssl_server(void* args)
wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
#endif
#if defined(WOLFSSL_SESSION_EXPORT) && defined(WOLFSSL_DTLS)
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_dtls_set_export(ctx, test_export));
+ if (callbacks->method == wolfDTLSv1_2_server_method) {
+ AssertIntEQ(WOLFSSL_SUCCESS,
+ wolfSSL_CTX_dtls_set_export(ctx, test_export));
+ }
#endif
@@ -7323,9 +7434,11 @@ static void test_wolfSSL_CTX_add_session_ctx_ready(WOLFSSL_CTX* ctx)
/* Don't store sessions. Lookup is still enabled. */
AssertIntEQ(wolfSSL_CTX_set_session_cache_mode(ctx,
WOLFSSL_SESS_CACHE_NO_INTERNAL_STORE), WOLFSSL_SUCCESS);
+#ifdef OPENSSL_EXTRA
AssertIntEQ(wolfSSL_CTX_get_session_cache_mode(ctx) &
WOLFSSL_SESS_CACHE_NO_INTERNAL_STORE,
WOLFSSL_SESS_CACHE_NO_INTERNAL_STORE);
+#endif
/* Require both peers to provide certs */
wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER, NULL);
}
@@ -7388,9 +7501,11 @@ static void test_wolfSSL_CTX_add_session_on_result(WOLFSSL* ssl)
AssertNotNull(peer);
wolfSSL_X509_free(peer);
AssertNotNull(wolfSSL_SESSION_get_peer_chain(*sess));
- AssertNotNull(wolfSSL_SESSION_get0_peer(*sess));
+ #ifdef OPENSSL_EXTRA
+ AssertNotNull(SSL_SESSION_get0_peer(*sess));
+ #endif
}
-#endif
+#endif /* SESSION_CERTS */
}
static void test_wolfSSL_CTX_add_session_ssl_ready(WOLFSSL* ssl)
@@ -9226,7 +9341,8 @@ static int test_wolfSSL_wolfSSL_UseSecureRenegotiation(void)
return res;
}
-#if !defined(NO_WOLFSSL_SERVER) && (!defined(NO_RSA) || defined(HAVE_ECC))
+#if !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_SERVER) && \
+ (!defined(NO_RSA) || defined(HAVE_ECC))
/* Called when writing. */
static int DummySend(WOLFSSL* ssl, char* buf, int sz, void* ctx)
{
@@ -9266,7 +9382,8 @@ static int BufferInfoRecv(WOLFSSL* ssl, char* buf, int sz, void* ctx)
static int test_tls_ext_duplicate(void)
{
int res = TEST_SKIPPED;
-#if !defined(NO_WOLFSSL_SERVER) && (!defined(NO_RSA) || defined(HAVE_ECC))
+#if !defined(NO_WOLFSSL_SERVER) && (!defined(NO_RSA) || defined(HAVE_ECC)) && \
+ !defined(NO_FILESYSTEM)
const unsigned char clientHelloDupTlsExt[] = {
0x16, 0x03, 0x03, 0x00, 0x6a, 0x01, 0x00, 0x00,
0x66, 0x03, 0x03, 0xf4, 0x65, 0xbd, 0x22, 0xfe,
@@ -20334,7 +20451,7 @@ static int test_wc_RsaPublicEncryptDecrypt_ex(void)
int result = TEST_SKIPPED;
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(HAVE_FIPS)\
&& !defined(WC_NO_RSA_OAEP) && !defined(HAVE_USER_RSA)\
- && !defined(NO_SHA)
+ && !defined(NO_SHA256)
RsaKey key;
WC_RNG rng;
int ret;
@@ -20372,7 +20489,7 @@ static int test_wc_RsaPublicEncryptDecrypt_ex(void)
/* Encrypt */
if (ret == 0) {
ret = wc_RsaPublicEncrypt_ex(in, inLen, cipher, cipherSz, &key, &rng,
- WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0);
+ WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA256, WC_MGF1SHA256, NULL, 0);
if (ret >= 0) {
idx = ret;
ret = 0;
@@ -20397,8 +20514,8 @@ static int test_wc_RsaPublicEncryptDecrypt_ex(void)
#endif
if (ret == 0) {
ret = wc_RsaPrivateDecrypt_ex(cipher, (word32)idx,
- plain, plainSz, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA,
- WC_MGF1SHA1, NULL, 0);
+ plain, plainSz, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA256,
+ WC_MGF1SHA256, NULL, 0);
}
if (ret >= 0) {
if (!XMEMCMP(plain, inStr, plainSz)) {
@@ -20417,8 +20534,8 @@ static int test_wc_RsaPublicEncryptDecrypt_ex(void)
if (ret == 0) {
ret = wc_RsaPrivateDecryptInline_ex(cipher, (word32)idx,
- &res, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA,
- WC_MGF1SHA1, NULL, 0);
+ &res, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA256,
+ WC_MGF1SHA256, NULL, 0);
if (ret >= 0) {
if (!XMEMCMP(inStr, res, plainSz)) {
@@ -27323,7 +27440,7 @@ static int test_wc_Ed448PrivateKeyToDer(void)
static int test_wc_SetSubjectBuffer(void)
{
int res = TEST_SKIPPED;
-#if defined(WOLFSSL_CERT_GEN) && !defined(NO_RSA)
+#if defined(WOLFSSL_CERT_GEN) && !defined(NO_RSA) && !defined(NO_FILESYSTEM)
Cert cert;
FILE* file;
byte* der;
@@ -28014,7 +28131,11 @@ static int test_wc_PKCS7_EncodeSignedData(void)
pkcs7->privateKey = key;
pkcs7->privateKeySz = (word32)sizeof(key);
pkcs7->encryptOID = RSAk;
+#ifdef NO_SHA
+ pkcs7->hashOID = SHA256h;
+#else
pkcs7->hashOID = SHAh;
+#endif
pkcs7->rng = &rng;
AssertIntGT(wc_PKCS7_EncodeSignedData(pkcs7, output, outputSz), 0);
@@ -28078,7 +28199,11 @@ static int test_wc_PKCS7_EncodeSignedData_ex(void)
word32 outputFootSz = (word32)sizeof(outputFoot);
byte data[FOURK_BUF];
wc_HashAlg hash;
+#ifdef NO_SHA
+ enum wc_HashType hashType = WC_HASH_TYPE_SHA256;
+#else
enum wc_HashType hashType = WC_HASH_TYPE_SHA;
+#endif
byte hashBuf[WC_MAX_DIGEST_SIZE];
word32 hashSz = wc_HashGetDigestSize(hashType);
@@ -28164,7 +28289,11 @@ static int test_wc_PKCS7_EncodeSignedData_ex(void)
pkcs7->privateKey = key;
pkcs7->privateKeySz = (word32)sizeof(key);
pkcs7->encryptOID = RSAk;
+#ifdef NO_SHA
+ pkcs7->hashOID = SHA256h;
+#else
pkcs7->hashOID = SHAh;
+#endif
pkcs7->rng = &rng;
/* calculate hash for content */
@@ -28276,7 +28405,7 @@ static int test_wc_PKCS7_EncodeSignedData_ex(void)
} /* END test_wc_PKCS7_EncodeSignedData_ex */
-#if defined(HAVE_PKCS7)
+#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM)
/**
* Loads certs/keys from files or buffers into the argument buffers,
@@ -28535,7 +28664,11 @@ static int CreatePKCS7SignedData(unsigned char* output, int outputSz,
else {
pkcs7->encryptOID = ECDSAk;
}
+#ifdef NO_SHA
+ pkcs7->hashOID = SHA256h;
+#else
pkcs7->hashOID = SHAh;
+#endif
pkcs7->rng = &rng;
if (withAttribs) {
/* include a signed attribute */
@@ -28571,7 +28704,7 @@ static int CreatePKCS7SignedData(unsigned char* output, int outputSz,
static int test_wc_PKCS7_VerifySignedData(void)
{
int res = TEST_SKIPPED;
-#if defined(HAVE_PKCS7)
+#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM)
PKCS7* pkcs7;
byte output[6000]; /* Large size needed for bundles with int CA certs */
word32 outputSz = sizeof(output);
@@ -28582,7 +28715,11 @@ static int test_wc_PKCS7_VerifySignedData(void)
int ret;
wc_HashAlg hash;
+#ifdef NO_SHA
+ enum wc_HashType hashType = WC_HASH_TYPE_SHA256;
+#else
enum wc_HashType hashType = WC_HASH_TYPE_SHA;
+#endif
byte hashBuf[WC_MAX_DIGEST_SIZE];
word32 hashSz = wc_HashGetDigestSize(hashType);
@@ -28912,27 +29049,27 @@ static int test_wc_PKCS7_EncodeDecodeEnvelopedData(void)
!defined(NO_SHA256) || defined(WOLFSSL_SHA512)))
/* RSA certs and keys. */
#if defined(USE_CERT_BUFFERS_1024)
+ rsaCertSz = (word32)sizeof_client_cert_der_1024;
/* Allocate buffer space. */
AssertNotNull(rsaCert =
- (byte*)XMALLOC(ONEK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
+ (byte*)XMALLOC(rsaCertSz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
/* Init buffer. */
- rsaCertSz = (word32)sizeof_client_cert_der_1024;
XMEMCPY(rsaCert, client_cert_der_1024, rsaCertSz);
- AssertNotNull(rsaPrivKey = (byte*)XMALLOC(ONEK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
rsaPrivKeySz = (word32)sizeof_client_key_der_1024;
+ AssertNotNull(rsaPrivKey = (byte*)XMALLOC(rsaPrivKeySz, HEAP_HINT,
+ DYNAMIC_TYPE_TMP_BUFFER));
XMEMCPY(rsaPrivKey, client_key_der_1024, rsaPrivKeySz);
#elif defined(USE_CERT_BUFFERS_2048)
+ rsaCertSz = (word32)sizeof_client_cert_der_2048;
/* Allocate buffer */
AssertNotNull(rsaCert =
- (byte*)XMALLOC(TWOK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
+ (byte*)XMALLOC(rsaCertSz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
/* Init buffer. */
- rsaCertSz = (word32)sizeof_client_cert_der_2048;
XMEMCPY(rsaCert, client_cert_der_2048, rsaCertSz);
- AssertNotNull(rsaPrivKey = (byte*)XMALLOC(TWOK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
rsaPrivKeySz = (word32)sizeof_client_key_der_2048;
+ AssertNotNull(rsaPrivKey = (byte*)XMALLOC(rsaPrivKeySz, HEAP_HINT,
+ DYNAMIC_TYPE_TMP_BUFFER));
XMEMCPY(rsaPrivKey, client_key_der_2048, rsaPrivKeySz);
#else
@@ -28986,9 +29123,11 @@ static int test_wc_PKCS7_EncodeDecodeEnvelopedData(void)
#endif /* USE_CERT_BUFFERS_256 */
#endif /* END HAVE_ECC */
+#ifndef NO_FILESYSTEM
/* Silence. */
(void)keyFile;
(void)certFile;
+#endif
{
const pkcs7EnvelopedVector testVectors[] = {
@@ -29173,7 +29312,8 @@ static int test_wc_PKCS7_EncodeDecodeEnvelopedData(void)
wc_FreeRng(&rng);
#endif
-#if defined(USE_CERT_BUFFERS_2048) && !defined(NO_DES3) && !defined(NO_RSA)
+#if defined(USE_CERT_BUFFERS_2048) && !defined(NO_DES3) && \
+ !defined(NO_RSA) && !defined(NO_SHA)
{
byte out[7];
byte *cms;
@@ -29202,7 +29342,7 @@ static int test_wc_PKCS7_EncodeDecodeEnvelopedData(void)
AssertIntEQ(XMEMCMP(out, "test", 4), 0);
wc_PKCS7_Free(pkcs7);
}
-#endif /* USE_CERT_BUFFERS_2048 && !NO_DES3 */
+#endif /* USE_CERT_BUFFERS_2048 && !NO_DES3 && !NO_RSA && !NO_SHA */
res = TEST_RES_CHECK(1);
#endif /* HAVE_PKCS7 */
@@ -29431,7 +29571,7 @@ static int test_wc_PKCS7_Degenerate(void)
} /* END test_wc_PKCS7_Degenerate() */
#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) && \
- defined(ASN_BER_TO_DER) && !defined(NO_DES3)
+ defined(ASN_BER_TO_DER) && !defined(NO_DES3) && !defined(NO_SHA)
static byte berContent[] = {
0x30, 0x80, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
0xF7, 0x0D, 0x01, 0x07, 0x03, 0xA0, 0x80, 0x30,
@@ -29621,7 +29761,9 @@ static byte berContent[] = {
0x52, 0x19, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00
};
-#endif /* HAVE_PKCS7 && !NO_FILESYSTEM && ASN_BER_TO_DER && !NO_DES3 */
+#endif /* HAVE_PKCS7 && !NO_FILESYSTEM && ASN_BER_TO_DER &&
+ * !NO_DES3 && !NO_SHA
+ */
/*
* Testing wc_PKCS7_BER()
@@ -29630,7 +29772,7 @@ static int test_wc_PKCS7_BER(void)
{
int res = TEST_SKIPPED;
#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) && \
- defined(ASN_BER_TO_DER)
+ !defined(NO_SHA) && defined(ASN_BER_TO_DER)
PKCS7* pkcs7;
char fName[] = "./certs/test-ber-exp02-05-2022.p7b";
XFILE f;
@@ -30505,7 +30647,11 @@ static int test_wolfSSL_lhash(void)
"We were born\n"
"Born to be wild";
+#ifdef NO_SHA
+ AssertIntEQ(lh_strhash(testStr), 0xf9dc8a43);
+#else
AssertIntEQ(lh_strhash(testStr), 0x5b7541dc);
+#endif
res = TEST_RES_CHECK(1);
#endif
@@ -31280,12 +31426,12 @@ static int test_wc_GetPubKeyDerFromCert(void)
byte keyDer[TWOK_BUF]; /* large enough for up to RSA 2048 */
word32 keyDerSz = (word32)sizeof(keyDer);
DecodedCert decoded;
-#if !defined(NO_RSA) && defined(WOLFSSL_CERT_REQ)
+#if !defined(NO_RSA) && defined(WOLFSSL_CERT_REQ) && !defined(NO_FILESYSTEM)
byte certBuf[6000]; /* for PEM and CSR, client-cert.pem is 5-6kB */
word32 certBufSz = sizeof(certBuf);
#endif
#if ((!defined(USE_CERT_BUFFERS_2048) && !defined(USE_CERT_BUFFERS_1024)) || \
- defined(WOLFSSL_CERT_REQ)) && !defined(NO_RSA)
+ defined(WOLFSSL_CERT_REQ)) && !defined(NO_RSA) && !defined(NO_FILESYSTEM)
XFILE fp;
#endif
#ifndef NO_RSA
@@ -31360,7 +31506,7 @@ static int test_wc_GetPubKeyDerFromCert(void)
wc_FreeDecodedCert(&decoded);
/* Certificate Request Tests */
- #ifdef WOLFSSL_CERT_REQ
+ #if defined(WOLFSSL_CERT_REQ) && !defined(NO_FILESYSTEM)
{
XMEMSET(certBuf, 0, sizeof(certBuf));
fp = XFOPEN("./certs/csr.signed.der", "rb");
@@ -34421,7 +34567,11 @@ static int test_wolfSSL_PKCS7_certs(void)
for (i = 0; i < 2; i++) {
AssertNotNull(p7 = PKCS7_new());
p7->version = 1;
+#ifdef NO_SHA
+ p7->hashOID = SHA256h;
+#else
p7->hashOID = SHAh;
+#endif
AssertNotNull(bio = BIO_new(BIO_s_file()));
AssertIntGT(BIO_read_filename(bio, svrCertFile), 0);
AssertNotNull(info_sk = PEM_X509_INFO_read_bio(bio, NULL, NULL, NULL));
@@ -37563,9 +37713,10 @@ static int test_wolfSSL_X509_get_ext_count(void)
static int test_wolfSSL_X509_sign2(void)
{
int res = TEST_SKIPPED;
+ /* test requires WOLFSSL_AKID_NAME to match expected output */
#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_CERTS) && \
defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_ALT_NAMES) && \
- defined(WOLFSSL_CERT_EXT) && \
+ defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_AKID_NAME) && \
(defined(WOLFSSL_QT) || defined(OPENSSL_ALL) || defined(WOLFSSL_IP_ALT_NAME))
WOLFSSL_X509 *x509, *ca;
const unsigned char *der;
@@ -38843,7 +38994,7 @@ static int test_wolfSSL_PKCS8_d2i(void)
AssertIntEQ(BIO_get_mem_data(bio, &p), bytes);
AssertIntEQ(XMEMCMP(p, pkcs8_buffer, bytes), 0);
BIO_free(bio);
-#ifndef NO_DES3
+#if !defined(NO_DES3) && !defined(NO_SHA)
AssertNotNull(bio = BIO_new(BIO_s_mem()));
/* Write Encrypted PKCS#8 PEM to BIO. */
bytes = 1834;
@@ -38853,7 +39004,7 @@ static int test_wolfSSL_PKCS8_d2i(void)
(void*)"yassl123"));
EVP_PKEY_free(evpPkey);
BIO_free(bio);
-#endif /* !NO_DES3 */
+#endif /* !NO_DES3 && !NO_SHA */
#endif /* !NO_BIO && !NO_PWDBASED && HAVE_PKCS8 */
EVP_PKEY_free(pkey);
@@ -45346,7 +45497,12 @@ static int test_wolfSSL_EVP_get_digestbynid(void)
#ifndef NO_MD5
AssertNotNull(wolfSSL_EVP_get_digestbynid(NID_md5));
#endif
+#ifndef NO_SHA
AssertNotNull(wolfSSL_EVP_get_digestbynid(NID_sha1));
+#endif
+#ifndef NO_SHA256
+ AssertNotNull(wolfSSL_EVP_get_digestbynid(NID_sha256));
+#endif
AssertNull(wolfSSL_EVP_get_digestbynid(0));
return TEST_RES_CHECK(1);
@@ -48993,7 +49149,11 @@ static int test_wolfssl_PKCS7(void)
pkcs7->privateKey = key;
pkcs7->privateKeySz = (word32)sizeof(key);
pkcs7->encryptOID = RSAk;
+#ifdef NO_SHA
+ pkcs7->hashOID = SHA256h;
+#else
pkcs7->hashOID = SHAh;
+#endif
AssertNotNull(bio = BIO_new(BIO_s_mem()));
AssertIntEQ(i2d_PKCS7_bio(bio, pkcs7), 1);
AssertIntEQ(i2d_PKCS7(pkcs7, &out), 655);
@@ -49304,7 +49464,11 @@ static int test_wolfSSL_PEM_write_bio_PKCS7(void)
pkcs7->privateKey = key;
pkcs7->privateKeySz = (word32)sizeof(key);
pkcs7->encryptOID = RSAk;
+#ifdef NO_SHA
+ pkcs7->hashOID = SHA256h;
+#else
pkcs7->hashOID = SHAh;
+#endif
pkcs7->signedAttribs = NULL;
pkcs7->signedAttribsSz = 0;
@@ -53283,7 +53447,7 @@ static int test_wolfSSL_RSA_print(void)
int res = TEST_SKIPPED;
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA) && !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) && \
- !defined(HAVE_FAST_RSA) && !defined(NO_BIO)
+ !defined(HAVE_FAST_RSA) && !defined(NO_BIO) && defined(XFPRINTF)
BIO *bio;
WOLFSSL_RSA* rsa = NULL;
@@ -55684,7 +55848,7 @@ static int test_ENGINE_cleanup(void)
static int test_wolfSSL_CTX_LoadCRL(void)
{
int res = TEST_SKIPPED;
-#if defined(HAVE_CRL) && !defined(NO_RSA)
+#if defined(HAVE_CRL) && !defined(NO_RSA) && !defined(NO_FILESYSTEM)
WOLFSSL_CTX* ctx = NULL;
WOLFSSL* ssl = NULL;
const char* badPath = "dummypath";
@@ -59041,7 +59205,10 @@ static int test_wolfSSL_DTLS_fragment_buckets(void)
}
#endif
-#if defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12) && \
+
+
+#if !defined(NO_FILESYSTEM) && \
+ defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12) && \
!defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
static int test_wolfSSL_dtls_stateless2(void)
@@ -59221,7 +59388,7 @@ static int _test_wolfSSL_dtls_stateless_resume(byte useticket, byte bad)
wolfSSL_free(ssl_s);
wolfSSL_CTX_free(ctx_c);
wolfSSL_CTX_free(ctx_s);
- return TEST_SUCCESS;
+ return 0;
}
static int test_wolfSSL_dtls_stateless_resume(void)
@@ -59230,18 +59397,18 @@ static int test_wolfSSL_dtls_stateless_resume(void)
#ifdef HAVE_SESSION_TICKET
ret = _test_wolfSSL_dtls_stateless_resume(1, 0);
if (ret != 0)
- return ret;
+ return TEST_RES_CHECK(ret);
ret = _test_wolfSSL_dtls_stateless_resume(1, 1);
if (ret != 0)
- return ret - 100;
+ return TEST_RES_CHECK(ret - 100);
#endif /* HAVE_SESION_TICKET */
ret = _test_wolfSSL_dtls_stateless_resume(0, 0);
if (ret != 0)
- return ret - 200;
+ return TEST_RES_CHECK(ret - 200);
ret = _test_wolfSSL_dtls_stateless_resume(0, 1);
if (ret != 0)
- return ret - 300;
- return TEST_SUCCESS;
+ return TEST_RES_CHECK(ret - 300);
+ return TEST_RES_CHECK(TEST_SUCCESS);
}
#endif /* WOLFSSL_DTLS_NO_HVR_ON_RESUME */
@@ -59594,6 +59761,7 @@ TEST_CASE testCases[] = {
TEST_DECL(test_wolfSSL_CertManagerCheckOCSPResponse),
TEST_DECL(test_wolfSSL_CheckOCSPResponse),
TEST_DECL(test_wolfSSL_CertManagerLoadCABuffer),
+ TEST_DECL(test_wolfSSL_CertManagerLoadCABuffer_ex),
TEST_DECL(test_wolfSSL_CertManagerGetCerts),
TEST_DECL(test_wolfSSL_CertManagerSetVerify),
TEST_DECL(test_wolfSSL_CertManagerNameConstraint),
@@ -60490,7 +60658,8 @@ TEST_CASE testCases[] = {
TEST_DECL(test_wolfSSL_DtlsUpdateWindow),
TEST_DECL(test_wolfSSL_DTLS_fragment_buckets),
#endif
-#if defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12) && \
+#if !defined(NO_FILESYSTEM) && \
+ defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12) && \
!defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
#ifdef WOLFSSL_DTLS_NO_HVR_ON_RESUME
TEST_DECL(test_wolfSSL_dtls_stateless_resume),
@@ -60666,7 +60835,11 @@ void ApiTest(void)
printf(" %s\n", apitest_res_string(ret));
}
fflush(stdout);
- AssertIntNE(ret, TEST_FAIL);
+ /* if return code is < 0 and not skipped then assert error */
+ Assert((ret > 0 || ret == TEST_SKIPPED),
+ ("Test failed\n"),
+ ("ret %d", ret));
+
TestCleanup();
}
diff --git a/tests/hash.c b/tests/hash.c
index ba538cae64..a2ecf58b5e 100644
--- a/tests/hash.c
+++ b/tests/hash.c
@@ -1,6 +1,6 @@
/* hash.c has unit tests
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/tests/include.am b/tests/include.am
index d72f1fcbe3..54c40f6353 100644
--- a/tests/include.am
+++ b/tests/include.am
@@ -16,8 +16,8 @@ tests_unit_test_SOURCES = \
examples/client/client.c \
examples/server/server.c
tests_unit_test_CFLAGS = -DNO_MAIN_DRIVER $(AM_CFLAGS) $(WOLFSENTRY_INCLUDE)
-tests_unit_test_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
-tests_unit_test_DEPENDENCIES = src/libwolfssl.la
+tests_unit_test_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
+tests_unit_test_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += tests/unit.h \
tests/test.conf \
diff --git a/tests/quic.c b/tests/quic.c
index a9c25d9212..0661fda770 100644
--- a/tests/quic.c
+++ b/tests/quic.c
@@ -1,6 +1,6 @@
/* quic.c QUIC unit tests
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/tests/srp.c b/tests/srp.c
index 9eb96ba6f9..fa91237fe3 100644
--- a/tests/srp.c
+++ b/tests/srp.c
@@ -1,6 +1,6 @@
/* srp.c SRP unit tests
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -35,9 +35,6 @@
static byte username[] = "user";
static word32 usernameSz = 4;
-static byte password[] = "password";
-static word32 passwordSz = 8;
-
static byte srp_N[] = {
0xD4, 0xC7, 0xF8, 0xA2, 0xB3, 0x2C, 0x11, 0xB8, 0xFB, 0xA9, 0x58, 0x1E,
0xC4, 0xBA, 0x4F, 0x1B, 0x04, 0x21, 0x56, 0x42, 0xEF, 0x73, 0x55, 0xE3,
@@ -55,6 +52,17 @@ static byte srp_salt[] = {
0x80, 0x66, 0x61, 0x5B, 0x7D, 0x33, 0xA2, 0x2E, 0x79, 0x18
};
+#ifdef NO_SHA
+
+#define SRP_TYPE_TEST_DEFAULT SRP_TYPE_SHA256
+
+#else /* SHA-1 */
+
+#define SRP_TYPE_TEST_DEFAULT SRP_TYPE_SHA
+
+static byte password[] = "password";
+static word32 passwordSz = 8;
+
static byte srp_verifier[] = {
0x24, 0x5F, 0xA5, 0x1B, 0x2A, 0x28, 0xF8, 0xFF, 0xE2, 0xA0, 0xF8, 0x61,
0x7B, 0x0F, 0x3C, 0x05, 0xD6, 0x4A, 0x55, 0xDF, 0x74, 0x31, 0x54, 0x47,
@@ -111,17 +119,21 @@ static byte srp_server_proof[] = {
0xD0, 0xAF, 0xC5, 0xBC, 0xAE, 0x12, 0xFC, 0x75
};
+#endif /* SHA-1 */
+
static void test_SrpInit(void)
{
Srp srp;
/* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(NULL, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
+ AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(NULL, SRP_TYPE_TEST_DEFAULT,
+ SRP_CLIENT_SIDE));
AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(&srp, (SrpType)255, SRP_CLIENT_SIDE));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(&srp, SRP_TYPE_SHA, (SrpSide)255));
+ AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(&srp, SRP_TYPE_TEST_DEFAULT,
+ (SrpSide)255));
/* success */
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
+ AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_TEST_DEFAULT, SRP_CLIENT_SIDE));
wc_SrpTerm(&srp);
}
@@ -130,7 +142,7 @@ static void test_SrpSetUsername(void)
{
Srp srp;
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
+ AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_TEST_DEFAULT, SRP_CLIENT_SIDE));
/* invalid params */
AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetUsername(NULL, username, usernameSz));
@@ -148,7 +160,7 @@ static void test_SrpSetParams(void)
{
Srp srp;
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
+ AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_TEST_DEFAULT, SRP_CLIENT_SIDE));
/* invalid call order */
AssertIntEQ(SRP_CALL_ORDER_E, wc_SrpSetParams(&srp,
@@ -188,6 +200,8 @@ static void test_SrpSetParams(void)
wc_SrpTerm(&srp);
}
+#ifndef NO_SHA
+
static void test_SrpSetPassword(void)
{
Srp srp;
@@ -435,6 +449,8 @@ static void test_SrpGetProofAndVerify(void)
wc_SrpTerm(&srv);
}
+#endif /* !NO_SHA */
+
static int sha512_key_gen(Srp* srp, byte* secret, word32 size)
{
wc_Sha512 hash;
@@ -829,10 +845,12 @@ void SrpTest(void)
test_SrpInit();
test_SrpSetUsername();
test_SrpSetParams();
+#ifndef NO_SHA
test_SrpSetPassword();
test_SrpGetPublic();
test_SrpComputeKey();
test_SrpGetProofAndVerify();
+#endif /* !NO_SHA */
test_SrpKeyGenFunc_cb();
wolfCrypt_Cleanup();
#endif
diff --git a/tests/suites.c b/tests/suites.c
index dca563fe77..42a85769f8 100644
--- a/tests/suites.c
+++ b/tests/suites.c
@@ -1,6 +1,6 @@
/* suites.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/tests/unit.c b/tests/unit.c
index a269c52c95..bfb629cae6 100644
--- a/tests/unit.c
+++ b/tests/unit.c
@@ -1,6 +1,6 @@
/* unit.c API unit tests driver
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/tests/unit.h b/tests/unit.h
index 2b716f9c21..24e439771c 100644
--- a/tests/unit.h
+++ b/tests/unit.h
@@ -1,6 +1,6 @@
/* unit.c API unit tests driver
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/tests/w64wrapper.c b/tests/w64wrapper.c
index 6069160263..ec8c63a16f 100644
--- a/tests/w64wrapper.c
+++ b/tests/w64wrapper.c
@@ -1,6 +1,6 @@
/* w64wrapper.c w64wrapper unit tests
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/testsuite/include.am b/testsuite/include.am
index e8788bb121..7b7cddd032 100644
--- a/testsuite/include.am
+++ b/testsuite/include.am
@@ -14,8 +14,8 @@ testsuite_testsuite_test_SOURCES = \
examples/server/server.c \
testsuite/testsuite.c
testsuite_testsuite_test_CFLAGS = -DNO_MAIN_DRIVER $(AM_CFLAGS) $(WOLFSENTRY_INCLUDE)
-testsuite_testsuite_test_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
-testsuite_testsuite_test_DEPENDENCIES = src/libwolfssl.la
+testsuite_testsuite_test_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD) $(WOLFSENTRY_LIB)
+testsuite_testsuite_test_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += testsuite/testsuite.sln
EXTRA_DIST += testsuite/testsuite.vcproj
diff --git a/testsuite/testsuite.c b/testsuite/testsuite.c
index 09de70b55c..1b6df1b168 100644
--- a/testsuite/testsuite.c
+++ b/testsuite/testsuite.c
@@ -1,6 +1,6 @@
/* testsuite.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/testsuite/testsuite.vcxproj b/testsuite/testsuite.vcxproj
index 6198565ee1..be575c72fd 100644
--- a/testsuite/testsuite.vcxproj
+++ b/testsuite/testsuite.vcxproj
@@ -42,46 +42,46 @@
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
true
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
Application
- v110
+ v143
Unicode
@@ -338,4 +338,4 @@
-
+
\ No newline at end of file
diff --git a/wolfcrypt/benchmark/README.md b/wolfcrypt/benchmark/README.md
index ecd75d4d55..34f12f9491 100644
--- a/wolfcrypt/benchmark/README.md
+++ b/wolfcrypt/benchmark/README.md
@@ -7,6 +7,19 @@ Tool for performing cryptographic algorithm benchmarking.
* Symmetric algorithms like AES and ChaCha20 are measured in Killobytes (KB) or Megabytes (MB) per second.
* Asymmetric algorithms like RSA and ECC are measured using Operations Per Second (Ops) per second.
+## Compile Options
+
+Compile with the following options for fixed units. Otherwise the units will auto-scale. See `-base10` parameter option, below.
+
+`-DWOLFSSL_BENCHMARK_FIXED_UNITS_GB` for GB/GiB
+`-DWOLFSSL_BENCHMARK_FIXED_UNITS_MB` for MB/MiB
+`-DWOLFSSL_BENCHMARK_FIXED_UNITS_KB` for KB/KiB
+`-DWOLFSSL_BENCHMARK_FIXED_UNITS_B` for Bytes
+
+To set the output to always be CSV:
+
+`-DWOLFSSL_BENCHMARK_FIXED_CSV`
+
## Usage
```sh
diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c
index 87aa743f5f..792530dbd2 100644
--- a/wolfcrypt/benchmark/benchmark.c
+++ b/wolfcrypt/benchmark/benchmark.c
@@ -1,6 +1,6 @@
/* benchmark.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -27,15 +27,48 @@
#include
#endif
+/* Some common, optional user settings */
+/* these can also be set in wolfssl/options.h or user_settings.h */
+/* ------------------------------------------------------------- */
+/* make the binary always use CSV format: */
+/* #define WOLFSSL_BENCHMARK_FIXED_CSV */
+/* */
+/* choose to use the same units, regardless of scale. pick 1: */
+/* #define WOLFSSL_BENCHMARK_FIXED_UNITS_GB */
+/* #define WOLFSSL_BENCHMARK_FIXED_UNITS_MB */
+/* #define WOLFSSL_BENCHMARK_FIXED_UNITS_KB */
+/* #define WOLFSSL_BENCHMARK_FIXED_UNITS_B */
+/* */
+/* when the output should be in machine-parseable format: */
+/* #define GENERATE_MACHINE_PARSEABLE_REPORT */
+/* */
+
+/* define the max length for each string of metric reported */
+#define __BENCHMARK_MAXIMUM_LINE_LENGTH 150
+
+/* some internal helpers to get values of settings */
+/* this first one gets the text name of the #define parameter */
+#define __BENCHMARK_VALUE_TO_STRING(x) #x
+
+/* this next one gets the text value of the assigned value of #define param */
+#define __BENCHMARK_VALUE(x) __BENCHMARK_VALUE_TO_STRING(x)
+
+#define WOLFSSL_FIXED_UNITS_PER_SEC "MB/s" /* may be re-set by fixed units */
+
#ifndef WOLFSSL_USER_SETTINGS
#include
#endif
-#include
+#include /* also picks up user_settings.h */
#include
#include
#include
#include
+#ifdef WOLFSSL_ESPIDF
+ #include /* reminder Espressif RISC-V not yet implemented */
+ #include
+#endif
+
#ifdef HAVE_PTHREAD
#include
#endif
@@ -72,11 +105,11 @@
#endif
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
-static const char info_prefix[] = "###, ";
-static const char err_prefix[] = "!!!, ";
+ static const char info_prefix[] = "###, ";
+ static const char err_prefix[] = "!!!, ";
#else
-static const char info_prefix[] = "";
-static const char err_prefix[] = "";
+ static const char info_prefix[] = "";
+ static const char err_prefix[] = "";
#endif
@@ -109,7 +142,7 @@ static const char err_prefix[] = "";
static int printfk(const char *fmt, ...)
{
int ret;
- char line[150];
+ char line[__BENCHMARK_MAXIMUM_LINE_LENGTH];
va_list ap;
va_start(ap, fmt);
@@ -153,9 +186,9 @@ static const char err_prefix[] = "";
#include
#define printf(...) \
- __android_log_print(ANDROID_LOG_DEBUG, "[WOLFCRYPT]", __VA_ARGS__)
+ __android_log_print(ANDROID_LOG_DEBUG, "[WOLFCRYPT]", __VA_ARGS__)
#define fprintf(fp, ...) \
- __android_log_print(ANDROID_LOG_DEBUG, "[WOLFCRYPT]", __VA_ARGS__)
+ __android_log_print(ANDROID_LOG_DEBUG, "[WOLFCRYPT]", __VA_ARGS__)
#else
#if defined(XMALLOC_USER) || defined(FREESCALE_MQX)
@@ -225,6 +258,9 @@ static const char err_prefix[] = "";
#ifdef WOLFSSL_WC_KYBER
#include
#endif
+#if defined(HAVE_LIBOQS) || defined(HAVE_PQM4)
+ #include
+#endif
#endif
#ifdef WOLFCRYPT_HAVE_ECCSI
#include
@@ -232,11 +268,6 @@ static const char err_prefix[] = "";
#ifdef WOLFCRYPT_HAVE_SAKKE
#include
#endif
-#ifdef HAVE_LIBOQS
- #include
- #include
- #include
-#endif
#if defined(HAVE_PQC)
#if defined(HAVE_FALCON)
@@ -250,16 +281,6 @@ static const char err_prefix[] = "";
#endif
#endif
-#ifdef HAVE_PQM4
- #include
- #define PQM4_PUBLIC_KEY_LENGTH CRYPTO_PUBLICKEYBYTES
- #define PQM4_PRIVATE_KEY_LENGTH CRYPTO_SECRETKEYBYTES
- #define PQM4_SHARED_SECRET_LENGTH CRYPTO_BYTES
- #define PQM4_CIPHERTEXT_LENGTH CRYPTO_CIPHERTEXTBYTES
- typedef char OQS_KEM;
- #include
-#endif
-
#include
#include
#include
@@ -441,18 +462,9 @@ static const char err_prefix[] = "";
/* Post-Quantum Asymmetric algorithms. */
#define BENCH_FALCON_LEVEL1_SIGN 0x00000001
#define BENCH_FALCON_LEVEL5_SIGN 0x00000002
-#define BENCH_KYBER_LEVEL1_KEYGEN 0x00000004
-#define BENCH_KYBER_LEVEL1_ENCAP 0x00000008
-#define BENCH_KYBER_LEVEL3_KEYGEN 0x00000010
-#define BENCH_KYBER_LEVEL3_ENCAP 0x00000020
-#define BENCH_KYBER_LEVEL5_KEYGEN 0x00000040
-#define BENCH_KYBER_LEVEL5_ENCAP 0x00000080
#define BENCH_DILITHIUM_LEVEL2_SIGN 0x04000000
#define BENCH_DILITHIUM_LEVEL3_SIGN 0x08000000
#define BENCH_DILITHIUM_LEVEL5_SIGN 0x10000000
-#define BENCH_DILITHIUM_AES_LEVEL2_SIGN 0x20000000
-#define BENCH_DILITHIUM_AES_LEVEL3_SIGN 0x40000000
-#define BENCH_DILITHIUM_AES_LEVEL5_SIGN 0x80000000
/* Post-Quantum Asymmetric algorithms. (Part 2) */
#define BENCH_SPHINCS_FAST_LEVEL1_SIGN 0x00000001
@@ -735,7 +747,7 @@ static const bench_alg bench_other_opt[] = {
#endif /* !WOLFSSL_BENCHMARK_ALL && !NO_MAIN_DRIVER */
-#if defined(HAVE_PQC) && (defined(HAVE_LIBOQS) || defined(HAVE_PQM4))
+#if defined(HAVE_PQC) && defined(HAVE_LIBOQS)
/* The post-quantum-specific mapping of command line option to bit values and
* OQS name. */
typedef struct bench_pq_alg {
@@ -750,10 +762,6 @@ typedef struct bench_pq_alg {
* options. */
static const bench_pq_alg bench_pq_asym_opt[] = {
{ "-pq", 0xffffffff, NULL},
-#ifdef HAVE_PQM4
- { "-kyber_level1-kg", BENCH_KYBER_LEVEL1_KEYGEN, NULL },
- { "-kyber_level1-ed", BENCH_KYBER_LEVEL1_ENCAP, NULL },
-#endif
#ifdef HAVE_LIBOQS
{ "-falcon_level1", BENCH_FALCON_LEVEL1_SIGN,
OQS_SIG_alg_falcon_512 },
@@ -765,24 +773,6 @@ static const bench_pq_alg bench_pq_asym_opt[] = {
OQS_SIG_alg_dilithium_3 },
{ "-dilithium_level5", BENCH_DILITHIUM_LEVEL5_SIGN,
OQS_SIG_alg_dilithium_5 },
- { "-dilithium_aes_level2", BENCH_DILITHIUM_AES_LEVEL2_SIGN,
- OQS_SIG_alg_dilithium_2_aes },
- { "-dilithium_aes_level3", BENCH_DILITHIUM_AES_LEVEL3_SIGN,
- OQS_SIG_alg_dilithium_3_aes },
- { "-dilithium_aes_level5", BENCH_DILITHIUM_AES_LEVEL5_SIGN,
- OQS_SIG_alg_dilithium_5_aes },
- { "-kyber_level1-kg", BENCH_KYBER_LEVEL1_KEYGEN,
- OQS_KEM_alg_kyber_512 },
- { "-kyber_level1-ed", BENCH_KYBER_LEVEL1_ENCAP,
- OQS_KEM_alg_kyber_512 },
- { "-kyber_level3-kg", BENCH_KYBER_LEVEL3_KEYGEN,
- OQS_KEM_alg_kyber_768 },
- { "-kyber_level3-ed", BENCH_KYBER_LEVEL3_ENCAP,
- OQS_KEM_alg_kyber_768 },
- { "-kyber_level5-kg", BENCH_KYBER_LEVEL5_KEYGEN,
- OQS_KEM_alg_kyber_1024 },
- { "-kyber_level5-ed", BENCH_KYBER_LEVEL5_ENCAP,
- OQS_KEM_alg_kyber_1024 },
#endif /* HAVE_LIBOQS */
{ NULL, 0, NULL }
};
@@ -968,8 +958,92 @@ static const char* bench_desc_words[][15] = {
#define SHOW_INTEL_CYCLES_CSV(b, n, s) \
(void)XSNPRINTF(b + XSTRLEN(b), n - XSTRLEN(b), "%.6f,\n", \
(float)total_cycles / (count*s))
+#elif defined(WOLFSSL_ESPIDF)
+ static THREAD_LS_T word64 begin_cycles;
+ static THREAD_LS_T word64 total_cycles;
+
+ /* the return value */
+ static THREAD_LS_T word64 _xthal_get_ccount_ex = 0;
+
+ /* the last value seen, adjusted for an overflow */
+ static THREAD_LS_T word64 _xthal_get_ccount_last = 0;
+
+ /* TAG for ESP_LOGx() */
+ static char * TAG = "wolfssl_benchmark";
+
+ #define HAVE_GET_CYCLES
+ #define INIT_CYCLE_COUNTER
+ static WC_INLINE word64 get_xtensa_cycles(void);
+
+ /* WARNING the hal UINT xthal_get_ccount() quietly rolls over. */
+ #define BEGIN_ESP_CYCLES begin_cycles = (get_xtensa_cycles());
+
+ /* since it rolls over, we have something that will tolerate one */
+ #define END_ESP_CYCLES \
+ ESP_LOGV(TAG,"%llu - %llu", \
+ get_xtensa_cycles(), \
+ begin_cycles \
+ ); \
+ total_cycles = (get_xtensa_cycles() - begin_cycles);
+
+ #define SHOW_ESP_CYCLES(b, n, s) \
+ (void)XSNPRINTF(b + XSTRLEN(b), n - XSTRLEN(b), " %s = %6.2f\n", \
+ bench_result_words1[lng_index][2], \
+ (float)total_cycles / (count*s) \
+ )
+
+ #define SHOW_ESP_CYCLES_CSV(b, n, s) \
+ (void)XSNPRINTF(b + XSTRLEN(b), n - XSTRLEN(b), "%.6f,\n", \
+ (float)total_cycles / (count*s))
+
+ /* xthal_get_ccount_ex() is a single-overflow-tolerant extension to
+ ** the Espressif `unsigned xthal_get_ccount()` which is known to overflow
+ ** at least once during full benchmark tests.
+ */
+ word64 xthal_get_ccount_ex()
+ {
+ /* reminder: unsigned long long max = 18,446,744,073,709,551,615 */
+
+ /* the currently observed clock counter value */
+ word64 thisVal = xthal_get_ccount();
+
+ /* if the current value is less than the previous value,
+ ** we likely overflowed at least once.
+ */
+ if (thisVal < _xthal_get_ccount_last)
+ {
+ /* Warning: we assume the return type of xthal_get_ccount()
+ ** will always be unsigned int to add UINT_MAX.
+ **
+ ** NOTE for long duration between calls with multiple overflows:
+ **
+ ** WILL NOT BE DETECTED - the return value will be INCORRECT.
+ **
+ ** At this time no single test overflows. This is currently only a
+ ** concern for cumulative counts over multiple tests. As long
+ ** as well call xthal_get_ccount_ex() with no more than one
+ ** overflow CPU tick count, all will be well.
+ */
+ ESP_LOGV(TAG, "Alert: Detected xthal_get_ccount overflow, "
+ "adding %ull", UINT_MAX);
+ thisVal += (word64)UINT_MAX;
+ }
+
+ /* adjust our actual returned value that takes into account overflow */
+ _xthal_get_ccount_ex += (thisVal - _xthal_get_ccount_last);
+
+ /* all of this took some time, so reset the "last seen" value */
+ _xthal_get_ccount_last = xthal_get_ccount();
+
+ return _xthal_get_ccount_ex;
+ }
+
+/* implement other architecture cycle counters here */
#else
+ /* if we don't know the platform, it is unlikely we can count CPU cycles */
+ #undef HAVE_GET_CYCLES
+
#define INIT_CYCLE_COUNTER
#define BEGIN_INTEL_CYCLES
#define END_INTEL_CYCLES
@@ -1049,9 +1123,9 @@ static const char* bench_desc_words[][15] = {
defined(HAVE_CURVE448) || defined(HAVE_ED448) || \
defined(WOLFSSL_HAVE_KYBER)
static const char* bench_result_words2[][5] = {
- { "ops took", "sec" , "avg" , "ops/sec", NULL }, /* 0 English */
+ { "ops took", "sec" , "avg" , "ops/sec", NULL }, /* 0 English */
#ifndef NO_MULTIBYTE_PRINT
- { "回処理を", "秒で実施", "平均", "処理/秒", NULL }, /* 1 Japanese */
+ { "回処理を", "秒で実施", "平均", "処理/秒", NULL }, /* 1 Japanese */
#endif
};
#endif
@@ -1219,7 +1293,7 @@ static const char* bench_result_words2[][5] = {
/* maximum runtime for each benchmark */
#ifndef BENCH_MIN_RUNTIME_SEC
- #define BENCH_MIN_RUNTIME_SEC 1.0f
+ #define BENCH_MIN_RUNTIME_SEC 1.0F
#endif
#if defined(HAVE_AESGCM) || defined(HAVE_AESCCM)
@@ -1249,10 +1323,12 @@ static const char* bench_result_words2[][5] = {
if (options & AAD_SIZE_DEFAULT) {
aesAuthAddSz = AES_AUTH_ADD_SZ;
options &= ~AAD_SIZE_DEFAULT;
- } else if (options & AAD_SIZE_ZERO) {
+ }
+ else if (options & AAD_SIZE_ZERO) {
aesAuthAddSz = 0;
options &= ~AAD_SIZE_ZERO;
- } else if (options & AAD_SIZE_CUSTOM) {
+ }
+ else if (options & AAD_SIZE_CUSTOM) {
aesAuthAddSz = aes_aad_size;
options &= ~AAD_SIZE_CUSTOM;
}
@@ -1261,6 +1337,7 @@ static const char* bench_result_words2[][5] = {
}
}
#endif
+
#ifndef BENCH_CIPHER_ADD
#define BENCH_CIPHER_ADD 0
#endif
@@ -1288,30 +1365,33 @@ static const char* bench_result_words2[][5] = {
#define NUM_BLOCKS 5
#define BENCH_SIZE (1024*1024uL)
#endif
+
static int numBlocks = NUM_BLOCKS;
static word32 bench_size = BENCH_SIZE;
static int base2 = 1;
static int digest_stream = 1;
+
#ifndef NO_RSA
-/* Don't measure RSA sign/verify by default */
-static int rsa_sign_verify = 0;
+ /* Don't measure RSA sign/verify by default */
+ static int rsa_sign_verify = 0;
#endif
+
#ifndef NO_DH
-/* Use the FFDHE parameters */
-static int use_ffdhe = 0;
+ /* Use the FFDHE parameters */
+ static int use_ffdhe = 0;
#endif
/* Don't print out in CSV format by default */
static int csv_format = 0;
#ifdef WOLFSSL_XILINX_CRYPT_VERSAL
-/* Versal PLM maybe prints an error message to the same console.
- * In order to not mix those outputs up, sleep a little while
- * before erroring out.
- */
-#define SLEEP_ON_ERROR(ret) do{ if (ret != 0) { sleep(1); } }while(0)
+ /* Versal PLM maybe prints an error message to the same console.
+ * In order to not mix those outputs up, sleep a little while
+ * before erroring out.
+ */
+ #define SLEEP_ON_ERROR(ret) do{ if (ret != 0) { sleep(1); } }while(0)
#else
-#define SLEEP_ON_ERROR(ret) do{ /* noop */ }while(0)
+ #define SLEEP_ON_ERROR(ret) do{ /* noop */ }while(0)
#endif
/* globals for cipher tests */
@@ -1382,9 +1462,9 @@ static void benchmark_static_init(int force)
-/******************************************************************************/
-/* Begin Stats Functions */
-/******************************************************************************/
+/*****************************************************************************/
+/* Begin Stats Functions */
+/*****************************************************************************/
typedef enum bench_stat_type {
BENCH_STAT_ASYM,
BENCH_STAT_SYM,
@@ -1569,7 +1649,15 @@ static WC_INLINE void bench_stats_start(int* count, double* start)
{
*count = 0;
*start = current_time(1);
+
+#ifdef WOLFSSL_ESPIDF
+ ESP_LOGV(TAG, "finish total_cycles = %llu, start=%f",
+ total_cycles, *start );
+
+ BEGIN_ESP_CYCLES
+#else
BEGIN_INTEL_CYCLES
+#endif
}
static WC_INLINE int bench_stats_check(double start)
@@ -1577,21 +1665,130 @@ static WC_INLINE int bench_stats_check(double start)
return ((current_time(0) - start) < BENCH_MIN_RUNTIME_SEC);
}
+/* return text for units and scale the value of blocks as needed for base2 */
+static WC_INLINE const char* specified_base2_blockType(double * blocks)
+{
+ const char* rt;
+
+#if ( defined(WOLFSSL_BENCHMARK_FIXED_UNITS_G) \
+ || defined(WOLFSSL_BENCHMARK_FIXED_UNITS_GB) )
+ #undef WOLFSSL_FIXED_UNITS_PER_SEC
+ #define WOLFSSL_FIXED_UNITS_PER_SEC "GB/s"
+ *blocks /= (1000UL * 1000UL * 1000UL);
+ rt = "GiB";
+
+#elif ( defined(WOLFSSL_BENCHMARK_FIXED_UNITS_M) \
+ || defined(WOLFSSL_BENCHMARK_FIXED_UNITS_MB) )
+ #undef WOLFSSL_FIXED_UNITS_PER_SEC
+ #define WOLFSSL_FIXED_UNITS_PER_SEC "MB/s"
+ *blocks /= (1024UL * 1024UL);
+ rt = "MiB";
+
+#elif ( defined (WOLFSSL_BENCHMARK_FIXED_UNITS_K) \
+ || defined (WOLFSSL_BENCHMARK_FIXED_UNITS_KB))
+ #undef WOLFSSL_FIXED_UNITS_PER_SEC
+ #define WOLFSSL_FIXED_UNITS_PER_SEC "KB/s"
+ *blocks /= 1024;
+ rt = "KiB";
+
+#elif ( defined (WOLFSSL_BENCHMARK_FIXED_UNITS_B) )
+ #undef WOLFSSL_FIXED_UNITS_PER_SEC
+ #define WOLFSSL_FIXED_UNITS_PER_SEC "bytes/s"
+ (void)(*blocks); /* no adjustment, just appease compiler for not used */
+ rt = "bytes";
+
+#else
+
+ /* if no user-specified, auto-scale each metric (results vary)
+ **
+ ** determine if we should show as KB or MB or bytes. No GiB here.
+ */
+ if (*blocks > (1024UL * 1024UL)) {
+ *blocks /= (1024UL * 1024UL);
+ rt = "MiB";
+ }
+ else if (*blocks > 1024) {
+ *blocks /= 1024;
+ rt = "KiB";
+ }
+ else {
+ rt = "bytes";
+ }
+
+#endif
+
+ return rt;
+} /* specified_base2_blockType() */
+
+/* return text for units and scale the value of blocks as needed */
+static WC_INLINE const char* specified_blockType(double * blocks)
+{
+ const char* rt;
+
+#if ( defined(WOLFSSL_BENCHMARK_FIXED_UNITS_G) \
+ || defined(WOLFSSL_BENCHMARK_FIXED_UNITS_GB) )
+ *blocks /= (1000UL * 1000UL * 1000UL);
+ rt = "GB";
+
+#elif ( defined(WOLFSSL_BENCHMARK_FIXED_UNITS_M) \
+ || defined(WOLFSSL_BENCHMARK_FIXED_UNITS_MB) )
+ *blocks /= (1000UL * 1000UL);
+ rt = "MB";
+
+#elif ( defined (WOLFSSL_BENCHMARK_FIXED_UNITS_K) \
+ || defined (WOLFSSL_BENCHMARK_FIXED_UNITS_KB) )
+ *blocks /= (1000UL);
+ rt = "KB";
+
+#elif ( defined (WOLFSSL_BENCHMARK_FIXED_UNITS_B) )
+ (void)(*blocks); /* no adjustment, just appease compiler */
+ rt = "bytes";
+
+#else
+ /* if not user-specified, auto-scale each metric (results vary)
+ **
+ ** determine if we should show as KB or MB or bytes
+ */
+ if (*blocks > (1000UL * 1000UL)) {
+ *blocks /= (1000UL * 1000UL);
+ rt = "MB";
+ }
+ else if (*blocks > 1000) {
+ *blocks /= 1000; /* make KB */
+ rt = "KB";
+ }
+ else {
+ rt = "bytes";
+ } /* rt auto-assigned */
+#endif /* WOLFSSL_BENCHMARK UNITS */
+
+ return rt;
+} /* specified_blockType */
/* countSz is number of bytes that 1 count represents. Normally bench_size,
* except for AES direct that operates on AES_BLOCK_SIZE blocks */
-static void bench_stats_sym_finish(const char* desc, int useDeviceID, int count,
- int countSz, double start, int ret)
+static void bench_stats_sym_finish(const char* desc, int useDeviceID,
+ int count, int countSz,
+ double start, int ret)
{
double total, persec = 0, blocks = (double)count;
const char* blockType;
- char msg[128] = {0};
+ char msg[__BENCHMARK_MAXIMUM_LINE_LENGTH] = {0};
const char** word = bench_result_words1[lng_index];
static int sym_header_printed = 0;
+#ifdef WOLFSSL_ESPIDF
+ END_ESP_CYCLES
+#else
END_INTEL_CYCLES
+#endif
+
total = current_time(0) - start;
+#ifdef WOLFSSL_ESPIDF
+ ESP_LOGV(TAG, "%s total_cycles = %llu", desc, total_cycles);
+#endif
+
#ifdef LINUX_RUSAGE_UTIME
check_for_excessive_stime(desc, "");
#endif
@@ -1601,45 +1798,41 @@ static void bench_stats_sym_finish(const char* desc, int useDeviceID, int count,
if (csv_format == 1) {
/* only print out header once */
if (sym_header_printed == 0) {
+
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
+ /* machine parseable CSV */
+ #ifdef HAVE_GET_CYCLES
printf("%s", "\"sym\",Algorithm,HW/SW,bytes_total,seconds_total,"
- "MB/s,cycles_total,Cycles per byte,\n");
+ WOLFSSL_FIXED_UNITS_PER_SEC ",cycles_total,Cycles per byte,\n");
+ #else
+ printf("%s", "\"sym\",Algorithm,HW/SW,bytes_total,seconds_total,"
+ WOLFSSL_FIXED_UNITS_PER_SEC ",cycles_total,\n");
+ #endif
#else
+ /* normal CSV */
+ #ifdef HAVE_GET_CYCLES
printf("\n\nSymmetric Ciphers:\n\n");
- printf("Algorithm,MB/s,Cycles per byte,\n");
+ printf("Algorithm,"
+ WOLFSSL_FIXED_UNITS_PER_SEC ",Cycles per byte,\n");
+ #else
+ printf("\n\nSymmetric Ciphers:\n\n");
+ printf("Algorithm,"
+ WOLFSSL_FIXED_UNITS_PER_SEC ", \n");
+ #endif
#endif
sym_header_printed = 1;
}
}
+ /* determine if we have fixed units, or auto-scale bits or bytes for units.
+ ** note that the blockType text is assigned AND the blocks param is scaled.
+ */
if (base2) {
- /* determine if we should show as KiB or MiB */
- if (blocks > (1024UL * 1024UL)) {
- blocks /= (1024UL * 1024UL);
- blockType = "MiB";
- }
- else if (blocks > 1024) {
- blocks /= 1024;
- blockType = "KiB";
- }
- else {
- blockType = "bytes";
- }
- }
+ blockType = specified_base2_blockType(&blocks);
+ } /* is base2 bit counter */
else {
- /* determine if we should show as KB or MB */
- if (blocks > (1000UL * 1000UL)) {
- blocks /= (1000UL * 1000UL);
- blockType = "MB";
- }
- else if (blocks > 1000) {
- blocks /= 1000; /* make KB */
- blockType = "KB";
- }
- else {
- blockType = "bytes";
- }
- }
+ blockType = specified_blockType(&blocks);
+ } /* not base2, is byte counter */
/* calculate blocks per second */
if (total > 0) {
@@ -1649,44 +1842,85 @@ static void bench_stats_sym_finish(const char* desc, int useDeviceID, int count,
SLEEP_ON_ERROR(ret);
/* format and print to terminal */
if (csv_format == 1) {
+
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- word64 bytes_processed;
- if (blockType[0] == 'K')
- bytes_processed = (word64)(blocks * (base2 ? 1024. : 1000.));
- else if (blockType[0] == 'M')
- bytes_processed =
- (word64)(blocks * (base2 ? (1024. * 1024.) : (1000. * 1000.)));
- else
- bytes_processed = (word64)blocks;
-#endif
- if (blockType[0] == 'K')
- persec /= base2 ? 1024. : 1000.;
- else if (blockType[0] == 'b')
- persec /= base2 ? (1024. * 1024.) : (1000. * 1000.);
-#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- /* note this codepath brings in all the fields from the non-CSV case. */
- (void)XSNPRINTF(msg, sizeof(msg), "sym,%s,%s,%lu,%f,%f,%lu,", desc,
- BENCH_DEVID_GET_NAME(useDeviceID),
- bytes_processed, total, persec, total_cycles);
+ #ifdef WOLFSSL_ESPIDF
+ unsigned long bytes_processed =
+ (unsigned long)count * (unsigned long)countSz;
+ #else
+ word64 bytes_processed = (word64)count * (word64)countSz;
+ #endif
+
+ /* note this codepath brings in all the fields from the non-CSV case. */
+ #ifdef WOLFSSL_ESPIDF
+ #ifdef HAVE_GET_CYCLES
+ (void)XSNPRINTF(msg, sizeof(msg), "sym,%s,%s,%lu,%f,%f,%lu,", desc,
+ BENCH_DEVID_GET_NAME(useDeviceID),
+ bytes_processed, total, persec,
+ (long unsigned int) total_cycles);
+ #else
+ #warning "HAVE_GET_CYCLES should be defined for WOLFSSL_ESPIDF"
+ #endif
+
+ /* implement other architectures here */
+
+ #else
+ #ifdef HAVE_GET_CYCLES
+ (void)XSNPRINTF(msg, sizeof(msg), "sym,%s,%s,%lu,%f,%f,%lu,", desc,
+ BENCH_DEVID_GET_NAME(useDeviceID),
+ bytes_processed, total, persec, total_cycles);
+ #else
+ (void)XSNPRINTF(msg, sizeof(msg), "sym,%s,%s,%lu,%f,%f,", desc,
+ BENCH_ASYNC_GET_NAME(useDeviceID),
+ bytes_processed, total, persec);
+ #endif
+ #endif
#else
(void)XSNPRINTF(msg, sizeof(msg), "%s,%f,", desc, persec);
#endif
+
+ #ifdef WOLFSSL_ESPIDF
+ SHOW_ESP_CYCLES_CSV(msg, sizeof(msg), countSz);
+ ESP_LOGV(TAG, "finish total_cycles = %llu", total_cycles);
+ /* implement other cycle counters here */
+ #else
SHOW_INTEL_CYCLES_CSV(msg, sizeof(msg), countSz);
- } else {
+ #endif
+ } /* if (csv_format == 1) */
+
+ else {
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
+ #ifdef HAVE_GET_CYCLES
+ (void)XSNPRINTF(msg, sizeof(msg),
+ "%-24s%s %5.0f %s %s %5.3f %s, %8.3f %s/s"
+ ", %lu cycles,",
+ desc, BENCH_DEVID_GET_NAME(useDeviceID), blocks, blockType,
+ word[0], total, word[1], persec, blockType,
+ (unsigned long) total_cycles);
+ #else
(void)XSNPRINTF(msg, sizeof(msg),
"%-24s%s %5.0f %s %s %5.3f %s, %8.3f %s/s"
- ", %lu cycles,",
- desc, BENCH_DEVID_GET_NAME(useDeviceID), blocks, blockType,
- word[0], total, word[1], persec, blockType, total_cycles);
+ ",",
+ desc, BENCH_ASYNC_GET_NAME(useDeviceID), blocks, blockType,
+ word[0], total, word[1], persec, blockType);
+ #endif /* HAVE_GET_CYCLES */
#else
(void)XSNPRINTF(msg, sizeof(msg),
"%-24s%s %5.0f %s %s %5.3f %s, %8.3f %s/s",
desc, BENCH_DEVID_GET_NAME(useDeviceID), blocks, blockType,
word[0], total, word[1], persec, blockType);
#endif
+
+#ifdef WOLFSSL_ESPIDF
+ SHOW_ESP_CYCLES(msg, sizeof(msg), countSz);
+
+/* implement other architecture cycle counters here */
+
+#else
SHOW_INTEL_CYCLES(msg, sizeof(msg), countSz);
- }
+#endif
+ } /* not CSV format */
+
printf("%s", msg);
/* show errors */
@@ -1706,7 +1940,7 @@ static void bench_stats_sym_finish(const char* desc, int useDeviceID, int count,
(void)ret;
TEST_SLEEP();
-}
+} /* bench_stats_sym_finish */
#ifdef BENCH_ASYM
#if defined(HAVE_ECC) || !defined(NO_RSA) || !defined(NO_DH) || \
@@ -1730,12 +1964,29 @@ static void bench_stats_asym_finish_ex(const char* algo, int strength,
#endif
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- END_INTEL_CYCLES
+ #ifdef WOLFSSL_ESPIDF
+ END_ESP_CYCLES
+ #else
+ END_INTEL_CYCLES
+ #endif
#endif
- if (count > 0)
+ /* some sanity checks on the final numbers */
+ if (count > 0) {
each = total / count; /* per second */
- opsSec = count / total; /* ops second */
+ }
+ else {
+ count = 0;
+ each = 0;
+ }
+
+ if (total > 0) {
+ opsSec = count / total; /* ops second */
+ }
+ else {
+ opsSec = 0;
+ }
+
milliEach = each * 1000; /* milliseconds */
SLEEP_ON_ERROR(ret);
@@ -1744,8 +1995,13 @@ static void bench_stats_asym_finish_ex(const char* algo, int strength,
/* only print out header once */
if (asym_header_printed == 0) {
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
+ #ifdef HAVE_GET_CYCLES
printf("%s", "\"asym\",Algorithm,key size,operation,avg ms,ops/sec,"
"ops,secs,cycles,cycles/op\n");
+ #else
+ printf("%s", "\"asym\",Algorithm,key size,operation,avg ms,ops/sec,"
+ "ops,secs\n");
+ #endif
#else
printf("\n%sAsymmetric Ciphers:\n\n", info_prefix);
printf("%sAlgorithm,key size,operation,avg ms,ops/sec,\n",
@@ -1754,23 +2010,41 @@ static void bench_stats_asym_finish_ex(const char* algo, int strength,
asym_header_printed = 1;
}
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
+ #ifdef HAVE_GET_CYCLES
(void)XSNPRINTF(msg, sizeof(msg),
"asym,%s,%d,%s%s,%.3f,%.3f,%d,%f,%lu,%.6f\n",
algo, strength, desc, desc_extra, milliEach, opsSec,
- count, total, total_cycles,
+ count, total, (unsigned long) total_cycles,
(double)total_cycles / (double)count);
+ #else
+ (void)XSNPRINTF(msg, sizeof(msg),
+ "asym,%s,%d,%s%s,%.3f,%.3f,%d,%f\n",
+ algo, strength, desc, desc_extra, milliEach, opsSec,
+ count, total);
+ #endif
#else
(void)XSNPRINTF(msg, sizeof(msg), "%s,%d,%s%s,%.3f,%.3f,\n", algo,
strength, desc, desc_extra, milliEach, opsSec);
#endif
- } else {
+ } /* if (csv_format == 1) */
+
+ else {
#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
+ #ifdef HAVE_GET_CYCLES
(void)XSNPRINTF(msg, sizeof(msg),
"%-6s %5d %8s%-2s %s %6d %s %5.3f %s, %s %5.3f ms,"
" %.3f %s, %lu cycles\n", algo, strength, desc,
desc_extra, BENCH_DEVID_GET_NAME(useDeviceID),
count, word[0], total, word[1], word[2], milliEach,
- opsSec, word[3], total_cycles);
+ opsSec, word[3], (unsigned long) total_cycles);
+ #else
+ (void)XSNPRINTF(msg, sizeof(msg),
+ "%-6s %5d %8s%-2s %s %6d %s %5.3f %s, %s %5.3f ms,"
+ " %.3f %s\n", algo, strength, desc,
+ desc_extra, BENCH_ASYNC_GET_NAME(useDeviceID),
+ count, word[0], total, word[1], word[2], milliEach,
+ opsSec, word[3]);
+ #endif /* HAVE_GET_CYCLES */
#else
(void)XSNPRINTF(msg, sizeof(msg),
"%-6s %5d %8s%-2s %s %6d %s %5.3f %s, %s %5.3f ms,"
@@ -1799,7 +2073,7 @@ static void bench_stats_asym_finish_ex(const char* algo, int strength,
(void)ret;
TEST_SLEEP();
-}
+} /* bench_stats_asym_finish_ex */
static void bench_stats_asym_finish(const char* algo, int strength,
const char* desc, int useDeviceID, int count, double start, int ret)
@@ -1808,84 +2082,6 @@ static void bench_stats_asym_finish(const char* algo, int strength,
start, ret);
}
#endif
-
-#if defined(HAVE_PQC) && (defined(HAVE_LIBOQS) || defined(HAVE_PQM4))
-static void bench_stats_pq_asym_finish(const char* algo, int useDeviceID, int count,
- double start, int ret)
-{
- double total, each = 0, opsSec, milliEach;
- const char **word = bench_result_words2[lng_index];
- const char* kOpsSec = "Ops/Sec";
- char msg[128] = {0};
- static int pqasym_header_printed = 0;
-
- total = current_time(0) - start;
-
-#ifdef LINUX_RUSAGE_UTIME
- check_for_excessive_stime(algo, "");
-#endif
-
-#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- END_INTEL_CYCLES
-#endif
-
- if (count > 0)
- each = total / count; /* per second */
- opsSec = count / total; /* ops second */
- milliEach = each * 1000; /* milliseconds */
-
- /* format and print to terminal */
- if (csv_format == 1) {
- /* only print out header once */
- if (pqasym_header_printed == 0) {
-#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- printf("%s", "\"pq_asym\",Algorithm,avg ms,ops/sec,ops,secs,cycles,"
- "cycles/op\n");
-#else
- printf("\nPost Quantum Asymmetric Ciphers:\n\n");
- printf("Algorithm,avg ms,ops/sec,\n");
-#endif
- pqasym_header_printed = 1;
- }
-#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- (void)XSNPRINTF(msg, sizeof(msg),
- "pq_asym,%s,%.3f,%.3f,%d,%f,%lu,%.6f,\n",
- algo, milliEach, opsSec, count, total, total_cycles,
- (double)total_cycles / (double)count);
-#else
- (void)XSNPRINTF(msg, sizeof(msg), "%s %.3f,%.3f,\n", algo, milliEach,
- opsSec);
-#endif
- } else {
-#ifdef GENERATE_MACHINE_PARSEABLE_REPORT
- (void)XSNPRINTF(msg, sizeof(msg),
- "%-18s %s %6d %s %5.3f %s, %s %5.3f ms,"
- " %.3f %s, %lu cycles\n",
- algo, BENCH_DEVID_GET_NAME(useDeviceID),
- count, word[0], total, word[1], word[2], milliEach,
- opsSec, word[3], total_cycles);
-#else
- (void)XSNPRINTF(msg, sizeof(msg), "%-18s %s %6d %s %5.3f %s, %s %5.3f ms,"
- " %.3f %s\n", algo, BENCH_DEVID_GET_NAME(useDeviceID),
- count, word[0], total, word[1], word[2], milliEach, opsSec, word[3]);
-#endif
- }
- printf("%s", msg);
-
- /* show errors */
- if (ret < 0) {
- printf("%sBenchmark %s failed: %d\n", err_prefix, algo, ret);
- }
-
- /* Add to thread stats */
- bench_stats_add(BENCH_STAT_ASYM, algo, 0, "", useDeviceID, opsSec, kOpsSec, ret);
-
- (void)useDeviceID;
- (void)ret;
-
- TEST_SLEEP();
-}
-#endif
#endif /* BENCH_ASYM */
static WC_INLINE void bench_stats_free(void)
@@ -1901,9 +2097,10 @@ static WC_INLINE void bench_stats_free(void)
bench_stats_tail = NULL;
#endif
}
-/******************************************************************************/
+
+/*****************************************************************************/
/* End Stats Functions */
-/******************************************************************************/
+/*****************************************************************************/
static void* benchmarks_do(void* args)
@@ -1979,8 +2176,10 @@ static void* benchmarks_do(void* args)
bench_plain = (byte*)aligned_alloc(64, (size_t)bench_buf_size + 16);
bench_cipher = (byte*)aligned_alloc(64, (size_t)bench_buf_size + 16);
#else
- bench_plain = (byte*)XMALLOC((size_t)bench_buf_size + 16, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
- bench_cipher = (byte*)XMALLOC((size_t)bench_buf_size + 16, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
+ bench_plain = (byte*)XMALLOC((size_t)bench_buf_size + 16,
+ HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
+ bench_cipher = (byte*)XMALLOC((size_t)bench_buf_size + 16,
+ HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
#endif
if (bench_plain == NULL || bench_cipher == NULL) {
XFREE(bench_plain, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
@@ -1994,8 +2193,11 @@ static void* benchmarks_do(void* args)
XMEMSET(bench_cipher, 0, (size_t)bench_buf_size);
#if defined(WOLFSSL_ASYNC_CRYPT) || defined(HAVE_INTEL_QA_SYNC)
- bench_key = (byte*)XMALLOC(sizeof(bench_key_buf), HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
- bench_iv = (byte*)XMALLOC(sizeof(bench_iv_buf), HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
+ bench_key = (byte*)XMALLOC(sizeof(bench_key_buf),
+ HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
+ bench_iv = (byte*)XMALLOC(sizeof(bench_iv_buf),
+ HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
+
if (bench_key == NULL || bench_iv == NULL) {
XFREE(bench_key, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
XFREE(bench_iv, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
@@ -2549,21 +2751,7 @@ static void* benchmarks_do(void* args)
#endif
#endif
-#if defined(HAVE_PQC) && (defined(HAVE_LIBOQS) || defined(HAVE_PQM4))
- if (bench_all || (bench_pq_asym_algs & BENCH_KYBER_LEVEL1_KEYGEN))
- bench_pqcKemKeygen(BENCH_KYBER_LEVEL1_KEYGEN);
- if (bench_all || (bench_pq_asym_algs & BENCH_KYBER_LEVEL1_ENCAP))
- bench_pqcKemEncapDecap(BENCH_KYBER_LEVEL1_ENCAP);
-#endif
#if defined(HAVE_LIBOQS)
- if (bench_all || (bench_pq_asym_algs & BENCH_KYBER_LEVEL3_KEYGEN))
- bench_pqcKemKeygen(BENCH_KYBER_LEVEL3_KEYGEN);
- if (bench_all || (bench_pq_asym_algs & BENCH_KYBER_LEVEL3_ENCAP))
- bench_pqcKemEncapDecap(BENCH_KYBER_LEVEL3_ENCAP);
- if (bench_all || (bench_pq_asym_algs & BENCH_KYBER_LEVEL5_KEYGEN))
- bench_pqcKemKeygen(BENCH_KYBER_LEVEL5_KEYGEN);
- if (bench_all || (bench_pq_asym_algs & BENCH_KYBER_LEVEL5_ENCAP))
- bench_pqcKemEncapDecap(BENCH_KYBER_LEVEL5_ENCAP);
#ifdef HAVE_FALCON
if (bench_all || (bench_pq_asym_algs & BENCH_FALCON_LEVEL1_SIGN))
bench_falconKeySign(1);
@@ -2572,19 +2760,12 @@ static void* benchmarks_do(void* args)
#endif
#ifdef HAVE_DILITHIUM
if (bench_all || (bench_pq_asym_algs & BENCH_DILITHIUM_LEVEL2_SIGN))
- bench_dilithiumKeySign(2, SHAKE_VARIANT);
+ bench_dilithiumKeySign(2);
if (bench_all || (bench_pq_asym_algs & BENCH_DILITHIUM_LEVEL3_SIGN))
- bench_dilithiumKeySign(3, SHAKE_VARIANT);
+ bench_dilithiumKeySign(3);
if (bench_all || (bench_pq_asym_algs & BENCH_DILITHIUM_LEVEL5_SIGN))
- bench_dilithiumKeySign(5, SHAKE_VARIANT);
- if (bench_all || (bench_pq_asym_algs & BENCH_DILITHIUM_AES_LEVEL2_SIGN))
- bench_dilithiumKeySign(2, AES_VARIANT);
- if (bench_all || (bench_pq_asym_algs & BENCH_DILITHIUM_AES_LEVEL3_SIGN))
- bench_dilithiumKeySign(3, AES_VARIANT);
- if (bench_all || (bench_pq_asym_algs & BENCH_DILITHIUM_AES_LEVEL5_SIGN))
- bench_dilithiumKeySign(5, AES_VARIANT);
+ bench_dilithiumKeySign(5);
#endif
-
#ifdef HAVE_SPHINCS
if (bench_all || (bench_pq_asym_algs2 & BENCH_SPHINCS_FAST_LEVEL1_SIGN))
bench_sphincsKeySign(1, FAST_VARIANT);
@@ -2637,8 +2818,9 @@ int benchmark_init(void)
benchmark_static_init(0);
#ifdef WOLFSSL_STATIC_MEMORY
- ret = wc_LoadStaticMemory(&HEAP_HINT, gBenchMemory, sizeof(gBenchMemory),
- WOLFMEM_GENERAL, 1);
+ ret = wc_LoadStaticMemory(&HEAP_HINT, gBenchMemory,
+ sizeof(gBenchMemory), WOLFMEM_GENERAL, 1);
+
if (ret != 0) {
printf("%sunable to load static memory %d\n", err_prefix, ret);
}
@@ -2648,6 +2830,7 @@ int benchmark_init(void)
printf("%swolfCrypt_Init failed %d\n", err_prefix, ret);
return EXIT_FAILURE;
}
+
#ifdef WOLFSSL_SECO_CAAM
if (wc_SECO_OpenHSM(SECO_KEY_STORE_ID,
SECO_BENCHMARK_NONCE, SECO_MAX_UPDATES, CAAM_KEYSTORE_CREATE)
@@ -2670,9 +2853,11 @@ int benchmark_init(void)
printf("%swolfCrypt Benchmark (block bytes %d, min %.1f sec each)\n",
info_prefix, (int)bench_size, BENCH_MIN_RUNTIME_SEC);
+
#ifndef GENERATE_MACHINE_PARSEABLE_REPORT
if (csv_format == 1) {
- printf("This format allows you to easily copy the output to a csv file.");
+ printf("This format allows you to easily copy "
+ "the output to a csv file.");
}
#endif
@@ -2762,7 +2947,8 @@ static int benchmark_test_threaded(void* args)
}
for (i = 0; i < g_threadCount; i++) {
- PTHREAD_CHECK_RET(pthread_create(&g_threadData[i].thread_id, NULL, run_bench, args));
+ PTHREAD_CHECK_RET(pthread_create(&g_threadData[i].thread_id,
+ NULL, run_bench, args));
}
for (i = 0; i < g_threadCount; i++) {
@@ -2797,6 +2983,15 @@ int benchmark_test(void *args)
#if defined(WOLFSSL_ASYNC_CRYPT) && !defined(WC_NO_ASYNC_THREADING)
{
+ /* See the documentation when turning on WOLFSSL_ASYNC_CRYPT
+ **
+ ** Chapter Two, Build Options:
+ **
+ ** https://www.wolfssl.com/documentation/manuals/wolfssl/wolfSSL-Manual.pdf
+ **
+ ** asynchronous cryptography using hardware based adapters such as
+ ** the Intel QuickAssist or Marvell (Cavium) Nitrox V.
+ */
int i;
if (g_threadCount == 0) {
@@ -2879,7 +3074,8 @@ void bench_rng(void)
len = remain;
if (len > RNG_MAX_BLOCK_LEN)
len = RNG_MAX_BLOCK_LEN;
- ret = wc_RNG_GenerateBlock(&myrng, &bench_plain[pos], (word32)len);
+ ret = wc_RNG_GenerateBlock(&myrng, &bench_plain[pos],
+ (word32)len);
if (ret < 0)
goto exit_rng;
@@ -2900,7 +3096,8 @@ void bench_rng(void)
#ifndef NO_AES
#ifdef HAVE_AES_CBC
-static void bench_aescbc_internal(int useDeviceID, const byte* key, word32 keySz,
+static void bench_aescbc_internal(int useDeviceID,
+ const byte* key, word32 keySz,
const byte* iv, const char* encLabel,
const char* decLabel)
{
@@ -2934,12 +3131,12 @@ static void bench_aescbc_internal(int useDeviceID, const byte* key, word32 keySz
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
ret = wc_AesCbcEncrypt(&enc[i], bench_plain, bench_cipher,
bench_size);
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_aes_enc;
}
}
@@ -2947,8 +3144,10 @@ static void bench_aescbc_internal(int useDeviceID, const byte* key, word32 keySz
} /* for times */
count += times;
} while (bench_stats_check(start));
+
exit_aes_enc:
- bench_stats_sym_finish(encLabel, useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish(encLabel, useDeviceID, count,
+ bench_size, start, ret);
if (ret < 0) {
goto exit;
@@ -2972,12 +3171,12 @@ static void bench_aescbc_internal(int useDeviceID, const byte* key, word32 keySz
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
ret = wc_AesCbcDecrypt(&enc[i], bench_cipher, bench_plain,
bench_size);
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_aes_dec;
}
}
@@ -2986,7 +3185,8 @@ static void bench_aescbc_internal(int useDeviceID, const byte* key, word32 keySz
count += times;
} while (bench_stats_check(start));
exit_aes_dec:
- bench_stats_sym_finish(decLabel, useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish(decLabel, useDeviceID, count, bench_size,
+ start, ret);
#endif /* HAVE_AES_DECRYPT */
@@ -3017,8 +3217,9 @@ void bench_aescbc(int useDeviceID)
#endif /* HAVE_AES_CBC */
#ifdef HAVE_AESGCM
-static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz,
- const byte* iv, word32 ivSz,
+static void bench_aesgcm_internal(int useDeviceID,
+ const byte* key, word32 keySz,
+ const byte* iv, word32 ivSz,
const char* encLabel, const char* decLabel)
{
int ret = 0, i, count = 0, times, pending = 0;
@@ -3075,7 +3276,7 @@ static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
#ifndef BENCHMARK_AESGCM_STREAM
ret = wc_AesGcmEncrypt(&enc[i], bench_cipher,
bench_plain, bench_size,
@@ -3094,7 +3295,7 @@ static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz
}
#endif
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_aes_gcm;
}
}
@@ -3103,7 +3304,8 @@ static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz
count += times;
} while (bench_stats_check(start));
exit_aes_gcm:
- bench_stats_sym_finish(encLabel, useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish(encLabel, useDeviceID, count, bench_size,
+ start, ret);
#ifdef HAVE_AES_DECRYPT
/* init keys */
@@ -3129,7 +3331,7 @@ static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&dec[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
#ifndef BENCHMARK_AESGCM_STREAM
ret = wc_AesGcmDecrypt(&dec[i], bench_plain,
bench_cipher, bench_size,
@@ -3148,7 +3350,7 @@ static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz
}
#endif
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&dec[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_aes_gcm_dec;
}
}
@@ -3156,8 +3358,10 @@ static void bench_aesgcm_internal(int useDeviceID, const byte* key, word32 keySz
} /* for times */
count += times;
} while (bench_stats_check(start));
+
exit_aes_gcm_dec:
- bench_stats_sym_finish(decLabel, useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish(decLabel, useDeviceID, count, bench_size,
+ start, ret);
#endif /* HAVE_AES_DECRYPT */
(void)decLabel;
@@ -3184,7 +3388,8 @@ void bench_aesgcm(int useDeviceID)
{
#define AES_GCM_STRING(n, dir) AES_AAD_STRING("AES-" #n "-GCM-" #dir)
#if defined(WOLFSSL_AES_128) && !defined(WOLFSSL_AFALG_XILINX_AES) \
- && !defined(WOLFSSL_XILINX_CRYPT) || defined(WOLFSSL_XILINX_CRYPT_VERSAL)
+ && !defined(WOLFSSL_XILINX_CRYPT) \
+ || defined(WOLFSSL_XILINX_CRYPT_VERSAL)
bench_aesgcm_internal(useDeviceID, bench_key, 16, bench_iv, 12,
AES_GCM_STRING(128, enc), AES_GCM_STRING(128, dec));
#endif
@@ -3244,7 +3449,8 @@ void bench_gmac(void)
#ifdef HAVE_AES_ECB
-static void bench_aesecb_internal(int useDeviceID, const byte* key, word32 keySz,
+static void bench_aesecb_internal(int useDeviceID,
+ const byte* key, word32 keySz,
const char* encLabel, const char* decLabel)
{
int ret = 0, i, count = 0, times, pending = 0;
@@ -3285,7 +3491,7 @@ static void bench_aesecb_internal(int useDeviceID, const byte* key, word32 keySz
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
#ifdef HAVE_FIPS
wc_AesEncryptDirect(&enc[i], bench_cipher, bench_plain);
#else
@@ -3294,7 +3500,7 @@ static void bench_aesecb_internal(int useDeviceID, const byte* key, word32 keySz
#endif
ret = 0;
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_aes_enc;
}
}
@@ -3325,7 +3531,7 @@ static void bench_aesecb_internal(int useDeviceID, const byte* key, word32 keySz
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
#ifdef HAVE_FIPS
wc_AesDecryptDirect(&enc[i], bench_plain, bench_cipher);
#else
@@ -3334,7 +3540,7 @@ static void bench_aesecb_internal(int useDeviceID, const byte* key, word32 keySz
#endif
ret = 0;
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_aes_dec;
}
}
@@ -3373,7 +3579,8 @@ void bench_aesecb(int useDeviceID)
#endif /* HAVE_AES_ECB */
#ifdef WOLFSSL_AES_CFB
-static void bench_aescfb_internal(const byte* key, word32 keySz, const byte* iv,
+static void bench_aescfb_internal(const byte* key,
+ word32 keySz, const byte* iv,
const char* label)
{
Aes enc;
@@ -3416,7 +3623,8 @@ void bench_aescfb(void)
#ifdef WOLFSSL_AES_OFB
-static void bench_aesofb_internal(const byte* key, word32 keySz, const byte* iv,
+static void bench_aesofb_internal(const byte* key,
+ word32 keySz, const byte* iv,
const char* label)
{
Aes enc;
@@ -3532,8 +3740,8 @@ void bench_aesxts(void)
#ifdef WOLFSSL_AES_COUNTER
-static void bench_aesctr_internal(const byte* key, word32 keySz, const byte* iv,
- const char* label)
+static void bench_aesctr_internal(const byte* key, word32 keySz,
+ const byte* iv, const char* label)
{
Aes enc;
double start;
@@ -3545,7 +3753,7 @@ static void bench_aesctr_internal(const byte* key, word32 keySz, const byte* iv,
do {
for (i = 0; i < numBlocks; i++) {
if((ret = wc_AesCtrEncrypt(&enc, bench_plain, bench_cipher,
- bench_size)) != 0) {
+ bench_size)) != 0) {
printf("wc_AesCtrEncrypt failed, ret = %d\n", ret);
return;
}
@@ -3810,11 +4018,12 @@ void bench_des(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
- ret = wc_Des3_CbcEncrypt(&enc[i], bench_cipher, bench_plain,
- bench_size);
+ ×, numBlocks, &pending)) {
+ ret = wc_Des3_CbcEncrypt(&enc[i],
+ bench_cipher,
+ bench_plain, bench_size);
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_3des;
}
}
@@ -3867,11 +4076,11 @@ void bench_arc4(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&enc[i]), 0,
- ×, numBlocks, &pending)) {
+ ×, numBlocks, &pending)) {
ret = wc_Arc4Process(&enc[i], bench_cipher, bench_plain,
- bench_size);
+ bench_size);
if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&enc[i]),
- 0, ×, &pending)) {
+ 0, ×, &pending)) {
goto exit_arc4;
}
}
@@ -3944,8 +4153,10 @@ void bench_md5(int useDeviceID)
wc_Md5 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_MD5_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_MD5_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -3972,11 +4183,12 @@ void bench_md5(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Md5Update(&hash[i], bench_plain,
- bench_size);
+ bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]),
+ 0, ×, &pending)) {
goto exit_md5;
}
}
@@ -3990,10 +4202,11 @@ void bench_md5(int useDeviceID)
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Md5Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_md5;
}
}
@@ -4038,8 +4251,10 @@ void bench_sha(int useDeviceID)
wc_Sha hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4066,11 +4281,12 @@ void bench_sha(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_ShaUpdate(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha;
}
}
@@ -4084,10 +4300,11 @@ void bench_sha(int useDeviceID)
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_ShaFinal(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha;
}
}
@@ -4131,8 +4348,10 @@ void bench_sha224(int useDeviceID)
wc_Sha224 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA224_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA224_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4156,11 +4375,12 @@ void bench_sha224(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha224Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha224;
}
}
@@ -4173,10 +4393,11 @@ void bench_sha224(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha224Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha224;
}
}
@@ -4201,7 +4422,8 @@ void bench_sha224(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha224:
- bench_stats_sym_finish("SHA-224", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA-224", useDeviceID, count,
+ bench_size, start, ret);
exit:
@@ -4219,8 +4441,10 @@ void bench_sha256(int useDeviceID)
wc_Sha256 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA256_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA256_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4247,11 +4471,12 @@ void bench_sha256(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha256Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha256;
}
}
@@ -4264,10 +4489,11 @@ void bench_sha256(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha256Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha256;
}
}
@@ -4292,7 +4518,8 @@ void bench_sha256(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha256:
- bench_stats_sym_finish("SHA-256", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA-256", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4310,8 +4537,10 @@ void bench_sha384(int useDeviceID)
wc_Sha384 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA384_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA384_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4335,11 +4564,12 @@ void bench_sha384(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha384Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha384;
}
}
@@ -4352,10 +4582,11 @@ void bench_sha384(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha384Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha384;
}
}
@@ -4380,7 +4611,8 @@ void bench_sha384(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha384:
- bench_stats_sym_finish("SHA-384", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA-384", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4398,8 +4630,10 @@ void bench_sha512(int useDeviceID)
wc_Sha512 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA512_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA512_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4423,11 +4657,12 @@ void bench_sha512(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha512Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha512;
}
}
@@ -4440,10 +4675,11 @@ void bench_sha512(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha512Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha512;
}
}
@@ -4468,7 +4704,8 @@ void bench_sha512(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha512:
- bench_stats_sym_finish("SHA-512", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA-512", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4488,8 +4725,10 @@ void bench_sha3_224(int useDeviceID)
wc_Sha3 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4513,11 +4752,12 @@ void bench_sha3_224(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_224_Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_224;
}
}
@@ -4530,10 +4770,11 @@ void bench_sha3_224(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_224_Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_224;
}
}
@@ -4558,7 +4799,8 @@ void bench_sha3_224(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha3_224:
- bench_stats_sym_finish("SHA3-224", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA3-224", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4576,8 +4818,10 @@ void bench_sha3_256(int useDeviceID)
wc_Sha3 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4601,11 +4845,12 @@ void bench_sha3_256(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_256_Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_256;
}
}
@@ -4618,10 +4863,11 @@ void bench_sha3_256(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_256_Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_256;
}
}
@@ -4646,7 +4892,8 @@ void bench_sha3_256(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha3_256:
- bench_stats_sym_finish("SHA3-256", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA3-256", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4664,8 +4911,10 @@ void bench_sha3_384(int useDeviceID)
wc_Sha3 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4689,11 +4938,12 @@ void bench_sha3_384(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_384_Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_384;
}
}
@@ -4706,10 +4956,11 @@ void bench_sha3_384(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_384_Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_384;
}
}
@@ -4734,7 +4985,8 @@ void bench_sha3_384(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha3_384:
- bench_stats_sym_finish("SHA3-384", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA3-384", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4752,8 +5004,10 @@ void bench_sha3_512(int useDeviceID)
wc_Sha3 hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4777,11 +5031,12 @@ void bench_sha3_512(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_512_Update(&hash[i], bench_plain,
bench_size);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_512;
}
}
@@ -4794,10 +5049,11 @@ void bench_sha3_512(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Sha3_512_Final(&hash[i], digest[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_sha3_512;
}
}
@@ -4822,7 +5078,8 @@ void bench_sha3_512(int useDeviceID)
} while (bench_stats_check(start));
}
exit_sha3_512:
- bench_stats_sym_finish("SHA3-512", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHA3-512", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4840,8 +5097,10 @@ void bench_shake128(int useDeviceID)
wc_Shake hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_128_BLOCK_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_128_BLOCK_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_128_BLOCK_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_128_BLOCK_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4865,11 +5124,12 @@ void bench_shake128(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Shake128_Update(&hash[i], bench_plain,
BENCH_SIZE);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_shake128;
}
}
@@ -4882,11 +5142,12 @@ void bench_shake128(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Shake128_Final(&hash[i], digest[i],
WC_SHA3_128_BLOCK_SIZE);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_shake128;
}
}
@@ -4912,7 +5173,8 @@ void bench_shake128(int useDeviceID)
} while (bench_stats_check(start));
}
exit_shake128:
- bench_stats_sym_finish("SHAKE128", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHAKE128", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -4930,8 +5192,10 @@ void bench_shake256(int useDeviceID)
wc_Shake hash[BENCH_MAX_PENDING];
double start;
int ret = 0, i, count = 0, times, pending = 0;
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_BLOCK_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_BLOCK_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_256_BLOCK_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_SHA3_256_BLOCK_SIZE, HEAP_HINT);
/* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash));
@@ -4955,11 +5219,12 @@ void bench_shake256(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Shake256_Update(&hash[i], bench_plain,
BENCH_SIZE);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_shake256;
}
}
@@ -4972,11 +5237,12 @@ void bench_shake256(int useDeviceID)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hash[i]),
- 0, ×, numBlocks, &pending)) {
+ 0, ×, numBlocks, &pending)) {
ret = wc_Shake256_Final(&hash[i], digest[i],
WC_SHA3_256_BLOCK_SIZE);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&hash[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&hash[i]), 0,
+ ×, &pending)) {
goto exit_shake256;
}
}
@@ -5002,7 +5268,8 @@ void bench_shake256(int useDeviceID)
} while (bench_stats_check(start));
}
exit_shake256:
- bench_stats_sym_finish("SHAKE256", useDeviceID, count, bench_size, start, ret);
+ bench_stats_sym_finish("SHAKE256", useDeviceID, count, bench_size,
+ start, ret);
exit:
@@ -5281,7 +5548,8 @@ void bench_scrypt(void)
do {
for (i = 0; i < scryptCnt; i++) {
ret = wc_scrypt(derived, (byte*)"pleaseletmein", 13,
- (byte*)"SodiumChloride", 14, 14, 8, 1, sizeof(derived));
+ (byte*)"SodiumChloride", 14, 14, 8, 1,
+ sizeof(derived));
if (ret != 0) {
printf("scrypt failed, ret = %d\n", ret);
goto exit;
@@ -5304,8 +5572,10 @@ static void bench_hmac(int useDeviceID, int type, int digestSz,
double start;
int ret = 0, i, count = 0, times, pending = 0;
#ifdef WOLFSSL_ASYNC_CRYPT
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_MAX_DIGEST_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING,
+ WC_MAX_DIGEST_SIZE, HEAP_HINT);
#else
byte digest[BENCH_MAX_PENDING][WC_MAX_DIGEST_SIZE];
#endif
@@ -5338,10 +5608,12 @@ static void bench_hmac(int useDeviceID, int type, int digestSz,
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hmac[i]), 0,
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&hmac[i]), 0,
×, numBlocks, &pending)) {
ret = wc_HmacUpdate(&hmac[i], bench_plain, bench_size);
- if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&hmac[i]),
+ if (!bench_async_handle(&ret,
+ BENCH_ASYNC_GET_DEV(&hmac[i]),
0, ×, &pending)) {
goto exit_hmac;
}
@@ -5355,10 +5627,12 @@ static void bench_hmac(int useDeviceID, int type, int digestSz,
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&hmac[i]), 0,
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&hmac[i]), 0,
×, numBlocks, &pending)) {
ret = wc_HmacFinal(&hmac[i], digest[i]);
- if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(&hmac[i]),
+ if (!bench_async_handle(&ret,
+ BENCH_ASYNC_GET_DEV(&hmac[i]),
0, ×, &pending)) {
goto exit_hmac;
}
@@ -5416,7 +5690,8 @@ void bench_hmac_sha224(int useDeviceID)
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
0x0b, 0x0b, 0x0b, 0x0b };
- bench_hmac(useDeviceID, WC_SHA224, WC_SHA224_DIGEST_SIZE, key, sizeof(key),
+ bench_hmac(useDeviceID, WC_SHA224,
+ WC_SHA224_DIGEST_SIZE, key, sizeof(key),
"HMAC-SHA224");
}
@@ -5550,7 +5825,7 @@ static void bench_rsaKeyGen_helper(int useDeviceID, int keySz)
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&genKey[i]),
- 0, ×, genTimes, &pending)) {
+ 0, ×, genTimes, &pending)) {
wc_FreeRsaKey(&genKey[i]);
ret = wc_InitRsaKey_ex(&genKey[i], HEAP_HINT, devId);
@@ -5560,7 +5835,8 @@ static void bench_rsaKeyGen_helper(int useDeviceID, int keySz)
ret = wc_MakeRsaKey(&genKey[i], keySz, rsa_e_val, &gRng);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&genKey[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&genKey[i]), 0,
+ ×, &pending)) {
goto exit;
}
}
@@ -5569,7 +5845,8 @@ static void bench_rsaKeyGen_helper(int useDeviceID, int keySz)
count += times;
} while (bench_stats_check(start));
exit:
- bench_stats_asym_finish("RSA", keySz, desc[2], useDeviceID, count, start, ret);
+ bench_stats_asym_finish("RSA", keySz, desc[2], useDeviceID, count,
+ start, ret);
/* cleanup */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
@@ -5707,7 +5984,7 @@ static unsigned char rsa_3072_sig[] = {
#endif /* WOLFSSL_RSA_VERIFY_INLINE || WOLFSSL_RSA_PUBLIC_ONLY */
static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
- int rsaKeySz)
+ int rsaKeySz)
{
int ret = 0, i, times, count = 0, pending = 0;
word32 idx = 0;
@@ -5720,16 +5997,24 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
#ifndef WOLFSSL_RSA_VERIFY_ONLY
WC_DECLARE_VAR(message, byte, TEST_STRING_SZ, HEAP_HINT);
#endif
- WC_DECLARE_ARRAY_DYNAMIC_DEC(enc, byte, BENCH_MAX_PENDING, rsaKeySz, HEAP_HINT);
- #if !defined(WOLFSSL_RSA_VERIFY_INLINE) && !defined(WOLFSSL_RSA_PUBLIC_ONLY)
- WC_DECLARE_ARRAY_DYNAMIC_DEC(out, byte, BENCH_MAX_PENDING, rsaKeySz, HEAP_HINT);
+ WC_DECLARE_ARRAY_DYNAMIC_DEC(enc, byte, BENCH_MAX_PENDING,
+ rsaKeySz, HEAP_HINT);
+
+ #if ( !defined(WOLFSSL_RSA_VERIFY_INLINE) \
+ && !defined(WOLFSSL_RSA_PUBLIC_ONLY) )
+ WC_DECLARE_ARRAY_DYNAMIC_DEC(out, byte, BENCH_MAX_PENDING,
+ rsaKeySz, HEAP_HINT);
#else
byte* out[BENCH_MAX_PENDING];
#endif
- WC_DECLARE_ARRAY_DYNAMIC_EXE(enc, byte, BENCH_MAX_PENDING, rsaKeySz, HEAP_HINT);
- #if !defined(WOLFSSL_RSA_VERIFY_INLINE) && !defined(WOLFSSL_RSA_PUBLIC_ONLY)
- WC_DECLARE_ARRAY_DYNAMIC_EXE(out, byte, BENCH_MAX_PENDING, rsaKeySz, HEAP_HINT);
+ WC_DECLARE_ARRAY_DYNAMIC_EXE(enc, byte, BENCH_MAX_PENDING,
+ rsaKeySz, HEAP_HINT);
+
+ #if ( !defined(WOLFSSL_RSA_VERIFY_INLINE) \
+ && !defined(WOLFSSL_RSA_PUBLIC_ONLY) )
+ WC_DECLARE_ARRAY_DYNAMIC_EXE(out, byte, BENCH_MAX_PENDING,
+ rsaKeySz, HEAP_HINT);
if (out[0] == NULL) {
ret = MEMORY_E;
goto exit;
@@ -5760,13 +6045,16 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&rsaKey[i]),
- 1, ×, ntimes, &pending)) {
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ 1, ×, ntimes, &pending)) {
ret = wc_RsaPublicEncrypt(message, (word32)len, enc[i],
rsaKeySz/8, &rsaKey[i],
GLOBAL_RNG);
- if (!bench_async_handle(&ret, BENCH_ASYNC_GET_DEV(
- &rsaKey[i]), 1, ×, &pending)) {
+ if (!bench_async_handle(&ret,
+ BENCH_ASYNC_GET_DEV(
+ &rsaKey[i]), 1, ×,
+ &pending)) {
goto exit_rsa_verify;
}
}
@@ -5775,8 +6063,8 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
count += times;
} while (bench_stats_check(start));
exit_rsa_verify:
- bench_stats_asym_finish("RSA", rsaKeySz, desc[0], useDeviceID, count,
- start, ret);
+ bench_stats_asym_finish("RSA", rsaKeySz, desc[0],
+ useDeviceID, count, start, ret);
#endif /* !WOLFSSL_RSA_VERIFY_ONLY */
#ifndef WOLFSSL_RSA_PUBLIC_ONLY
@@ -5795,12 +6083,13 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&rsaKey[i]),
- 1, ×, ntimes, &pending)) {
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ 1, ×, ntimes, &pending)) {
ret = wc_RsaPrivateDecrypt(enc[i], idx, out[i],
- rsaKeySz/8, &rsaKey[i]);
+ rsaKeySz/8, &rsaKey[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
1, ×, &pending)) {
goto exit_rsa_pub;
}
@@ -5810,8 +6099,8 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
count += times;
} while (bench_stats_check(start));
exit_rsa_pub:
- bench_stats_asym_finish("RSA", rsaKeySz, desc[1], useDeviceID, count,
- start, ret);
+ bench_stats_asym_finish("RSA", rsaKeySz, desc[1],
+ useDeviceID, count, start, ret);
#endif /* !WOLFSSL_RSA_PUBLIC_ONLY */
}
else {
@@ -5824,13 +6113,14 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&rsaKey[i]),
- 1, ×, ntimes, &pending)) {
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ 1, ×, ntimes, &pending)) {
ret = wc_RsaSSL_Sign(message, len, enc[i],
rsaKeySz/8, &rsaKey[i], &gRng);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&rsaKey[i]),
- 1, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ 1, ×, &pending)) {
goto exit_rsa_sign;
}
}
@@ -5839,8 +6129,8 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
count += times;
} while (bench_stats_check(start));
exit_rsa_sign:
- bench_stats_asym_finish("RSA", rsaKeySz, desc[4], useDeviceID, count, start,
- ret);
+ bench_stats_asym_finish("RSA", rsaKeySz, desc[4], useDeviceID,
+ count, start, ret);
if (ret < 0) {
goto exit;
@@ -5858,8 +6148,9 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&rsaKey[i]),
- 1, ×, ntimes, &pending)) {
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ 1, ×, ntimes, &pending)) {
#if !defined(WOLFSSL_RSA_VERIFY_INLINE) && \
!defined(WOLFSSL_RSA_PUBLIC_ONLY)
ret = wc_RsaSSL_Verify(enc[i], idx, out[i],
@@ -5868,22 +6159,24 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
XMEMCPY(enc[i], rsa_2048_sig, sizeof(rsa_2048_sig));
idx = sizeof(rsa_2048_sig);
out[i] = NULL;
- ret = wc_RsaSSL_VerifyInline(enc[i], idx, &out[i],
- &rsaKey[i]);
- if (ret > 0)
+ ret = wc_RsaSSL_VerifyInline(enc[i], idx,
+ &out[i], &rsaKey[i]);
+ if (ret > 0) {
ret = 0;
+ }
+
#elif defined(USE_CERT_BUFFERS_3072)
XMEMCPY(enc[i], rsa_3072_sig, sizeof(rsa_3072_sig));
idx = sizeof(rsa_3072_sig);
out[i] = NULL;
- ret = wc_RsaSSL_VerifyInline(enc[i], idx, &out[i],
- &rsaKey[i]);
+ ret = wc_RsaSSL_VerifyInline(enc[i], idx,
+ &out[i], &rsaKey[i]);
if (ret > 0)
ret = 0;
#endif
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&rsaKey[i]),
- 1, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&rsaKey[i]),
+ 1, ×, &pending)) {
goto exit_rsa_verifyinline;
}
}
@@ -5891,9 +6184,10 @@ static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[BENCH_MAX_PENDING],
} /* for times */
count += times;
} while (bench_stats_check(start));
+
exit_rsa_verifyinline:
- bench_stats_asym_finish("RSA", rsaKeySz, desc[5], useDeviceID, count,
- start, ret);
+ bench_stats_asym_finish("RSA", rsaKeySz, desc[5],
+ useDeviceID, count, start, ret);
}
exit:
@@ -5962,8 +6256,8 @@ void bench_rsa(int useDeviceID)
#if !defined(WOLFSSL_RSA_PUBLIC_ONLY) && !defined(WOLFSSL_RSA_VERIFY_ONLY)
/* decode the private key */
idx = 0;
- if ((ret = wc_RsaPrivateKeyDecode(tmp, &idx, &rsaKey[i],
- (word32)bytes)) != 0) {
+ if ((ret = wc_RsaPrivateKeyDecode(tmp, &idx,
+ &rsaKey[i], (word32)bytes)) != 0) {
printf("wc_RsaPrivateKeyDecode failed! %d\n", ret);
goto exit_bench_rsa;
}
@@ -6112,15 +6406,23 @@ void bench_dh(int useDeviceID)
#endif
#endif
- WC_DECLARE_ARRAY(pub, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
- WC_DECLARE_VAR(pub2, byte, BENCH_DH_KEY_SIZE, HEAP_HINT);
- WC_DECLARE_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
- WC_DECLARE_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
- WC_DECLARE_VAR(priv2, byte, BENCH_DH_PRIV_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(pub, byte, BENCH_MAX_PENDING,
+ BENCH_DH_KEY_SIZE, HEAP_HINT);
+ WC_DECLARE_VAR(pub2, byte,
+ BENCH_DH_KEY_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(agree, byte, BENCH_MAX_PENDING,
+ BENCH_DH_KEY_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(priv, byte, BENCH_MAX_PENDING,
+ BENCH_DH_PRIV_SIZE, HEAP_HINT);
+ WC_DECLARE_VAR(priv2, byte,
+ BENCH_DH_PRIV_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(pub, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
- WC_INIT_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(pub, byte,
+ BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(agree, byte,
+ BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
+ WC_INIT_ARRAY(priv, byte,
+ BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
#ifdef WC_DECLARE_VAR_IS_HEAP_ALLOC
if (pub[0] == NULL || pub2 == NULL || agree[0] == NULL || priv[0] == NULL || priv2 == NULL) {
@@ -6200,8 +6502,8 @@ void bench_dh(int useDeviceID)
/* setup key */
if (!use_ffdhe) {
#ifdef NO_ASN
- ret = wc_DhSetKey(&dhKey[i], dh_p, sizeof(dh_p), dh_g,
- sizeof(dh_g));
+ ret = wc_DhSetKey(&dhKey[i], dh_p,
+ sizeof(dh_p), dh_g, sizeof(dh_g));
#else
idx = 0;
ret = wc_DhKeyDecode(tmp, &idx, &dhKey[i], (word32)bytes);
@@ -6210,8 +6512,8 @@ void bench_dh(int useDeviceID)
#if defined(HAVE_FFDHE_2048) || defined(HAVE_FFDHE_3072)
#ifdef HAVE_PUBLIC_FFDHE
else if (params != NULL) {
- ret = wc_DhSetKey(&dhKey[i], params->p, params->p_len, params->g,
- params->g_len);
+ ret = wc_DhSetKey(&dhKey[i], params->p, params->p_len,
+ params->g, params->g_len);
}
#else
else if (paramName != 0) {
@@ -6235,13 +6537,15 @@ void bench_dh(int useDeviceID)
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&dhKey[i]),
- 0, ×, genTimes, &pending)) {
+ 0, ×, genTimes, &pending)) {
privSz[i] = BENCH_DH_PRIV_SIZE;
pubSz[i] = BENCH_DH_KEY_SIZE;
- ret = wc_DhGenerateKeyPair(&dhKey[i], &gRng, priv[i], &privSz[i],
- pub[i], &pubSz[i]);
+ ret = wc_DhGenerateKeyPair(&dhKey[i], &gRng,
+ priv[i], &privSz[i],
+ pub[i], &pubSz[i]);
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&dhKey[i]), 0, ×, &pending)) {
+ BENCH_ASYNC_GET_DEV(&dhKey[i]),
+ 0, ×, &pending)) {
goto exit_dh_gen;
}
}
@@ -6251,7 +6555,8 @@ void bench_dh(int useDeviceID)
} while (bench_stats_check(start));
PRIVATE_KEY_LOCK();
exit_dh_gen:
- bench_stats_asym_finish("DH", dhKeySz, desc[2], useDeviceID, count, start, ret);
+ bench_stats_asym_finish("DH", dhKeySz, desc[2],
+ useDeviceID, count, start, ret);
if (ret < 0) {
goto exit;
@@ -6259,7 +6564,8 @@ void bench_dh(int useDeviceID)
/* Generate key to use as other public */
PRIVATE_KEY_UNLOCK();
- ret = wc_DhGenerateKeyPair(&dhKey[0], &gRng, priv2, &privSz2, pub2, &pubSz2);
+ ret = wc_DhGenerateKeyPair(&dhKey[0], &gRng,
+ priv2, &privSz2, pub2, &pubSz2);
PRIVATE_KEY_LOCK();
#ifdef WOLFSSL_ASYNC_CRYPT
ret = wc_AsyncWait(ret, &dhKey[0].asyncDev, WC_ASYNC_FLAG_NONE);
@@ -6275,9 +6581,9 @@ void bench_dh(int useDeviceID)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&dhKey[i]),
- 0, ×, agreeTimes, &pending)) {
+ 0, ×, agreeTimes, &pending)) {
ret = wc_DhAgree(&dhKey[i], agree[i], &agreeSz[i], priv[i],
- privSz[i], pub2, pubSz2);
+ privSz[i], pub2, pubSz2);
if (!bench_async_handle(&ret,
BENCH_ASYNC_GET_DEV(&dhKey[i]), 0, ×, &pending)) {
goto exit;
@@ -6288,8 +6594,10 @@ void bench_dh(int useDeviceID)
count += times;
} while (bench_stats_check(start));
PRIVATE_KEY_LOCK();
+
exit:
- bench_stats_asym_finish("DH", dhKeySz, desc[3], useDeviceID, count, start, ret);
+ bench_stats_asym_finish("DH", dhKeySz, desc[3],
+ useDeviceID, count, start, ret);
/* cleanup */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
@@ -6481,8 +6789,9 @@ void bench_eccMakeKey(int useDeviceID, int curveId)
bench_async_poll(&pending);
for (i = 0; i < BENCH_MAX_PENDING; i++) {
- if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&genKey[i]), 0,
- ×, agreeTimes, &pending)) {
+ if (bench_async_check(&ret,
+ BENCH_ASYNC_GET_DEV(&genKey[i]), 0,
+ ×, agreeTimes, &pending)) {
wc_ecc_free(&genKey[i]);
ret = wc_ecc_init_ex(&genKey[i], HEAP_HINT, deviceID);
@@ -6502,11 +6811,12 @@ void bench_eccMakeKey(int useDeviceID, int curveId)
} /* for times */
count += times;
} while (bench_stats_check(start));
+
exit:
(void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECC [%15s]",
wc_ecc_get_name(curveId));
- bench_stats_asym_finish(name, keySize * 8, desc[2], useDeviceID, count, start,
- ret);
+ bench_stats_asym_finish(name, keySize * 8, desc[2],
+ useDeviceID, count, start, ret);
/* cleanup */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
@@ -6525,26 +6835,34 @@ void bench_ecc(int useDeviceID, int curveId)
#ifdef HAVE_ECC_DHE
ecc_key genKey2[BENCH_MAX_PENDING];
#endif
+
#if !defined(NO_ASN) && defined(HAVE_ECC_SIGN)
-#ifdef HAVE_ECC_VERIFY
- int verify[BENCH_MAX_PENDING];
-#endif
+ #ifdef HAVE_ECC_VERIFY
+ int verify[BENCH_MAX_PENDING];
+ #endif
#endif
+
word32 x[BENCH_MAX_PENDING];
double start = 0;
const char**desc = bench_desc_words[lng_index];
#ifdef HAVE_ECC_DHE
- WC_DECLARE_ARRAY(shared, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
+ WC_DECLARE_ARRAY(shared, byte,
+ BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
+
#if !defined(NO_ASN) && defined(HAVE_ECC_SIGN)
- WC_DECLARE_ARRAY(sig, byte, BENCH_MAX_PENDING, ECC_MAX_SIG_SIZE, HEAP_HINT);
- WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
+ WC_DECLARE_ARRAY(sig, byte,
+ BENCH_MAX_PENDING, ECC_MAX_SIG_SIZE, HEAP_HINT);
+ WC_DECLARE_ARRAY(digest, byte,
+ BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
#ifdef HAVE_ECC_DHE
- WC_INIT_ARRAY(shared, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
+ WC_INIT_ARRAY(shared, byte,
+ BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
+
#if !defined(NO_ASN) && defined(HAVE_ECC_SIGN)
WC_INIT_ARRAY(sig, byte, BENCH_MAX_PENDING, ECC_MAX_SIG_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
@@ -6602,7 +6920,7 @@ void bench_ecc(int useDeviceID, int curveId)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&genKey[i]), 1,
- ×, agreeTimes, &pending)) {
+ ×, agreeTimes, &pending)) {
x[i] = (word32)keySize;
ret = wc_ecc_shared_secret(&genKey[i], &genKey2[i],
shared[i], &x[i]);
@@ -6618,10 +6936,11 @@ void bench_ecc(int useDeviceID, int curveId)
} while (bench_stats_check(start));
PRIVATE_KEY_UNLOCK();
exit_ecdhe:
- (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECDHE [%15s]", wc_ecc_get_name(curveId));
+ (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECDHE [%15s]",
+ wc_ecc_get_name(curveId));
- bench_stats_asym_finish(name, keySize * 8, desc[3], useDeviceID, count, start,
- ret);
+ bench_stats_asym_finish(name, keySize * 8, desc[3],
+ useDeviceID, count, start, ret);
if (ret < 0) {
goto exit;
@@ -6646,26 +6965,32 @@ void bench_ecc(int useDeviceID, int curveId)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&genKey[i]), 1,
- ×, agreeTimes, &pending)) {
- if (genKey[i].state == 0)
+ ×, agreeTimes, &pending)) {
+
+ if (genKey[i].state == 0) {
x[i] = ECC_MAX_SIG_SIZE;
+ }
+
ret = wc_ecc_sign_hash(digest[i], (word32)keySize, sig[i],
- &x[i], &gRng, &genKey[i]);
+ &x[i], &gRng, &genKey[i]);
+
if (!bench_async_handle(&ret,
BENCH_ASYNC_GET_DEV(&genKey[i]), 1, ×,
&pending)) {
goto exit_ecdsa_sign;
}
- }
+ } /* bench_async_check */
} /* for i */
} /* for times */
count += times;
} while (bench_stats_check(start));
+
exit_ecdsa_sign:
- (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECDSA [%15s]", wc_ecc_get_name(curveId));
+ (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECDSA [%15s]",
+ wc_ecc_get_name(curveId));
- bench_stats_asym_finish(name, keySize * 8, desc[4], useDeviceID, count, start,
- ret);
+ bench_stats_asym_finish(name, keySize * 8, desc[4],
+ useDeviceID, count, start, ret);
if (ret < 0) {
goto exit;
@@ -6682,26 +7007,33 @@ void bench_ecc(int useDeviceID, int curveId)
/* while free pending slots in queue, submit ops */
for (i = 0; i < BENCH_MAX_PENDING; i++) {
if (bench_async_check(&ret, BENCH_ASYNC_GET_DEV(&genKey[i]), 1,
- ×, agreeTimes, &pending)) {
- if (genKey[i].state == 0)
+ ×, agreeTimes, &pending)) {
+ if (genKey[i].state == 0) {
verify[i] = 0;
+ }
+
ret = wc_ecc_verify_hash(sig[i], x[i], digest[i],
- (word32)keySize, &verify[i], &genKey[i]);
+ (word32)keySize, &verify[i],
+ &genKey[i]);
+
if (!bench_async_handle(&ret,
- BENCH_ASYNC_GET_DEV(&genKey[i]), 1, ×,
- &pending)) {
+ BENCH_ASYNC_GET_DEV(&genKey[i]),
+ 1, ×,
+ &pending)) {
goto exit_ecdsa_verify;
}
- }
+ } /* if bench_async_check */
} /* for i */
} /* for times */
count += times;
} while (bench_stats_check(start));
+
exit_ecdsa_verify:
- (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECDSA [%15s]", wc_ecc_get_name(curveId));
+ (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECDSA [%15s]",
+ wc_ecc_get_name(curveId));
- bench_stats_asym_finish(name, keySize * 8, desc[5], useDeviceID, count, start,
- ret);
+ bench_stats_asym_finish(name, keySize * 8, desc[5],
+ useDeviceID, count, start, ret);
#endif /* HAVE_ECC_VERIFY */
#endif /* !NO_ASN && HAVE_ECC_SIGN */
@@ -6795,8 +7127,8 @@ void bench_eccEncrypt(int curveId)
do {
for (i = 0; i < ntimes; i++) {
/* encrypt msg to B */
- ret = wc_ecc_encrypt(&userA, &userB, msg, sizeof(msg), out, &outSz,
- NULL);
+ ret = wc_ecc_encrypt(&userA, &userB, msg, sizeof(msg),
+ out, &outSz, NULL);
if (ret != 0) {
printf("wc_ecc_encrypt failed! %d\n", ret);
goto exit_enc;
@@ -6804,8 +7136,10 @@ void bench_eccEncrypt(int curveId)
}
count += i;
} while (bench_stats_check(start));
+
exit_enc:
- (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECC [%15s]", wc_ecc_get_name(curveId));
+ (void)XSNPRINTF(name, BENCH_ECC_NAME_SZ, "ECC [%15s]",
+ wc_ecc_get_name(curveId));
bench_stats_asym_finish(name, keySize * 8, desc[6], 0, count, start, ret);
bench_stats_start(&count, &start);
@@ -7313,6 +7647,7 @@ void bench_eccsi(void)
for (i = 0; i < genTimes; i++) {
ret = wc_VerifyEccsiHash(&genKey, WC_HASH_TYPE_SHA256, msg,
sizeof(msg), sig, sigSz, &verified);
+
if (ret != 0 || !verified) {
printf("wc_VerifyEccsiHash failed: %d (verified: %d)\n", ret,
verified);
@@ -7455,15 +7790,17 @@ void bench_sakke(void)
bench_stats_start(&count, &start);
do {
for (i = 0; i < genTimes; i++) {
- ret = wc_MakeSakkeEncapsulatedSSV(&genKey, WC_HASH_TYPE_SHA256, ssv,
- sizeof(ssv), auth, &authSz);
+ ret = wc_MakeSakkeEncapsulatedSSV(&genKey,
+ WC_HASH_TYPE_SHA256,
+ ssv, sizeof(ssv), auth, &authSz);
if (ret != 0) {
printf("wc_MakeSakkeEncapsulatedSSV failed: %d\n", ret);
break;
}
- }
+ } /* for */
count += i;
} while (bench_stats_check(start));
+
bench_stats_asym_finish_ex("SAKKE", 1024, desc[9], "-1",
0, count, start, 0);
@@ -7498,8 +7835,9 @@ void bench_sakke(void)
bench_stats_start(&count, &start);
do {
for (i = 0; i < genTimes; i++) {
- ret = wc_MakeSakkeEncapsulatedSSV(&genKey, WC_HASH_TYPE_SHA256, ssv,
- sizeof(ssv), auth, &authSz);
+ ret = wc_MakeSakkeEncapsulatedSSV(&genKey,
+ WC_HASH_TYPE_SHA256, ssv,
+ sizeof(ssv), auth, &authSz);
if (ret != 0) {
printf("wc_MakeSakkeEncapsulatedSSV failed: %d\n", ret);
break;
@@ -7507,6 +7845,7 @@ void bench_sakke(void)
}
count += i;
} while (bench_stats_check(start));
+
bench_stats_asym_finish_ex("SAKKE", 1024, desc[9], "-2", 0,
count, start, 0);
@@ -7527,6 +7866,7 @@ void bench_sakke(void)
if (ret != 0) break;
count += i;
} while (bench_stats_check(start));
+
bench_stats_asym_finish_ex("SAKKE", 1024, desc[10], "-2", 0,
count, start, 0);
@@ -7581,215 +7921,7 @@ void bench_sakke(void)
#endif /* WOLFCRYPT_SAKKE_CLIENT */
#endif /* WOLFCRYPT_HAVE_SAKKE */
-#if defined(HAVE_PQC) && (defined(HAVE_LIBOQS) || defined(HAVE_PQM4))
-static void bench_pqcKemInit(word32 alg, byte **priv_key, byte **pub_key,
- const char **wolf_name, OQS_KEM **kem)
-{
- int i;
- const char *pqc_name = NULL;
-
- *pub_key = NULL;
- *priv_key = NULL;
-
- for (i=0; bench_pq_asym_opt[i].str != NULL; i++) {
- if (alg == bench_pq_asym_opt[i].val) {
-#ifdef HAVE_LIBOQS
- pqc_name = bench_pq_asym_opt[i].pqc_name;
-#endif
- *wolf_name = bench_pq_asym_opt[i].str;
- break;
- }
- }
-
-#ifdef HAVE_LIBOQS
- if (pqc_name == NULL) {
- printf("Bad OQS Alg specified\n");
- return;
- }
-
- *kem = OQS_KEM_new(pqc_name);
- if (*kem == NULL) {
- printf("OQS_KEM_new() failed\n");
- return;
- }
-
- *pub_key = (byte*)XMALLOC((*kem)->length_public_key, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-
- *priv_key = (byte*)XMALLOC((*kem)->length_secret_key, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-
-#endif
-#ifdef HAVE_PQM4
- *pub_key = (byte*)XMALLOC(PQM4_PUBLIC_KEY_LENGTH, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-
- *priv_key = (byte*)XMALLOC(PQM4_PRIVATE_KEY_LENGTH, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
- (void)pqc_name;
-#endif
-}
-
-void bench_pqcKemKeygen(word32 alg)
-{
- const char *wolf_name = NULL;
- OQS_KEM* kem = NULL;
- double start;
- int i, count, ret;
- byte *priv_key;
- byte *pub_key;
-
- bench_pqcKemInit(alg, &priv_key, &pub_key, &wolf_name, &kem);
-
- if (wolf_name == NULL || pub_key == NULL ||
-#ifdef HAVE_LIBOQS
- kem == NULL ||
-#endif
- priv_key == NULL) {
- printf("bench_pqcKemInit() failed\n");
- goto exit;
- }
-
- bench_stats_start(&count, &start);
- do {
- for (i = 0; i < genTimes; i++) {
-#ifdef HAVE_LIBOQS
- ret = OQS_KEM_keypair(kem, pub_key, priv_key);
- if (ret != OQS_SUCCESS) {
- printf("OQS_KEM_keypair() failed: %d\n", ret);
- goto exit;
- }
-#endif
-#ifdef HAVE_PQM4
- ret = crypto_kem_keypair(pub_key, priv_key);
- if (ret != 0) {
- printf("crypto_kem_keypair() failed: %d\n", ret);
- goto exit;
- }
-#endif
- }
- count += i;
- } while (bench_stats_check(start));
-
- /* + 1 gets rid of the leading dash (-) */
- bench_stats_pq_asym_finish(wolf_name + 1, 0, count, start, 0);
-
-exit:
- XFREE(priv_key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(pub_key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
-#ifdef HAVE_LIBOQS
- OQS_KEM_free(kem);
-#endif
-}
-
-void bench_pqcKemEncapDecap(word32 alg)
-{
- const char *wolf_name = NULL;
- OQS_KEM* kem = NULL;
- double start;
- int i, count, ret;
- byte *priv_key;
- byte *pub_key;
- byte *ciphertext = NULL;
- byte *shared_secret = NULL;
-
- bench_pqcKemInit(alg, &priv_key, &pub_key, &wolf_name, &kem);
-
- if (wolf_name == NULL || pub_key == NULL ||
-#ifdef HAVE_LIBOQS
- kem == NULL ||
-#endif
- priv_key == NULL) {
- printf("bench_pqcKemInit() failed\n");
- goto exit;
- }
-
-#ifdef HAVE_LIBOQS
- ret = OQS_KEM_keypair(kem, pub_key, priv_key);
- if (ret != OQS_SUCCESS) {
- printf("OQS_KEM_keypair() failed: %d\n", ret);
- goto exit;
- }
-
- shared_secret = (byte*)XMALLOC(kem->length_shared_secret, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-
- ciphertext = (byte*)XMALLOC(kem->length_ciphertext, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-#endif
-#ifdef HAVE_PQM4
- ret = crypto_kem_keypair(pub_key, priv_key);
- if (ret != 0) {
- printf("crypto_kem_keypair() failed: %d\n", ret);
- goto exit;
- }
-
- shared_secret = (byte*)XMALLOC(PQM4_SHARED_SECRET_LENGTH, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-
- ciphertext = (byte*)XMALLOC(PQM4_CIPHERTEXT_LENGTH, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER);
-#endif
-
- if (shared_secret == NULL || ciphertext == NULL) {
- printf("XMALLOC() failed\n");
- goto exit;
- }
-
-#ifdef HAVE_LIBOQS
- if (ret == OQS_SUCCESS)
-#endif
-#ifdef HAVE_PQM4
- if (ret == 0)
-#endif
- {
- bench_stats_start(&count, &start);
- do {
- for (i = 0; i < agreeTimes; i++) {
-#ifdef HAVE_LIBOQS
- ret = OQS_KEM_encaps(kem, ciphertext, shared_secret, pub_key);
- if (ret != OQS_SUCCESS) {
- printf("OQS_KEM_encaps() failed: %d\n", ret);
- goto exit;
- }
-
- ret = OQS_KEM_decaps(kem, shared_secret, ciphertext, priv_key);
- if (ret != OQS_SUCCESS) {
- printf("OQS_KEM_decaps() failed: %d\n", ret);
- goto exit;
- }
-#endif
-#ifdef HAVE_PQM4
- ret = crypto_kem_enc(ciphertext, shared_secret, pub_key);
- if (ret != 0){
- printf("crypto_kem_enc() failed: %d\n", ret);
- goto exit;
- }
-
- ret = crypto_kem_dec(shared_secret, ciphertext, priv_key);
- if (ret != 0){
- printf("crypto_kem_dec() failed: %d\n", ret);
- goto exit;
- }
-#endif
- }
- count += i;
- } while (bench_stats_check(start));
-
- /* + 1 gets rid of the leading dash (-) */
- bench_stats_pq_asym_finish(wolf_name + 1, 0, count, start, ret);
- }
-
-exit:
- XFREE(ciphertext, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(shared_secret, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(priv_key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(pub_key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
-#ifdef HAVE_LIBOQS
- OQS_KEM_free(kem);
-#endif
-}
-
+#if defined(HAVE_PQC) && defined(HAVE_LIBOQS)
#ifdef HAVE_FALCON
void bench_falconKeySign(byte level)
{
@@ -7856,7 +7988,8 @@ void bench_falconKeySign(byte level)
} while (bench_stats_check(start));
if (ret == 0) {
- bench_stats_asym_finish("FALCON", level, desc[4], 0, count, start, ret);
+ bench_stats_asym_finish("FALCON", level, desc[4], 0,
+ count, start, ret);
}
bench_stats_start(&count, &start);
@@ -7877,7 +8010,8 @@ void bench_falconKeySign(byte level)
} while (bench_stats_check(start));
if (ret == 0) {
- bench_stats_asym_finish("FALCON", level, desc[5], 0, count, start, ret);
+ bench_stats_asym_finish("FALCON", level, desc[5],
+ 0, count, start, ret);
}
wc_falcon_free(&key);
@@ -7885,7 +8019,7 @@ void bench_falconKeySign(byte level)
#endif /* HAVE_FALCON */
#ifdef HAVE_DILITHIUM
-void bench_dilithiumKeySign(byte level, byte sym)
+void bench_dilithiumKeySign(byte level)
{
int ret = 0;
dilithium_key key;
@@ -7902,40 +8036,25 @@ void bench_dilithiumKeySign(byte level, byte sym)
return;
}
- ret = wc_dilithium_set_level_and_sym(&key, level, sym);
+ ret = wc_dilithium_set_level(&key, level);
if (ret != 0) {
- printf("wc_dilithium_set_level_and_sym() failed %d\n", ret);
+ printf("wc_dilithium_set_level() failed %d\n", ret);
}
if (ret == 0) {
ret = -1;
- if ((level == 2) && (sym == SHAKE_VARIANT)) {
+ if (level == 2) {
ret = wc_dilithium_import_private_key(bench_dilithium_level2_key,
sizeof_bench_dilithium_level2_key, NULL, 0, &key);
}
- else if ((level == 3) && (sym == SHAKE_VARIANT)) {
+ else if (level == 3) {
ret = wc_dilithium_import_private_key(bench_dilithium_level3_key,
sizeof_bench_dilithium_level3_key, NULL, 0, &key);
}
- else if ((level == 5) && (sym == SHAKE_VARIANT)) {
+ else if (level == 5) {
ret = wc_dilithium_import_private_key(bench_dilithium_level5_key,
sizeof_bench_dilithium_level5_key, NULL, 0, &key);
}
- else if ((level == 2) && (sym == AES_VARIANT)) {
- ret = wc_dilithium_import_private_key(
- bench_dilithium_aes_level2_key,
- sizeof_bench_dilithium_level2_key, NULL, 0, &key);
- }
- else if ((level == 3) && (sym == AES_VARIANT)) {
- ret = wc_dilithium_import_private_key(
- bench_dilithium_aes_level3_key,
- sizeof_bench_dilithium_level3_key, NULL, 0, &key);
- }
- else if ((level == 5) && (sym == AES_VARIANT)) {
- ret = wc_dilithium_import_private_key(
- bench_dilithium_aes_level5_key,
- sizeof_bench_dilithium_level5_key, NULL, 0, &key);
- }
if (ret != 0) {
printf("wc_dilithium_import_private_key failed %d\n", ret);
@@ -7971,14 +8090,8 @@ void bench_dilithiumKeySign(byte level, byte sym)
} while (bench_stats_check(start));
if (ret == 0) {
- if (sym == SHAKE_VARIANT) {
- bench_stats_asym_finish("DILITHIUM", level, desc[4], 0, count,
- start, ret);
- }
- else {
- bench_stats_asym_finish("DILITHIUM-AES", level, desc[4], 0, count,
- start, ret);
- }
+ bench_stats_asym_finish("DILITHIUM", level, desc[4], 0, count, start,
+ ret);
}
bench_stats_start(&count, &start);
@@ -7986,8 +8099,8 @@ void bench_dilithiumKeySign(byte level, byte sym)
for (i = 0; i < agreeTimes; i++) {
if (ret == 0) {
int verify = 0;
- ret = wc_dilithium_verify_msg(sig, x, msg, sizeof(msg), &verify,
- &key);
+ ret = wc_dilithium_verify_msg(sig, x, msg, sizeof(msg),
+ &verify, &key);
if (ret != 0 || verify != 1) {
printf("wc_dilithium_verify_msg failed %d, verify %d\n",
@@ -8000,14 +8113,8 @@ void bench_dilithiumKeySign(byte level, byte sym)
} while (bench_stats_check(start));
if (ret == 0) {
- if (sym == SHAKE_VARIANT) {
- bench_stats_asym_finish("DILITHIUM", level, desc[5], 0, count,
- start, ret);
- }
- else {
- bench_stats_asym_finish("DILITHIUM-AES", level, desc[5], 0, count,
- start, ret);
- }
+ bench_stats_asym_finish("DILITHIUM", level, desc[5], 0, count, start,
+ ret);
}
wc_dilithium_free(&key);
@@ -8210,7 +8317,7 @@ void bench_sphincsKeySign(byte level, byte optim)
#include "task.h"
#if defined(WOLFSSL_ESPIDF)
- /* proto type definition */
+ /* prototype definition */
int construct_argv();
extern char* __argv[22];
#endif
@@ -8271,7 +8378,9 @@ void bench_sphincsKeySign(byte level, byte optim)
#elif defined(WOLFSSL_DEOS)
double current_time(int reset)
{
- const uint32_t systemTickTimeInHz = 1000000 / systemTickInMicroseconds();
+ const uint32_t systemTickTimeInHz
+ = 1000000 / systemTickInMicroseconds();
+
const volatile uint32_t *systemTickPtr = systemTickPointer();
(void)reset;
@@ -8338,9 +8447,11 @@ void bench_sphincsKeySign(byte level, byte optim)
#elif defined(WOLFSSL_XILINX)
#ifdef XPAR_VERSAL_CIPS_0_PSPMC_0_PSV_CORTEXA72_0_TIMESTAMP_CLK_FREQ
- #define COUNTS_PER_SECOND XPAR_VERSAL_CIPS_0_PSPMC_0_PSV_CORTEXA72_0_TIMESTAMP_CLK_FREQ
+ #define COUNTS_PER_SECOND \
+ XPAR_VERSAL_CIPS_0_PSPMC_0_PSV_CORTEXA72_0_TIMESTAMP_CLK_FREQ
#else
- #define COUNTS_PER_SECOND XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ
+ #define COUNTS_PER_SECOND \
+ XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ
#endif
double current_time(int reset)
@@ -8422,17 +8533,27 @@ void bench_sphincsKeySign(byte level, byte optim)
#if defined(HAVE_GET_CYCLES)
-static WC_INLINE word64 get_intel_cycles(void)
-{
- unsigned int lo_c, hi_c;
- __asm__ __volatile__ (
- "cpuid\n\t"
- "rdtsc"
- : "=a"(lo_c), "=d"(hi_c) /* out */
- : "a"(0) /* in */
- : "%ebx", "%ecx"); /* clobber */
- return ((word64)lo_c) | (((word64)hi_c) << 32);
-}
+ #if defined(WOLFSSL_ESPIDF)
+ static WC_INLINE word64 get_xtensa_cycles(void)
+ {
+ return xthal_get_ccount_ex();
+ }
+
+ /* implement other architectures here */
+
+ #else
+ static WC_INLINE word64 get_intel_cycles(void)
+ {
+ unsigned int lo_c, hi_c;
+ __asm__ __volatile__ (
+ "cpuid\n\t"
+ "rdtsc"
+ : "=a"(lo_c), "=d"(hi_c) /* out */
+ : "a"(0) /* in */
+ : "%ebx", "%ecx"); /* clobber */
+ return ((word64)lo_c) | (((word64)hi_c) << 32);
+ }
+ #endif
#endif /* HAVE_GET_CYCLES */
@@ -8465,9 +8586,8 @@ static void print_alg(const char* str, int* line)
*line = 13;
}
*line += optLen;
- printf(" %s", str);
}
-#endif
+#endif /* WOLFSSL_BENCHMARK_ALL */
/* Display the usage options of the benchmark program. */
static void Usage(void)
@@ -8546,7 +8666,7 @@ static void Usage(void)
for (i=0; bench_other_opt[i].str != NULL; i++)
print_alg(bench_other_opt[i].str + 1, &line);
printf("\n ");
-#if defined(HAVE_PQC) && (defined(HAVE_LIBOQS) || defined(HAVE_PQM4))
+#if defined(HAVE_PQC) && defined(HAVE_LIBOQS)
line = 13;
for (i=0; bench_pq_asym_opt[i].str != NULL; i++)
print_alg(bench_pq_asym_opt[i].str + 1, &line);
@@ -8558,9 +8678,9 @@ static void Usage(void)
#endif /* HAVE_PQC */
#endif /* !WOLFSSL_BENCHMARK_ALL */
e++;
- printf("%s", bench_Usage_msg1[lng_index][e++]); /* option -lng */
- printf("%s", bench_Usage_msg1[lng_index][e++]); /* option */
- printf("%s", bench_Usage_msg1[lng_index][e++]); /* option -blocks */
+ printf("%s", bench_Usage_msg1[lng_index][e++]); /* option -lng */
+ printf("%s", bench_Usage_msg1[lng_index][e++]); /* option */
+ printf("%s", bench_Usage_msg1[lng_index][e++]); /* option -blocks */
#ifdef WC_ENABLE_BENCH_THREADING
printf("%s", bench_Usage_msg1[lng_index][e]); /* option -threads */
#endif
@@ -8581,19 +8701,34 @@ static int string_matches(const char* arg, const char* str)
}
#endif /* MAIN_NO_ARGS */
+/*
+** ----------------------------------------------------------------------------
+** determine how the benchmarks are called, the function name varies:
+** ----------------------------------------------------------------------------
+*/
#if !defined(NO_MAIN_DRIVER) && !defined(NO_MAIN_FUNCTION)
-#if defined(WOLFSSL_ESPIDF) || defined(_WIN32_WCE)
-int wolf_benchmark_task(void)
-#elif defined(MAIN_NO_ARGS)
-int main()
-#else
-int main(int argc, char** argv)
-#endif
+ #if defined(WOLFSSL_ESPIDF) || defined(_WIN32_WCE)
+
+ /* for some environments, we'll call a function wolf_benchmark_task: */
+ int wolf_benchmark_task(void)
+
+ #elif defined(MAIN_NO_ARGS)
+
+ /* otherwise we'll use main() with no arguments as desired: */
+ int main()
+
+ #else
+
+ /* else we'll be calling main with default arg parameters */
+ int main(int argc, char** argv)
+
+ #endif
{
-#ifdef WOLFSSL_ESPIDF
- int argc = construct_argv();
- char** argv = (char**)__argv;
-#endif
+ #ifdef WOLFSSL_ESPIDF
+ int argc = construct_argv();
+ char** argv = (char**)__argv;
+ #endif
+
return wolfcrypt_benchmark_main(argc, argv);
}
#endif /* NO_MAIN_DRIVER && NO_MAIN_FUNCTION */
@@ -8601,11 +8736,12 @@ int main(int argc, char** argv)
int wolfcrypt_benchmark_main(int argc, char** argv)
{
int ret = 0;
+
#ifndef MAIN_NO_ARGS
int optMatched;
-#ifndef WOLFSSL_BENCHMARK_ALL
- int i;
-#endif
+ #ifndef WOLFSSL_BENCHMARK_ALL
+ int i;
+ #endif
#endif
benchmark_static_init(1);
@@ -8619,9 +8755,9 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
#ifndef MAIN_NO_ARGS
while (argc > 1) {
if (string_matches(argv[1], "-?")) {
- if(--argc>1){
+ if (--argc > 1) {
lng_index = XATOI((++argv)[1]);
- if(lng_index<0||lng_index>1) {
+ if (lng_index<0 || lng_index>1) {
lng_index = 0;
}
}
@@ -8631,11 +8767,11 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
else if (string_matches(argv[1], "-lng")) {
argc--;
argv++;
- if(argc>1) {
+ if (argc > 1) {
lng_index = XATOI(argv[1]);
- if(lng_index<0||lng_index>1){
+ if (lng_index<0 || lng_index>1) {
printf("invalid number(%d) is specified. [ :0-1]\n",
- lng_index);
+ lng_index);
lng_index = 0;
}
}
@@ -8691,6 +8827,7 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
csv_format = 1;
}
#endif
+
#ifdef WC_ENABLE_BENCH_THREADING
else if (string_matches(argv[1], "-threads")) {
argc--;
@@ -8750,7 +8887,7 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
optMatched = 1;
}
}
- #if defined(HAVE_PQC) && (defined(HAVE_LIBOQS) || defined(HAVE_PQM4))
+ #if defined(HAVE_PQC) && defined(HAVE_LIBOQS)
/* Known asymmetric post-quantum algorithms */
for (i=0; !optMatched && bench_pq_asym_opt[i].str != NULL; i++) {
if (string_matches(argv[1], bench_pq_asym_opt[i].str)) {
@@ -8759,7 +8896,6 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
optMatched = 1;
}
}
- #if defined(HAVE_LIBOQS)
/* Both bench_pq_asym_opt and bench_pq_asym_opt2 are looking for
* -pq, so we need to do a special case for -pq since optMatched
* was set to 1 just above. */
@@ -8775,7 +8911,6 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
optMatched = 1;
}
}
- #endif /* HAVE_LIBOQS*/
#endif /* HAVE_PQC */
/* Other known cryptographic algorithms */
for (i=0; !optMatched && bench_other_opt[i].str != NULL; i++) {
@@ -8801,6 +8936,13 @@ int wolfcrypt_benchmark_main(int argc, char** argv)
}
#endif /* MAIN_NO_ARGS */
+#if defined(WOLFSSL_BENCHMARK_FIXED_CSV)
+ /* when defined, we'll always output CSV regardless of params.
+ ** this is typically convenient in embedded environments.
+ */
+ csv_format = 1;
+#endif
+
#if defined(WC_ENABLE_BENCH_THREADING) && !defined(WOLFSSL_ASYNC_CRYPT)
if (g_threadCount > 1) {
ret = benchmark_test_threaded(NULL);
diff --git a/wolfcrypt/benchmark/benchmark.h b/wolfcrypt/benchmark/benchmark.h
index eb89fd6919..e8f471ae75 100644
--- a/wolfcrypt/benchmark/benchmark.h
+++ b/wolfcrypt/benchmark/benchmark.h
@@ -1,6 +1,6 @@
/* wolfcrypt/benchmark/benchmark.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -114,10 +114,8 @@ void bench_blake2b(void);
void bench_blake2s(void);
void bench_pbkdf2(void);
void bench_falconKeySign(byte level);
-void bench_dilithiumKeySign(byte level, byte sym);
+void bench_dilithiumKeySign(byte level);
void bench_sphincsKeySign(byte level, byte optim);
-void bench_pqcKemKeygen(word32 alg);
-void bench_pqcKemEncapDecap(word32 alg);
void bench_stats_print(void);
diff --git a/wolfcrypt/benchmark/include.am b/wolfcrypt/benchmark/include.am
index 7914f4f287..dc2b71c416 100644
--- a/wolfcrypt/benchmark/include.am
+++ b/wolfcrypt/benchmark/include.am
@@ -6,8 +6,8 @@ if BUILD_BENCHMARK
noinst_PROGRAMS += wolfcrypt/benchmark/benchmark
wolfcrypt_benchmark_benchmark_SOURCES = wolfcrypt/benchmark/benchmark.c
-wolfcrypt_benchmark_benchmark_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-wolfcrypt_benchmark_benchmark_DEPENDENCIES = src/libwolfssl.la
+wolfcrypt_benchmark_benchmark_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+wolfcrypt_benchmark_benchmark_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
noinst_HEADERS += wolfcrypt/benchmark/benchmark.h
endif
@@ -17,8 +17,8 @@ if BUILD_WOLFCRYPT_TESTS_LIBS
lib_LTLIBRARIES += wolfcrypt/benchmark/libwolfcryptbench.la
wolfcrypt_benchmark_libwolfcryptbench_la_SOURCES = wolfcrypt/benchmark/benchmark.c
wolfcrypt_benchmark_libwolfcryptbench_la_CPPFLAGS = -DNO_MAIN_DRIVER
-wolfcrypt_benchmark_libwolfcryptbench_la_LIBADD = src/libwolfssl.la
-wolfcrypt_benchmark_libwolfcryptbench_la_DEPENDENCIES = src/libwolfssl.la
+wolfcrypt_benchmark_libwolfcryptbench_la_LIBADD = src/libwolfssl@LIBSUFFIX@.la
+wolfcrypt_benchmark_libwolfcryptbench_la_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += wolfcrypt/benchmark/benchmark.sln
diff --git a/wolfcrypt/src/aes.c b/wolfcrypt/src/aes.c
index a514bfe877..5ebb30b368 100644
--- a/wolfcrypt/src/aes.c
+++ b/wolfcrypt/src/aes.c
@@ -1,6 +1,6 @@
/* aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/aes_asm.S b/wolfcrypt/src/aes_asm.S
index f5037f2095..89ebc7bebf 100644
--- a/wolfcrypt/src/aes_asm.S
+++ b/wolfcrypt/src/aes_asm.S
@@ -1,6 +1,6 @@
/* aes_asm.S
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/aes_asm.asm b/wolfcrypt/src/aes_asm.asm
index bef99b2013..aa2fa4b412 100644
--- a/wolfcrypt/src/aes_asm.asm
+++ b/wolfcrypt/src/aes_asm.asm
@@ -1,6 +1,6 @@
; /* aes_asm.asm
; *
-; * Copyright (C) 2006-2022 wolfSSL Inc.
+; * Copyright (C) 2006-2023 wolfSSL Inc.
; *
; * This file is part of wolfSSL.
; *
diff --git a/wolfcrypt/src/aes_gcm_asm.S b/wolfcrypt/src/aes_gcm_asm.S
index 3fcf89fe50..7624bd9a7f 100644
--- a/wolfcrypt/src/aes_gcm_asm.S
+++ b/wolfcrypt/src/aes_gcm_asm.S
@@ -1,6 +1,6 @@
/* aes_gcm_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/aes_gcm_x86_asm.S b/wolfcrypt/src/aes_gcm_x86_asm.S
index 92e7c0bf31..c428a1c45b 100644
--- a/wolfcrypt/src/aes_gcm_x86_asm.S
+++ b/wolfcrypt/src/aes_gcm_x86_asm.S
@@ -1,6 +1,6 @@
/* aes_gcm_x86_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/arc4.c b/wolfcrypt/src/arc4.c
index 479e381854..af298a0d2d 100644
--- a/wolfcrypt/src/arc4.c
+++ b/wolfcrypt/src/arc4.c
@@ -1,6 +1,6 @@
/* arc4.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/asm.c b/wolfcrypt/src/asm.c
index 77c4d74bed..5b9d1ffd7b 100644
--- a/wolfcrypt/src/asm.c
+++ b/wolfcrypt/src/asm.c
@@ -1,6 +1,6 @@
/* asm.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c
index e34b0c1d37..8c859ddd2a 100644
--- a/wolfcrypt/src/asn.c
+++ b/wolfcrypt/src/asn.c
@@ -1,6 +1,6 @@
/* asn.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -4010,18 +4010,6 @@ static word32 SetBitString16Bit(word16 val, byte* output)
/* Dilithium Level 5: 1.3.6.1.4.1.2.267.7.8.7 */
static const byte sigDilithium_Level5Oid[] =
{43, 6, 1, 4, 1, 2, 130, 11, 7, 8, 7};
-
- /* Dilithium AES Level 2: 1.3.6.1.4.1.2.267.11.4.4 */
- static const byte sigDilithiumAes_Level2Oid[] =
- {43, 6, 1, 4, 1, 2, 130, 11, 11, 4, 4};
-
- /* Dilithium AES Level 3: 1.3.6.1.4.1.2.267.11.6.5 */
- static const byte sigDilithiumAes_Level3Oid[] =
- {43, 6, 1, 4, 1, 2, 130, 11, 11, 6, 5};
-
- /* Dilithium AES Level 5: 1.3.6.1.4.1.2.267.11.8.7 */
- static const byte sigDilithiumAes_Level5Oid[] =
- {43, 6, 1, 4, 1, 2, 130, 11, 11, 8, 7};
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
/* Sphincs Fast Level 1: 1 3 9999 6 7 4 */
@@ -4098,18 +4086,6 @@ static word32 SetBitString16Bit(word16 val, byte* output)
/* Dilithium Level 5: 1.3.6.1.4.1.2.267.7.8.7 */
static const byte keyDilithium_Level5Oid[] =
{43, 6, 1, 4, 1, 2, 130, 11, 7, 8, 7};
-
- /* Dilithium AES Level 2: 1.3.6.1.4.1.2.267.11.4.4 */
- static const byte keyDilithiumAes_Level2Oid[] =
- {43, 6, 1, 4, 1, 2, 130, 11, 11, 4, 4};
-
- /* Dilithium AES Level 3: 1.3.6.1.4.1.2.267.11.6.5 */
- static const byte keyDilithiumAes_Level3Oid[] =
- {43, 6, 1, 4, 1, 2, 130, 11, 11, 6, 5};
-
- /* Dilithium AES Level 5: 1.3.6.1.4.1.2.267.11.8.7 */
- static const byte keyDilithiumAes_Level5Oid[] =
- {43, 6, 1, 4, 1, 2, 130, 11, 11, 8, 7};
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
/* Sphincs Fast Level 1: 1 3 9999 6 7 4 */
@@ -4657,18 +4633,6 @@ const byte* OidFromId(word32 id, word32 type, word32* oidSz)
oid = sigDilithium_Level5Oid;
*oidSz = sizeof(sigDilithium_Level5Oid);
break;
- case CTC_DILITHIUM_AES_LEVEL2:
- oid = sigDilithiumAes_Level2Oid;
- *oidSz = sizeof(sigDilithiumAes_Level2Oid);
- break;
- case CTC_DILITHIUM_AES_LEVEL3:
- oid = sigDilithiumAes_Level3Oid;
- *oidSz = sizeof(sigDilithiumAes_Level3Oid);
- break;
- case CTC_DILITHIUM_AES_LEVEL5:
- oid = sigDilithiumAes_Level5Oid;
- *oidSz = sizeof(sigDilithiumAes_Level5Oid);
- break;
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
case CTC_SPHINCS_FAST_LEVEL1:
@@ -4782,18 +4746,6 @@ const byte* OidFromId(word32 id, word32 type, word32* oidSz)
oid = keyDilithium_Level5Oid;
*oidSz = sizeof(keyDilithium_Level5Oid);
break;
- case DILITHIUM_AES_LEVEL2k:
- oid = keyDilithiumAes_Level2Oid;
- *oidSz = sizeof(keyDilithiumAes_Level2Oid);
- break;
- case DILITHIUM_AES_LEVEL3k:
- oid = keyDilithiumAes_Level3Oid;
- *oidSz = sizeof(keyDilithiumAes_Level3Oid);
- break;
- case DILITHIUM_AES_LEVEL5k:
- oid = keyDilithiumAes_Level5Oid;
- *oidSz = sizeof(keyDilithiumAes_Level5Oid);
- break;
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
case SPHINCS_FAST_LEVEL1k:
@@ -5703,32 +5655,15 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
#if defined(HAVE_PQC) && defined(HAVE_LIBOQS)
/* Since we are summing it up, there could be collisions...and indeed there
- * are:
+ * are: SPHINCS_FAST_LEVEL1 and SPHINCS_FAST_LEVEL3.
*
- * DILITHIUM_LEVEL5
- * 1.3.6.1.4.1.2.267.7.6.7
- * {43, 6, 1, 4, 1, 2, 130, 11, 7, 8, 7}
- * -> 220
- * DILITHIUM_AES_LEVEL3
- * 1.3.6.1.4.1.2.267.11.4.5
- * {43, 6, 1, 4, 1, 2, 130, 11, 11, 6, 5}
- * -> 220
- *
- * As a small hack, we're going to look for the special case of
- * DILITHIUM_AES_LEVEL3k and if we find it, instead of *oid being set to 220
- * we will set it to 221. Note that DILITHIUM_AES_LEVEL3k is defined as 221.
- *
- * Same thing for SPHINCS_FAST_LEVEL1 and SPHINCS_FAST_LEVEL3. We will look
- * for the special case of SPHINCS_FAST_LEVEL3 and set *oid to 283 instead
- * of 281; 282 is taken.
+ * We will look for the special case of SPHINCS_FAST_LEVEL3 and set *oid to
+ * 283 instead of 281; 282 is taken.
*
* These hacks will hopefully disappear when new standardized OIDs appear.
*/
- if (memcmp(&input[idx], sigDilithiumAes_Level3Oid,
- sizeof(sigDilithiumAes_Level3Oid)) == 0) {
- found_collision = DILITHIUM_AES_LEVEL3k;
- } else if (memcmp(&input[idx], sigSphincsFast_Level3Oid,
- sizeof(sigSphincsFast_Level3Oid)) == 0) {
+ if (memcmp(&input[idx], sigSphincsFast_Level3Oid,
+ sizeof(sigSphincsFast_Level3Oid)) == 0) {
found_collision = SPHINCS_FAST_LEVEL3k;
}
#endif /* HAVE_PQC */
@@ -7362,10 +7297,7 @@ int wc_CheckPrivateKey(const byte* privKey, word32 privKeySz,
#if defined(HAVE_DILITHIUM)
if ((ks == DILITHIUM_LEVEL2k) ||
(ks == DILITHIUM_LEVEL3k) ||
- (ks == DILITHIUM_LEVEL5k) ||
- (ks == DILITHIUM_AES_LEVEL2k) ||
- (ks == DILITHIUM_AES_LEVEL3k) ||
- (ks == DILITHIUM_AES_LEVEL5k)) {
+ (ks == DILITHIUM_LEVEL5k)) {
#ifdef WOLFSSL_SMALL_STACK
dilithium_key* key_pair = NULL;
#else
@@ -7388,22 +7320,13 @@ int wc_CheckPrivateKey(const byte* privKey, word32 privKeySz,
}
if (ks == DILITHIUM_LEVEL2k) {
- ret = wc_dilithium_set_level_and_sym(key_pair, 2, SHAKE_VARIANT);
+ ret = wc_dilithium_set_level(key_pair, 2);
}
else if (ks == DILITHIUM_LEVEL3k) {
- ret = wc_dilithium_set_level_and_sym(key_pair, 3, SHAKE_VARIANT);
+ ret = wc_dilithium_set_level(key_pair, 3);
}
else if (ks == DILITHIUM_LEVEL5k) {
- ret = wc_dilithium_set_level_and_sym(key_pair, 5, SHAKE_VARIANT);
- }
- else if (ks == DILITHIUM_AES_LEVEL2k) {
- ret = wc_dilithium_set_level_and_sym(key_pair, 2, AES_VARIANT);
- }
- else if (ks == DILITHIUM_AES_LEVEL3k) {
- ret = wc_dilithium_set_level_and_sym(key_pair, 3, AES_VARIANT);
- }
- else if (ks == DILITHIUM_AES_LEVEL5k) {
- ret = wc_dilithium_set_level_and_sym(key_pair, 5, AES_VARIANT);
+ ret = wc_dilithium_set_level(key_pair, 5);
}
if (ret < 0) {
@@ -7849,7 +7772,7 @@ int wc_GetKeyOID(byte* key, word32 keySz, const byte** curveOID, word32* oidSz,
if (wc_dilithium_init(dilithium) != 0) {
tmpIdx = 0;
- if (wc_dilithium_set_level_and_sym(dilithium, 2, SHAKE_VARIANT)
+ if (wc_dilithium_set_level(dilithium, 2)
== 0) {
if (wc_Dilithium_PrivateKeyDecode(key, &tmpIdx, dilithium,
keySz) == 0) {
@@ -7859,7 +7782,7 @@ int wc_GetKeyOID(byte* key, word32 keySz, const byte** curveOID, word32* oidSz,
WOLFSSL_MSG("Not Dilithium Level 2 DER key");
}
}
- else if (wc_dilithium_set_level_and_sym(dilithium, 3, SHAKE_VARIANT)
+ else if (wc_dilithium_set_level(dilithium, 3)
== 0) {
if (wc_Dilithium_PrivateKeyDecode(key, &tmpIdx, dilithium,
keySz) == 0) {
@@ -7869,7 +7792,7 @@ int wc_GetKeyOID(byte* key, word32 keySz, const byte** curveOID, word32* oidSz,
WOLFSSL_MSG("Not Dilithium Level 3 DER key");
}
}
- else if (wc_dilithium_set_level_and_sym(dilithium, 5, SHAKE_VARIANT)
+ else if (wc_dilithium_set_level(dilithium, 5)
== 0) {
if (wc_Dilithium_PrivateKeyDecode(key, &tmpIdx, dilithium,
keySz) == 0) {
@@ -7879,36 +7802,6 @@ int wc_GetKeyOID(byte* key, word32 keySz, const byte** curveOID, word32* oidSz,
WOLFSSL_MSG("Not Dilithium Level 5 DER key");
}
}
- else if (wc_dilithium_set_level_and_sym(dilithium, 2, AES_VARIANT)
- == 0) {
- if (wc_Dilithium_PrivateKeyDecode(key, &tmpIdx, dilithium,
- keySz) == 0) {
- *algoID = DILITHIUM_AES_LEVEL2k;
- }
- else {
- WOLFSSL_MSG("Not Dilithium AES Level 2 DER key");
- }
- }
- else if (wc_dilithium_set_level_and_sym(dilithium, 3, AES_VARIANT)
- == 0) {
- if (wc_Dilithium_PrivateKeyDecode(key, &tmpIdx, dilithium,
- keySz) == 0) {
- *algoID = DILITHIUM_AES_LEVEL3k;
- }
- else {
- WOLFSSL_MSG("Not Dilithium AES Level 3 DER key");
- }
- }
- else if (wc_dilithium_set_level_and_sym(dilithium, 5, AES_VARIANT)
- == 0) {
- if (wc_Dilithium_PrivateKeyDecode(key, &tmpIdx, dilithium,
- keySz) == 0) {
- *algoID = DILITHIUM_AES_LEVEL5k;
- }
- else {
- WOLFSSL_MSG("Not Dilithium AES Level 5 DER key");
- }
- }
else {
WOLFSSL_MSG("GetKeyOID dilithium initialization failed");
}
@@ -11812,18 +11705,6 @@ static int GetCertKey(DecodedCert* cert, const byte* source, word32* inOutIdx,
cert->pkCurveOID = DILITHIUM_LEVEL5k;
ret = StoreKey(cert, source, &srcIdx, maxIdx);
break;
- case DILITHIUM_AES_LEVEL2k:
- cert->pkCurveOID = DILITHIUM_AES_LEVEL2k;
- ret = StoreKey(cert, source, &srcIdx, maxIdx);
- break;
- case DILITHIUM_AES_LEVEL3k:
- cert->pkCurveOID = DILITHIUM_AES_LEVEL3k;
- ret = StoreKey(cert, source, &srcIdx, maxIdx);
- break;
- case DILITHIUM_AES_LEVEL5k:
- cert->pkCurveOID = DILITHIUM_AES_LEVEL5k;
- ret = StoreKey(cert, source, &srcIdx, maxIdx);
- break;
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
case SPHINCS_FAST_LEVEL1k:
@@ -13314,7 +13195,8 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType,
cert->subjectEmail = (char*)&input[srcIdx];
cert->subjectEmailLen = strLen;
}
- #if defined(WOLFSSL_HAVE_ISSUER_NAMES)
+ #if defined(WOLFSSL_HAVE_ISSUER_NAMES) && \
+ (defined(WOLFSSL_CERT_GEN) || defined(WOLFSSL_CERT_EXT))
else if (nameType == ISSUER) {
cert->issuerEmail = (char*)&input[srcIdx];
cert->issuerEmailLen = strLen;
@@ -13948,11 +13830,13 @@ int GetFormattedTime(void* currTime, byte* buf, word32 len)
return BUFFER_E;
}
ret = XSPRINTF((char*)buf,
+ "%02d%02d%02d%02d%02d%02dZ", year, mon, day,
+ hour, mini, sec);
#else
ret = XSNPRINTF((char*)buf, len,
- #endif
"%02d%02d%02d%02d%02d%02dZ", year, mon, day,
hour, mini, sec);
+ #endif
}
else {
/* GeneralizedTime */
@@ -13968,11 +13852,13 @@ int GetFormattedTime(void* currTime, byte* buf, word32 len)
return BUFFER_E;
}
ret = XSPRINTF((char*)buf,
+ "%4d%02d%02d%02d%02d%02dZ", year, mon, day,
+ hour, mini, sec);
#else
ret = XSNPRINTF((char*)buf, len,
- #endif
"%4d%02d%02d%02d%02d%02dZ", year, mon, day,
hour, mini, sec);
+ #endif
}
return ret;
@@ -14827,9 +14713,6 @@ static WC_INLINE int IsSigAlgoECC(int algoOID)
|| (algoOID == DILITHIUM_LEVEL2k)
|| (algoOID == DILITHIUM_LEVEL3k)
|| (algoOID == DILITHIUM_LEVEL5k)
- || (algoOID == DILITHIUM_AES_LEVEL2k)
- || (algoOID == DILITHIUM_AES_LEVEL3k)
- || (algoOID == DILITHIUM_AES_LEVEL5k)
#endif
#ifdef HAVE_SPHINCS
|| (algoOID == SPHINCS_FAST_LEVEL1k)
@@ -15150,9 +15033,6 @@ void FreeSignatureCtx(SignatureCtx* sigCtx)
case DILITHIUM_LEVEL2k:
case DILITHIUM_LEVEL3k:
case DILITHIUM_LEVEL5k:
- case DILITHIUM_AES_LEVEL2k:
- case DILITHIUM_AES_LEVEL3k:
- case DILITHIUM_AES_LEVEL5k:
wc_dilithium_free(sigCtx->key.dilithium);
XFREE(sigCtx->key.dilithium, sigCtx->heap,
DYNAMIC_TYPE_DILITHIUM);
@@ -15184,7 +15064,7 @@ void FreeSignatureCtx(SignatureCtx* sigCtx)
sigCtx->state = SIG_STATE_BEGIN;
}
-#ifndef NO_ASN_CRYPT
+#if !defined(NO_ASN_CRYPT) && !defined(NO_HASH_WRAPPER)
static int HashForSignature(const byte* buf, word32 bufSz, word32 sigOID,
byte* digest, int* typeH, int* digestSz, int verify)
{
@@ -15321,9 +15201,6 @@ static int HashForSignature(const byte* buf, word32 bufSz, word32 sigOID,
case CTC_DILITHIUM_LEVEL2:
case CTC_DILITHIUM_LEVEL3:
case CTC_DILITHIUM_LEVEL5:
- case CTC_DILITHIUM_AES_LEVEL2:
- case CTC_DILITHIUM_AES_LEVEL3:
- case CTC_DILITHIUM_AES_LEVEL5:
/* Hashes done in signing operation. */
break;
#endif
@@ -15354,7 +15231,7 @@ static int HashForSignature(const byte* buf, word32 bufSz, word32 sigOID,
return ret;
}
-#endif /* !NO_ASN_CRYPT */
+#endif /* !NO_ASN_CRYPT && !NO_HASH_WRAPPER */
/* Return codes: 0=Success, Negative (see error-crypt.h), ASN_SIG_CONFIRM_E */
static int ConfirmSignature(SignatureCtx* sigCtx,
@@ -15768,8 +15645,8 @@ static int ConfirmSignature(SignatureCtx* sigCtx,
if ((ret = wc_dilithium_init(sigCtx->key.dilithium)) < 0) {
goto exit_cs;
}
- if ((ret = wc_dilithium_set_level_and_sym(
- sigCtx->key.dilithium, 2, SHAKE_VARIANT))
+ if ((ret = wc_dilithium_set_level(
+ sigCtx->key.dilithium, 2))
< 0) {
goto exit_cs;
}
@@ -15793,8 +15670,8 @@ static int ConfirmSignature(SignatureCtx* sigCtx,
if ((ret = wc_dilithium_init(sigCtx->key.dilithium)) < 0) {
goto exit_cs;
}
- if ((ret = wc_dilithium_set_level_and_sym(
- sigCtx->key.dilithium, 3, SHAKE_VARIANT))
+ if ((ret = wc_dilithium_set_level(
+ sigCtx->key.dilithium, 3))
< 0) {
goto exit_cs;
}
@@ -15818,83 +15695,8 @@ static int ConfirmSignature(SignatureCtx* sigCtx,
if ((ret = wc_dilithium_init(sigCtx->key.dilithium)) < 0) {
goto exit_cs;
}
- if ((ret = wc_dilithium_set_level_and_sym(
- sigCtx->key.dilithium, 5, SHAKE_VARIANT))
- < 0) {
- goto exit_cs;
- }
- if ((ret = wc_dilithium_import_public(key, keySz,
- sigCtx->key.dilithium)) < 0) {
- WOLFSSL_MSG("ASN Key import error Dilithium Level 5");
- goto exit_cs;
- }
- break;
- }
- case DILITHIUM_AES_LEVEL2k:
- {
- sigCtx->verify = 0;
- sigCtx->key.dilithium =
- (dilithium_key*)XMALLOC(sizeof(dilithium_key),
- sigCtx->heap,
- DYNAMIC_TYPE_DILITHIUM);
- if (sigCtx->key.dilithium == NULL) {
- ERROR_OUT(MEMORY_E, exit_cs);
- }
- if ((ret = wc_dilithium_init(sigCtx->key.dilithium)) < 0) {
- goto exit_cs;
- }
- if ((ret = wc_dilithium_set_level_and_sym(
- sigCtx->key.dilithium, 2, AES_VARIANT))
- < 0) {
- goto exit_cs;
- }
- if ((ret = wc_dilithium_import_public(key, keySz,
- sigCtx->key.dilithium)) < 0) {
- WOLFSSL_MSG("ASN Key import error Dilithium Level 2");
- goto exit_cs;
- }
- break;
- }
- case DILITHIUM_AES_LEVEL3k:
- {
- sigCtx->verify = 0;
- sigCtx->key.dilithium =
- (dilithium_key*)XMALLOC(sizeof(dilithium_key),
- sigCtx->heap,
- DYNAMIC_TYPE_DILITHIUM);
- if (sigCtx->key.dilithium == NULL) {
- ERROR_OUT(MEMORY_E, exit_cs);
- }
- if ((ret = wc_dilithium_init(sigCtx->key.dilithium)) < 0) {
- goto exit_cs;
- }
- if ((ret = wc_dilithium_set_level_and_sym(
- sigCtx->key.dilithium, 3, AES_VARIANT))
- < 0) {
- goto exit_cs;
- }
- if ((ret = wc_dilithium_import_public(key, keySz,
- sigCtx->key.dilithium)) < 0) {
- WOLFSSL_MSG("ASN Key import error Dilithium Level 5");
- goto exit_cs;
- }
- break;
- }
- case DILITHIUM_AES_LEVEL5k:
- {
- sigCtx->verify = 0;
- sigCtx->key.dilithium =
- (dilithium_key*)XMALLOC(sizeof(dilithium_key),
- sigCtx->heap,
- DYNAMIC_TYPE_DILITHIUM);
- if (sigCtx->key.dilithium == NULL) {
- ERROR_OUT(MEMORY_E, exit_cs);
- }
- if ((ret = wc_dilithium_init(sigCtx->key.dilithium)) < 0) {
- goto exit_cs;
- }
- if ((ret = wc_dilithium_set_level_and_sym(
- sigCtx->key.dilithium, 5, AES_VARIANT))
+ if ((ret = wc_dilithium_set_level(
+ sigCtx->key.dilithium, 5))
< 0) {
goto exit_cs;
}
@@ -16129,7 +15931,7 @@ static int ConfirmSignature(SignatureCtx* sigCtx,
break;
}
#endif /* !NO_DSA && !HAVE_SELFTEST */
- #if defined(HAVE_ECC)
+ #if defined(HAVE_ECC) && defined(HAVE_ECC_VERIFY)
case ECDSAk:
{
#if defined(HAVE_PK_CALLBACKS)
@@ -16187,9 +15989,6 @@ static int ConfirmSignature(SignatureCtx* sigCtx,
case DILITHIUM_LEVEL2k:
case DILITHIUM_LEVEL3k:
case DILITHIUM_LEVEL5k:
- case DILITHIUM_AES_LEVEL2k:
- case DILITHIUM_AES_LEVEL3k:
- case DILITHIUM_AES_LEVEL5k:
{
ret = wc_dilithium_verify_msg(sig, sigSz, buf, bufSz,
&sigCtx->verify,
@@ -16420,39 +16219,6 @@ static int ConfirmSignature(SignatureCtx* sigCtx,
}
break;
}
- case DILITHIUM_AES_LEVEL2k:
- {
- if (sigCtx->verify == 1) {
- ret = 0;
- }
- else {
- WOLFSSL_MSG("DILITHIUM_AES_LEVEL2 Verify didn't match");
- ret = ASN_SIG_CONFIRM_E;
- }
- break;
- }
- case DILITHIUM_AES_LEVEL3k:
- {
- if (sigCtx->verify == 1) {
- ret = 0;
- }
- else {
- WOLFSSL_MSG("DILITHIUM_AES_LEVEL3 Verify didn't match");
- ret = ASN_SIG_CONFIRM_E;
- }
- break;
- }
- case DILITHIUM_AES_LEVEL5k:
- {
- if (sigCtx->verify == 1) {
- ret = 0;
- }
- else {
- WOLFSSL_MSG("DILITHIUM_AES_LEVEL5 Verify didn't match");
- ret = ASN_SIG_CONFIRM_E;
- }
- break;
- }
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
case SPHINCS_FAST_LEVEL1k:
@@ -17504,7 +17270,36 @@ static int DecodeAltNames(const byte* input, int sz, DecodedCert* cert)
#if !defined(WOLFSSL_NO_ASN_STRICT) && !defined(WOLFSSL_FPKI)
/* Verify RFC 5280 Sec 4.2.1.6 rule:
- "The name MUST NOT be a relative URI" */
+ "The name MUST NOT be a relative URI"
+
+ RFC 3986
+ * section 4.3. absolute-URI = scheme ":" heir-part ["?"query]
+ * section 3:
+ hier-part = "//" authority path-abempty
+ / path-absolute
+ / path-rootless
+ / path-empty
+ * section 3.3 --- Path:
+ path-abempty = *( "/" segment )
+ path-absolute = "/" [ segment-nz *( "/" segment ) ]
+ path-rootless = segment-nz *( "/" segment )
+ path-empty = 0
+ segment = *pchar
+ segment-nz = 1*pchar
+ segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
+ ; non-zero-length segment without any colon ":"
+ pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
+
+ Because an empty-path is a valid 'heir-part' a URI that contains a scheme
+ must be an absolute path.
+
+ However, RFC 5280 4.2.16:
+ When the subjectAltName extension contains a URI the name:
+ * MUST NOT be a relative URI
+ * MUST follow the URI syntax in RFC 3986
+ * MUST include both a scheme and a scheme-specific-part (this _might_ mean
+ that path-empty is not valid).
+ */
{
int i;
@@ -17521,10 +17316,8 @@ static int DecodeAltNames(const byte* input, int sz, DecodedCert* cert)
}
}
- /* test if no ':' char was found and test that the next two
- * chars are "//" to match the pattern "://" */
- if (i >= strLen - 2 || (input[idx + i + 1] != '/' ||
- input[idx + i + 2] != '/')) {
+ /* test if scheme is missing or heir-part is empty */
+ if (input[idx + i] != ':' || i == 0 || i == strLen) {
WOLFSSL_MSG("\tAlt Name must be absolute URI");
WOLFSSL_ERROR_VERBOSE(ASN_ALT_NAME_E);
return ASN_ALT_NAME_E;
@@ -22561,13 +22354,6 @@ wcchar END_PUB_KEY = "-----END PUBLIC KEY-----";
wcchar END_DILITHIUM_LEVEL3_PRIV = "-----END DILITHIUM_LEVEL3 PRIVATE KEY-----";
wcchar BEGIN_DILITHIUM_LEVEL5_PRIV = "-----BEGIN DILITHIUM_LEVEL5 PRIVATE KEY-----";
wcchar END_DILITHIUM_LEVEL5_PRIV = "-----END DILITHIUM_LEVEL5 PRIVATE KEY-----";
-
- wcchar BEGIN_DILITHIUM_AES_LEVEL2_PRIV = "-----BEGIN DILITHIUM_AES_LEVEL2 PRIVATE KEY-----";
- wcchar END_DILITHIUM_AES_LEVEL2_PRIV = "-----END DILITHIUM_AES_LEVEL2 PRIVATE KEY-----";
- wcchar BEGIN_DILITHIUM_AES_LEVEL3_PRIV = "-----BEGIN DILITHIUM_AES_LEVEL3 PRIVATE KEY-----";
- wcchar END_DILITHIUM_AES_LEVEL3_PRIV = "-----END DILITHIUM_AES_LEVEL3 PRIVATE KEY-----";
- wcchar BEGIN_DILITHIUM_AES_LEVEL5_PRIV = "-----BEGIN DILITHIUM_AES_LEVEL5 PRIVATE KEY-----";
- wcchar END_DILITHIUM_AES_LEVEL5_PRIV = "-----END DILITHIUM_AES_LEVEL5 PRIVATE KEY-----";
#endif /* HAVE_DILITHIUM */
#if defined(HAVE_SPHINCS)
wcchar BEGIN_SPHINCS_FAST_LEVEL1_PRIV = "-----BEGIN SPHINCS_FAST_LEVEL1 PRIVATE KEY-----";
@@ -22589,6 +22375,7 @@ wcchar END_PUB_KEY = "-----END PUBLIC KEY-----";
const int pem_struct_min_sz = XSTR_SIZEOF("-----BEGIN X509 CRL-----"
"-----END X509 CRL-----");
+#ifdef WOLFSSL_PEM_TO_DER
static WC_INLINE const char* SkipEndOfLineChars(const char* line,
const char* endOfLine)
{
@@ -22599,6 +22386,7 @@ static WC_INLINE const char* SkipEndOfLineChars(const char* line,
}
return line;
}
+#endif
int wc_PemGetHeaderFooter(int type, const char** header, const char** footer)
{
@@ -22708,21 +22496,6 @@ int wc_PemGetHeaderFooter(int type, const char** header, const char** footer)
if (footer) *footer = END_DILITHIUM_LEVEL5_PRIV;
ret = 0;
break;
- case DILITHIUM_AES_LEVEL2_TYPE:
- if (header) *header = BEGIN_DILITHIUM_AES_LEVEL2_PRIV;
- if (footer) *footer = END_DILITHIUM_AES_LEVEL2_PRIV;
- ret = 0;
- break;
- case DILITHIUM_AES_LEVEL3_TYPE:
- if (header) *header = BEGIN_DILITHIUM_AES_LEVEL3_PRIV;
- if (footer) *footer = END_DILITHIUM_AES_LEVEL3_PRIV;
- ret = 0;
- break;
- case DILITHIUM_AES_LEVEL5_TYPE:
- if (header) *header = BEGIN_DILITHIUM_AES_LEVEL5_PRIV;
- if (footer) *footer = END_DILITHIUM_AES_LEVEL5_PRIV;
- ret = 0;
- break;
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
case SPHINCS_FAST_LEVEL1_TYPE:
@@ -27509,10 +27282,7 @@ static int EncodeCert(Cert* cert, DerCert* der, RsaKey* rsaKey, ecc_key* eccKey,
#if defined(HAVE_DILITHIUM)
if ((cert->keyType == DILITHIUM_LEVEL2_KEY) ||
(cert->keyType == DILITHIUM_LEVEL3_KEY) ||
- (cert->keyType == DILITHIUM_LEVEL5_KEY) ||
- (cert->keyType == DILITHIUM_AES_LEVEL2_KEY) ||
- (cert->keyType == DILITHIUM_AES_LEVEL3_KEY) ||
- (cert->keyType == DILITHIUM_AES_LEVEL5_KEY)) {
+ (cert->keyType == DILITHIUM_LEVEL5_KEY)) {
if (dilithiumKey == NULL)
return PUBLIC_KEY_E;
@@ -27999,7 +27769,7 @@ static int MakeSignature(CertSignCtx* certSignCtx, const byte* buf, int sz,
}
#endif /* !NO_RSA */
- #ifdef HAVE_ECC
+ #if defined(HAVE_ECC) && defined(HAVE_ECC_SIGN)
if (!rsaKey && eccKey) {
word32 outSz = sigSz;
@@ -28008,7 +27778,7 @@ static int MakeSignature(CertSignCtx* certSignCtx, const byte* buf, int sz,
if (ret == 0)
ret = outSz;
}
- #endif /* HAVE_ECC */
+ #endif /* HAVE_ECC && HAVE_ECC_SIGN */
#if defined(HAVE_ED25519) && defined(HAVE_ED25519_SIGN)
if (!rsaKey && !eccKey && ed25519Key) {
@@ -28269,24 +28039,12 @@ static int MakeAnyCert(Cert* cert, byte* derBuffer, word32 derSz,
cert->keyType = FALCON_LEVEL5_KEY;
#endif /* HAVE_FALCON */
#ifdef HAVE_DILITHIUM
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == SHAKE_VARIANT))
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2))
cert->keyType = DILITHIUM_LEVEL2_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == SHAKE_VARIANT))
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3))
cert->keyType = DILITHIUM_LEVEL3_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == SHAKE_VARIANT))
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5))
cert->keyType = DILITHIUM_LEVEL5_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == AES_VARIANT))
- cert->keyType = DILITHIUM_AES_LEVEL2_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == AES_VARIANT))
- cert->keyType = DILITHIUM_AES_LEVEL3_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == AES_VARIANT))
- cert->keyType = DILITHIUM_AES_LEVEL5_KEY;
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
else if ((sphincsKey != NULL) && (sphincsKey->level == 1)
@@ -28378,30 +28136,15 @@ static int MakeAnyCert(Cert* cert, byte* derBuffer, word32 derSz,
}
#endif /* HAVE_FALCON */
#ifdef HAVE_DILITHIUM
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == SHAKE_VARIANT)) {
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)) {
cert->keyType = DILITHIUM_LEVEL2_KEY;
}
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == SHAKE_VARIANT)) {
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)) {
cert->keyType = DILITHIUM_LEVEL3_KEY;
}
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == SHAKE_VARIANT)) {
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)) {
cert->keyType = DILITHIUM_LEVEL5_KEY;
}
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == AES_VARIANT)) {
- cert->keyType = DILITHIUM_AES_LEVEL2_KEY;
- }
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == AES_VARIANT)) {
- cert->keyType = DILITHIUM_AES_LEVEL3_KEY;
- }
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == AES_VARIANT)) {
- cert->keyType = DILITHIUM_AES_LEVEL5_KEY;
- }
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
else if ((sphincsKey != NULL) && (sphincsKey->level == 1)
@@ -28692,12 +28435,6 @@ int wc_MakeCert_ex(Cert* cert, byte* derBuffer, word32 derSz, int keyType,
dilithiumKey = (dilithium_key*)key;
else if (keyType == DILITHIUM_LEVEL5_TYPE)
dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL2_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL3_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL5_TYPE)
- dilithiumKey = (dilithium_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL1_TYPE)
sphincsKey = (sphincs_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL3_TYPE)
@@ -28998,10 +28735,7 @@ static int EncodeCertReq(Cert* cert, DerCert* der, RsaKey* rsaKey,
#if defined(HAVE_DILITHIUM)
if ((cert->keyType == DILITHIUM_LEVEL2_KEY) ||
(cert->keyType == DILITHIUM_LEVEL3_KEY) ||
- (cert->keyType == DILITHIUM_LEVEL5_KEY) ||
- (cert->keyType == DILITHIUM_AES_LEVEL2_KEY) ||
- (cert->keyType == DILITHIUM_AES_LEVEL3_KEY) ||
- (cert->keyType == DILITHIUM_AES_LEVEL5_KEY)) {
+ (cert->keyType == DILITHIUM_LEVEL5_KEY)) {
if (dilithiumKey == NULL)
return PUBLIC_KEY_E;
der->publicKeySz = wc_Dilithium_PublicKeyToDer(dilithiumKey,
@@ -29334,24 +29068,12 @@ static int MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz,
cert->keyType = FALCON_LEVEL5_KEY;
#endif /* HAVE_FALCON */
#ifdef HAVE_DILITHIUM
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == SHAKE_VARIANT))
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2))
cert->keyType = DILITHIUM_LEVEL2_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == SHAKE_VARIANT))
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3))
cert->keyType = DILITHIUM_LEVEL3_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == SHAKE_VARIANT))
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5))
cert->keyType = DILITHIUM_LEVEL5_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == AES_VARIANT))
- cert->keyType = DILITHIUM_AES_LEVEL2_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == AES_VARIANT))
- cert->keyType = DILITHIUM_AES_LEVEL3_KEY;
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == AES_VARIANT))
- cert->keyType = DILITHIUM_AES_LEVEL5_KEY;
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
else if ((sphincsKey != NULL) && (sphincsKey->level == 1)
@@ -29444,30 +29166,15 @@ static int MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz,
}
#endif /* HAVE_FALCON */
#ifdef HAVE_DILITHIUM
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == SHAKE_VARIANT)) {
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)) {
cert->keyType = DILITHIUM_LEVEL2_KEY;
}
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == SHAKE_VARIANT)) {
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)) {
cert->keyType = DILITHIUM_LEVEL3_KEY;
}
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == SHAKE_VARIANT)) {
+ else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)) {
cert->keyType = DILITHIUM_LEVEL5_KEY;
}
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 2)
- && (dilithiumKey->sym == AES_VARIANT)) {
- cert->keyType = DILITHIUM_AES_LEVEL2_KEY;
- }
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 3)
- && (dilithiumKey->sym == AES_VARIANT)) {
- cert->keyType = DILITHIUM_AES_LEVEL3_KEY;
- }
- else if ((dilithiumKey != NULL) && (dilithiumKey->level == 5)
- && (dilithiumKey->sym == AES_VARIANT)) {
- cert->keyType = DILITHIUM_AES_LEVEL5_KEY;
- }
#endif /* HAVE_DILITHIUM */
#ifdef HAVE_SPHINCS
else if ((sphincsKey != NULL) && (sphincsKey->level == 1)
@@ -29665,12 +29372,6 @@ int wc_MakeCertReq_ex(Cert* cert, byte* derBuffer, word32 derSz, int keyType,
dilithiumKey = (dilithium_key*)key;
else if (keyType == DILITHIUM_LEVEL5_TYPE)
dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL2_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL3_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL5_TYPE)
- dilithiumKey = (dilithium_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL1_TYPE)
sphincsKey = (sphincs_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL3_TYPE)
@@ -29809,12 +29510,6 @@ int wc_SignCert_ex(int requestSz, int sType, byte* buf, word32 buffSz,
dilithiumKey = (dilithium_key*)key;
else if (keyType == DILITHIUM_LEVEL5_TYPE)
dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL2_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL3_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL5_TYPE)
- dilithiumKey = (dilithium_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL1_TYPE)
sphincsKey = (sphincs_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL3_TYPE)
@@ -29985,12 +29680,6 @@ int wc_SetSubjectKeyIdFromPublicKey_ex(Cert *cert, int keyType, void* key)
dilithiumKey = (dilithium_key*)key;
else if (keyType == DILITHIUM_LEVEL5_TYPE)
dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL2_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL3_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL5_TYPE)
- dilithiumKey = (dilithium_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL1_TYPE)
sphincsKey = (sphincs_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL3_TYPE)
@@ -30044,12 +29733,6 @@ int wc_SetAuthKeyIdFromPublicKey_ex(Cert *cert, int keyType, void* key)
dilithiumKey = (dilithium_key*)key;
else if (keyType == DILITHIUM_LEVEL5_TYPE)
dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL2_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL3_TYPE)
- dilithiumKey = (dilithium_key*)key;
- else if (keyType == DILITHIUM_AES_LEVEL5_TYPE)
- dilithiumKey = (dilithium_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL1_TYPE)
sphincsKey = (sphincs_key*)key;
else if (keyType == SPHINCS_FAST_LEVEL3_TYPE)
@@ -35517,9 +35200,7 @@ static int GetRevoked(RevokedCert* rcert, const byte* buff, word32* idx,
DecodedCRL* dcrl, int maxIdx)
{
#ifndef WOLFSSL_ASN_TEMPLATE
-#ifndef NO_ASN_TIME
int ret;
-#endif
int len;
word32 end;
RevokedCert* rc;
diff --git a/wolfcrypt/src/blake2b.c b/wolfcrypt/src/blake2b.c
index 45fe2aadea..269e7c404b 100644
--- a/wolfcrypt/src/blake2b.c
+++ b/wolfcrypt/src/blake2b.c
@@ -12,7 +12,7 @@
*/
/* blake2b.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/blake2s.c b/wolfcrypt/src/blake2s.c
index 95539a2d9d..2e9f26ab36 100644
--- a/wolfcrypt/src/blake2s.c
+++ b/wolfcrypt/src/blake2s.c
@@ -12,7 +12,7 @@
*/
/* blake2s.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/camellia.c b/wolfcrypt/src/camellia.c
index 719e92cb39..76912b1eb9 100644
--- a/wolfcrypt/src/camellia.c
+++ b/wolfcrypt/src/camellia.c
@@ -27,7 +27,7 @@
/* camellia.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/chacha.c b/wolfcrypt/src/chacha.c
index f53fa4a3de..ae17728f19 100644
--- a/wolfcrypt/src/chacha.c
+++ b/wolfcrypt/src/chacha.c
@@ -1,6 +1,6 @@
/* chacha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/chacha20_poly1305.c b/wolfcrypt/src/chacha20_poly1305.c
index 701687e5b5..08507d8d49 100644
--- a/wolfcrypt/src/chacha20_poly1305.c
+++ b/wolfcrypt/src/chacha20_poly1305.c
@@ -1,6 +1,6 @@
/* chacha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/chacha_asm.S b/wolfcrypt/src/chacha_asm.S
index 42a0971a97..6fafafab9e 100644
--- a/wolfcrypt/src/chacha_asm.S
+++ b/wolfcrypt/src/chacha_asm.S
@@ -1,6 +1,6 @@
/* chacha_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/cmac.c b/wolfcrypt/src/cmac.c
index 2a2ebf6816..587e381ee3 100644
--- a/wolfcrypt/src/cmac.c
+++ b/wolfcrypt/src/cmac.c
@@ -1,6 +1,6 @@
/* cmac.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/coding.c b/wolfcrypt/src/coding.c
index fedd6c48bb..6247263e18 100644
--- a/wolfcrypt/src/coding.c
+++ b/wolfcrypt/src/coding.c
@@ -1,6 +1,6 @@
/* coding.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/compress.c b/wolfcrypt/src/compress.c
index 8ca798f8ca..8de92a13aa 100644
--- a/wolfcrypt/src/compress.c
+++ b/wolfcrypt/src/compress.c
@@ -1,6 +1,6 @@
/* compress.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/cpuid.c b/wolfcrypt/src/cpuid.c
index 238d348269..744bb49868 100644
--- a/wolfcrypt/src/cpuid.c
+++ b/wolfcrypt/src/cpuid.c
@@ -1,6 +1,6 @@
/* cpuid.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/cryptocb.c b/wolfcrypt/src/cryptocb.c
index 091c55872e..38f5af42c2 100644
--- a/wolfcrypt/src/cryptocb.c
+++ b/wolfcrypt/src/cryptocb.c
@@ -1,6 +1,6 @@
/* cryptocb.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/curve25519.c b/wolfcrypt/src/curve25519.c
index 120f7cfde9..33293560f2 100644
--- a/wolfcrypt/src/curve25519.c
+++ b/wolfcrypt/src/curve25519.c
@@ -1,6 +1,6 @@
/* curve25519.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/curve448.c b/wolfcrypt/src/curve448.c
index 0763875682..c8bba158d6 100644
--- a/wolfcrypt/src/curve448.c
+++ b/wolfcrypt/src/curve448.c
@@ -1,6 +1,6 @@
/* curve448.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/des3.c b/wolfcrypt/src/des3.c
index e2753e46ba..3699fbe4c3 100644
--- a/wolfcrypt/src/des3.c
+++ b/wolfcrypt/src/des3.c
@@ -1,6 +1,6 @@
/* des3.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/dh.c b/wolfcrypt/src/dh.c
index a12a86d047..26f1b4ebb6 100644
--- a/wolfcrypt/src/dh.c
+++ b/wolfcrypt/src/dh.c
@@ -1,6 +1,6 @@
/* dh.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/dilithium.c b/wolfcrypt/src/dilithium.c
index cd6570e64f..d50b6db376 100644
--- a/wolfcrypt/src/dilithium.c
+++ b/wolfcrypt/src/dilithium.c
@@ -1,6 +1,6 @@
/* dilithium.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -76,26 +76,16 @@ int wc_dilithium_sign_msg(const byte* in, word32 inLen,
}
if (ret == 0) {
- if ((key->sym == SHAKE_VARIANT) && (key->level == 2)) {
+ if (key->level == 2) {
oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_2);
}
- else if ((key->sym == SHAKE_VARIANT) && (key->level == 3)) {
+ else if (key->level == 3) {
oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_3);
}
- else if ((key->sym == SHAKE_VARIANT) && (key->level == 5)) {
+ else if (key->level == 5) {
oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_5);
}
- else if ((key->sym == AES_VARIANT) && (key->level == 2)) {
- oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_2_aes);
- }
- else if ((key->sym == AES_VARIANT) && (key->level == 3)) {
- oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_3_aes);
- }
- else if ((key->sym == AES_VARIANT) && (key->level == 5)) {
- oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_5_aes);
- }
-
- if (oqssig == NULL) {
+ else {
ret = SIG_TYPE_E;
}
}
@@ -164,26 +154,16 @@ int wc_dilithium_verify_msg(const byte* sig, word32 sigLen, const byte* msg,
}
if (ret == 0) {
- if ((key->sym == SHAKE_VARIANT) && (key->level == 2)) {
+ if (key->level == 2) {
oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_2);
}
- else if ((key->sym == SHAKE_VARIANT) && (key->level == 3)) {
+ else if (key->level == 3) {
oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_3);
}
- else if ((key->sym == SHAKE_VARIANT) && (key->level == 5)) {
+ else if (key->level == 5) {
oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_5);
}
- else if ((key->sym == AES_VARIANT) && (key->level == 2)) {
- oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_2_aes);
- }
- else if ((key->sym == AES_VARIANT) && (key->level == 3)) {
- oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_3_aes);
- }
- else if ((key->sym == AES_VARIANT) && (key->level == 5)) {
- oqssig = OQS_SIG_new(OQS_SIG_alg_dilithium_5_aes);
- }
-
- if (oqssig == NULL) {
+ else {
ret = SIG_TYPE_E;
}
}
@@ -227,10 +207,9 @@ int wc_dilithium_init(dilithium_key* key)
*
* key [out] Dilithium key.
* level [in] Either 2,3 or 5.
- * sym [in] Either SHAKE_VARIANT or AES_VARIANT.
- * returns BAD_FUNC_ARG when key is NULL or level or sym are bad values.
+ * returns BAD_FUNC_ARG when key is NULL or level is a bad values.
*/
-int wc_dilithium_set_level_and_sym(dilithium_key* key, byte level, byte sym)
+int wc_dilithium_set_level(dilithium_key* key, byte level)
{
if (key == NULL) {
return BAD_FUNC_ARG;
@@ -240,25 +219,19 @@ int wc_dilithium_set_level_and_sym(dilithium_key* key, byte level, byte sym)
return BAD_FUNC_ARG;
}
- if (sym != SHAKE_VARIANT && sym != AES_VARIANT) {
- return BAD_FUNC_ARG;
- }
-
key->level = level;
- key->sym = sym;
key->pubKeySet = 0;
key->prvKeySet = 0;
return 0;
}
-/* Get the level and symmetric variant of the dilithium private/public key.
+/* Get the level of the dilithium private/public key.
*
* key [in] Dilithium key.
* level [out] The level.
- * sym [out] The symetric variant. SHAKE_VARIANT or AES_VARIANT.
* returns BAD_FUNC_ARG when key is NULL or level has not been set.
*/
-int wc_dilithium_get_level_and_sym(dilithium_key* key, byte* level, byte* sym)
+int wc_dilithium_get_level(dilithium_key* key, byte* level)
{
if (key == NULL || level == NULL) {
return BAD_FUNC_ARG;
@@ -268,12 +241,7 @@ int wc_dilithium_get_level_and_sym(dilithium_key* key, byte* level, byte* sym)
return BAD_FUNC_ARG;
}
- if (key->sym != SHAKE_VARIANT && key->sym != AES_VARIANT) {
- return BAD_FUNC_ARG;
- }
-
*level = key->level;
- *sym = key->sym;
return 0;
}
@@ -365,10 +333,6 @@ int wc_dilithium_import_public(const byte* in, word32 inLen,
return BAD_FUNC_ARG;
}
- if (key->sym != SHAKE_VARIANT && key->sym != AES_VARIANT) {
- return BAD_FUNC_ARG;
- }
-
if ((key->level == 2) && (inLen != DILITHIUM_LEVEL2_PUB_KEY_SIZE)) {
return BAD_FUNC_ARG;
}
@@ -401,10 +365,6 @@ static int parse_private_key(const byte* priv, word32 privSz,
return BAD_FUNC_ARG;
}
- if (key->sym != SHAKE_VARIANT && key->sym != AES_VARIANT) {
- return BAD_FUNC_ARG;
- }
-
/* At this point, it is still a PKCS8 private key. */
if ((ret = ToTraditionalInline(priv, &idx, privSz)) < 0) {
return ret;
@@ -553,7 +513,8 @@ int wc_dilithium_import_private_key(const byte* priv, word32 privSz,
* BUFFER_E when outLen is less than DILITHIUM_LEVEL2_KEY_SIZE,
* 0 otherwise.
*/
-int wc_dilithium_export_private_only(dilithium_key* key, byte* out, word32* outLen)
+int wc_dilithium_export_private_only(dilithium_key* key, byte* out,
+ word32* outLen)
{
/* sanity checks on arguments */
if ((key == NULL) || (out == NULL) || (outLen == NULL)) {
@@ -564,10 +525,6 @@ int wc_dilithium_export_private_only(dilithium_key* key, byte* out, word32* outL
return BAD_FUNC_ARG;
}
- if (key->sym != SHAKE_VARIANT && key->sym != AES_VARIANT) {
- return BAD_FUNC_ARG;
- }
-
/* check and set up out length */
if ((key->level == 2) && (*outLen < DILITHIUM_LEVEL2_KEY_SIZE)) {
*outLen = DILITHIUM_LEVEL2_KEY_SIZE;
@@ -618,10 +575,6 @@ int wc_dilithium_export_private(dilithium_key* key, byte* out, word32* outLen)
return BAD_FUNC_ARG;
}
- if (key->sym != SHAKE_VARIANT && key->sym != AES_VARIANT) {
- return BAD_FUNC_ARG;
- }
-
if ((key->level == 2) && (*outLen < DILITHIUM_LEVEL2_PRV_KEY_SIZE)) {
*outLen = DILITHIUM_LEVEL2_PRV_KEY_SIZE;
return BUFFER_E;
@@ -817,24 +770,15 @@ int wc_Dilithium_PrivateKeyDecode(const byte* input, word32* inOutIdx,
return BAD_FUNC_ARG;
}
- if ((key->level == 2) && (key->sym == SHAKE_VARIANT)) {
+ if (key->level == 2) {
keytype = DILITHIUM_LEVEL2k;
}
- else if ((key->level == 3) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 3) {
keytype = DILITHIUM_LEVEL3k;
}
- else if ((key->level == 5) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 5) {
keytype = DILITHIUM_LEVEL5k;
}
- if ((key->level == 2) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL2k;
- }
- else if ((key->level == 3) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL3k;
- }
- else if ((key->level == 5) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL5k;
- }
else {
return BAD_FUNC_ARG;
}
@@ -865,24 +809,15 @@ int wc_Dilithium_PublicKeyDecode(const byte* input, word32* inOutIdx,
return BAD_FUNC_ARG;
}
- if ((key->level == 2) && (key->sym == SHAKE_VARIANT)) {
+ if (key->level == 2) {
keytype = DILITHIUM_LEVEL2k;
}
- else if ((key->level == 3) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 3) {
keytype = DILITHIUM_LEVEL3k;
}
- else if ((key->level == 5) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 5) {
keytype = DILITHIUM_LEVEL5k;
}
- if ((key->level == 2) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL2k;
- }
- else if ((key->level == 3) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL3k;
- }
- else if ((key->level == 5) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL5k;
- }
else {
return BAD_FUNC_ARG;
}
@@ -920,24 +855,15 @@ int wc_Dilithium_PublicKeyToDer(dilithium_key* key, byte* output, word32 inLen,
return BAD_FUNC_ARG;
}
- if ((key->level == 2) && (key->sym == SHAKE_VARIANT)) {
+ if (key->level == 2) {
keytype = DILITHIUM_LEVEL2k;
}
- else if ((key->level == 3) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 3) {
keytype = DILITHIUM_LEVEL3k;
}
- else if ((key->level == 5) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 5) {
keytype = DILITHIUM_LEVEL5k;
}
- if ((key->level == 2) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL2k;
- }
- else if ((key->level == 3) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL3k;
- }
- else if ((key->level == 5) && (key->sym == AES_VARIANT)) {
- keytype = DILITHIUM_AES_LEVEL5k;
- }
else {
return BAD_FUNC_ARG;
}
@@ -958,36 +884,21 @@ int wc_Dilithium_KeyToDer(dilithium_key* key, byte* output, word32 inLen)
return BAD_FUNC_ARG;
}
- if ((key->level == 2) && (key->sym == SHAKE_VARIANT)) {
+ if (key->level == 2) {
return SetAsymKeyDer(key->k, DILITHIUM_LEVEL2_KEY_SIZE, key->p,
DILITHIUM_LEVEL2_KEY_SIZE, output, inLen,
DILITHIUM_LEVEL2k);
}
- else if ((key->level == 3) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 3) {
return SetAsymKeyDer(key->k, DILITHIUM_LEVEL3_KEY_SIZE, key->p,
DILITHIUM_LEVEL3_KEY_SIZE, output, inLen,
DILITHIUM_LEVEL3k);
}
- else if ((key->level == 5) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 5) {
return SetAsymKeyDer(key->k, DILITHIUM_LEVEL5_KEY_SIZE, key->p,
DILITHIUM_LEVEL5_KEY_SIZE, output, inLen,
DILITHIUM_LEVEL5k);
}
- else if ((key->level == 2) && (key->sym == AES_VARIANT)) {
- return SetAsymKeyDer(key->k, DILITHIUM_LEVEL2_KEY_SIZE, key->p,
- DILITHIUM_LEVEL2_KEY_SIZE, output, inLen,
- DILITHIUM_AES_LEVEL2k);
- }
- else if ((key->level == 3) && (key->sym == AES_VARIANT)) {
- return SetAsymKeyDer(key->k, DILITHIUM_LEVEL3_KEY_SIZE, key->p,
- DILITHIUM_LEVEL3_KEY_SIZE, output, inLen,
- DILITHIUM_AES_LEVEL3k);
- }
- else if ((key->level == 5) && (key->sym == AES_VARIANT)) {
- return SetAsymKeyDer(key->k, DILITHIUM_LEVEL5_KEY_SIZE, key->p,
- DILITHIUM_LEVEL5_KEY_SIZE, output, inLen,
- DILITHIUM_AES_LEVEL5k);
- }
return BAD_FUNC_ARG;
}
@@ -998,30 +909,18 @@ int wc_Dilithium_PrivateKeyToDer(dilithium_key* key, byte* output, word32 inLen)
return BAD_FUNC_ARG;
}
- if ((key->level == 2) && (key->sym == SHAKE_VARIANT)) {
+ if (key->level == 2) {
return SetAsymKeyDer(key->k, DILITHIUM_LEVEL2_KEY_SIZE, NULL, 0, output,
inLen, DILITHIUM_LEVEL2k);
}
- else if ((key->level == 3) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 3) {
return SetAsymKeyDer(key->k, DILITHIUM_LEVEL3_KEY_SIZE, NULL, 0, output,
inLen, DILITHIUM_LEVEL3k);
}
- else if ((key->level == 5) && (key->sym == SHAKE_VARIANT)) {
+ else if (key->level == 5) {
return SetAsymKeyDer(key->k, DILITHIUM_LEVEL5_KEY_SIZE, NULL, 0, output,
inLen, DILITHIUM_LEVEL5k);
}
- else if ((key->level == 2) && (key->sym == AES_VARIANT)) {
- return SetAsymKeyDer(key->k, DILITHIUM_LEVEL2_KEY_SIZE, NULL, 0, output,
- inLen, DILITHIUM_AES_LEVEL2k);
- }
- else if ((key->level == 3) && (key->sym == AES_VARIANT)) {
- return SetAsymKeyDer(key->k, DILITHIUM_LEVEL3_KEY_SIZE, NULL, 0, output,
- inLen, DILITHIUM_AES_LEVEL3k);
- }
- else if ((key->level == 5) && (key->sym == AES_VARIANT)) {
- return SetAsymKeyDer(key->k, DILITHIUM_LEVEL5_KEY_SIZE, NULL, 0, output,
- inLen, DILITHIUM_AES_LEVEL5k);
- }
return BAD_FUNC_ARG;
}
diff --git a/wolfcrypt/src/dsa.c b/wolfcrypt/src/dsa.c
index ccd9dda8ae..c3effccbdf 100644
--- a/wolfcrypt/src/dsa.c
+++ b/wolfcrypt/src/dsa.c
@@ -1,6 +1,6 @@
/* dsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c
index a34ef0cdd5..9e34611ee4 100644
--- a/wolfcrypt/src/ecc.c
+++ b/wolfcrypt/src/ecc.c
@@ -1,6 +1,6 @@
/* ecc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -225,7 +225,8 @@ ECC Curve Sizes:
/* forward declarations */
static int wc_ecc_new_point_ex(ecc_point** point, void* heap);
static void wc_ecc_del_point_ex(ecc_point* p, void* heap);
-#if defined(WOLFSSL_ECDSA_DETERMINISTIC_K) || defined(WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT)
+#if defined(HAVE_ECC_SIGN) && (defined(WOLFSSL_ECDSA_DETERMINISTIC_K) || \
+ defined(WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT))
static int deterministic_sign_helper(const byte* in, word32 inlen, ecc_key* key);
#endif
@@ -1257,7 +1258,7 @@ const size_t ecc_sets_count = ECC_SET_COUNT - 1;
#endif
-#ifdef HAVE_COMP_KEY
+#if defined(HAVE_COMP_KEY) && defined(HAVE_ECC_KEY_EXPORT)
static int wc_ecc_export_x963_compressed(ecc_key* key, byte* out, word32* outLen);
#endif
@@ -14373,7 +14374,7 @@ int mp_sqrtmod_prime(mp_int* n, mp_int* prime, mp_int* ret)
#endif /* !WOLFSSL_SP_MATH */
#endif /* !WOLFSSL_ATECC508A && !WOLFSSL_ATECC608A && !WOLFSSL_CRYPTOCELL */
-
+#ifdef HAVE_ECC_KEY_EXPORT
/* export public ECC key in ANSI X9.63 format compressed */
static int wc_ecc_export_x963_compressed(ecc_key* key, byte* out, word32* outLen)
{
@@ -14414,7 +14415,7 @@ static int wc_ecc_export_x963_compressed(ecc_key* key, byte* out, word32* outLen
return ret;
}
-
+#endif /* HAVE_ECC_KEY_EXPORT */
#endif /* HAVE_COMP_KEY */
@@ -14479,7 +14480,7 @@ int wc_ecc_set_custom_curve(ecc_key* key, const ecc_set_type* dp)
}
#endif /* WOLFSSL_CUSTOM_CURVES */
-#ifdef HAVE_X963_KDF
+#if defined(HAVE_X963_KDF) && !defined(NO_HASH_WRAPPER)
static WC_INLINE void IncrementX963KdfCounter(byte* inOutCtr)
{
@@ -14581,7 +14582,7 @@ int wc_X963_KDF(enum wc_HashType type, const byte* secret, word32 secretSz,
return ret;
}
-#endif /* HAVE_X963_KDF */
+#endif /* HAVE_X963_KDF && !NO_HASH_WRAPPER */
#ifdef WOLFSSL_SE050
/* Use specified hardware key ID with ecc_key operations. Unlike devId,
diff --git a/wolfcrypt/src/eccsi.c b/wolfcrypt/src/eccsi.c
index eea8dfa863..95f92c79cc 100644
--- a/wolfcrypt/src/eccsi.c
+++ b/wolfcrypt/src/eccsi.c
@@ -1,6 +1,6 @@
/* eccsi.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ed25519.c b/wolfcrypt/src/ed25519.c
index cfdaa079fa..5dee270fae 100644
--- a/wolfcrypt/src/ed25519.c
+++ b/wolfcrypt/src/ed25519.c
@@ -1,6 +1,6 @@
/* ed25519.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ed448.c b/wolfcrypt/src/ed448.c
index cb8a93eeff..3bd9972eaa 100644
--- a/wolfcrypt/src/ed448.c
+++ b/wolfcrypt/src/ed448.c
@@ -1,6 +1,6 @@
/* ed448.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/error.c b/wolfcrypt/src/error.c
index ddf7ae9e44..ca3d2dcac5 100644
--- a/wolfcrypt/src/error.c
+++ b/wolfcrypt/src/error.c
@@ -1,6 +1,6 @@
/* error.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/evp.c b/wolfcrypt/src/evp.c
index 87e82793ff..d831ff93b5 100644
--- a/wolfcrypt/src/evp.c
+++ b/wolfcrypt/src/evp.c
@@ -1,6 +1,6 @@
/* evp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ext_kyber.c b/wolfcrypt/src/ext_kyber.c
index ebb99cde21..6fbfc000e7 100644
--- a/wolfcrypt/src/ext_kyber.c
+++ b/wolfcrypt/src/ext_kyber.c
@@ -1,6 +1,6 @@
/* ext_kyber.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/falcon.c b/wolfcrypt/src/falcon.c
index 6755d3c3e9..ea722a20bc 100644
--- a/wolfcrypt/src/falcon.c
+++ b/wolfcrypt/src/falcon.c
@@ -1,6 +1,6 @@
/* falcon.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fe_448.c b/wolfcrypt/src/fe_448.c
index 99f249ef5a..0dd439ed7d 100644
--- a/wolfcrypt/src/fe_448.c
+++ b/wolfcrypt/src/fe_448.c
@@ -1,6 +1,6 @@
/* fe_448.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fe_low_mem.c b/wolfcrypt/src/fe_low_mem.c
index ad5ad8729e..3556639600 100644
--- a/wolfcrypt/src/fe_low_mem.c
+++ b/wolfcrypt/src/fe_low_mem.c
@@ -1,6 +1,6 @@
/* fe_low_mem.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fe_operations.c b/wolfcrypt/src/fe_operations.c
index a4c66edf8d..bf53da8f50 100644
--- a/wolfcrypt/src/fe_operations.c
+++ b/wolfcrypt/src/fe_operations.c
@@ -1,6 +1,6 @@
/* fe_operations.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fe_x25519_128.i b/wolfcrypt/src/fe_x25519_128.i
index 7116564ac0..69e3dd42e5 100644
--- a/wolfcrypt/src/fe_x25519_128.i
+++ b/wolfcrypt/src/fe_x25519_128.i
@@ -1,6 +1,6 @@
/* fe_x25519_128.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fe_x25519_asm.S b/wolfcrypt/src/fe_x25519_asm.S
index 6ddaa176a2..2cc2c5fdeb 100644
--- a/wolfcrypt/src/fe_x25519_asm.S
+++ b/wolfcrypt/src/fe_x25519_asm.S
@@ -1,6 +1,6 @@
/* fe_x25519_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mont_small.i b/wolfcrypt/src/fp_mont_small.i
index 8b76ecbd93..c0f9092487 100644
--- a/wolfcrypt/src/fp_mont_small.i
+++ b/wolfcrypt/src/fp_mont_small.i
@@ -1,6 +1,6 @@
/* fp_mont_small.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_12.i b/wolfcrypt/src/fp_mul_comba_12.i
index 22927c4bc8..b5840a5d7f 100644
--- a/wolfcrypt/src/fp_mul_comba_12.i
+++ b/wolfcrypt/src/fp_mul_comba_12.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_12.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_17.i b/wolfcrypt/src/fp_mul_comba_17.i
index 2e495645af..8092e4549e 100644
--- a/wolfcrypt/src/fp_mul_comba_17.i
+++ b/wolfcrypt/src/fp_mul_comba_17.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_17.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_20.i b/wolfcrypt/src/fp_mul_comba_20.i
index ac65a33b58..cec9e46e8b 100644
--- a/wolfcrypt/src/fp_mul_comba_20.i
+++ b/wolfcrypt/src/fp_mul_comba_20.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_20.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_24.i b/wolfcrypt/src/fp_mul_comba_24.i
index 0927888338..299ebc41db 100644
--- a/wolfcrypt/src/fp_mul_comba_24.i
+++ b/wolfcrypt/src/fp_mul_comba_24.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_24.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_28.i b/wolfcrypt/src/fp_mul_comba_28.i
index 05d67d573c..13af28df84 100644
--- a/wolfcrypt/src/fp_mul_comba_28.i
+++ b/wolfcrypt/src/fp_mul_comba_28.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_28.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_3.i b/wolfcrypt/src/fp_mul_comba_3.i
index 303bca958e..1ac5622e26 100644
--- a/wolfcrypt/src/fp_mul_comba_3.i
+++ b/wolfcrypt/src/fp_mul_comba_3.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_3.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_32.i b/wolfcrypt/src/fp_mul_comba_32.i
index 8b7dc8f75e..c8d3b6c0cd 100644
--- a/wolfcrypt/src/fp_mul_comba_32.i
+++ b/wolfcrypt/src/fp_mul_comba_32.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_32.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_4.i b/wolfcrypt/src/fp_mul_comba_4.i
index 5ec9945f6c..d4e400224e 100644
--- a/wolfcrypt/src/fp_mul_comba_4.i
+++ b/wolfcrypt/src/fp_mul_comba_4.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_4.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_48.i b/wolfcrypt/src/fp_mul_comba_48.i
index 287fc7573f..a81cec53ad 100644
--- a/wolfcrypt/src/fp_mul_comba_48.i
+++ b/wolfcrypt/src/fp_mul_comba_48.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_48.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_6.i b/wolfcrypt/src/fp_mul_comba_6.i
index 20b3954a8d..67ee873777 100644
--- a/wolfcrypt/src/fp_mul_comba_6.i
+++ b/wolfcrypt/src/fp_mul_comba_6.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_6.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_64.i b/wolfcrypt/src/fp_mul_comba_64.i
index 6535351718..8f75cddafd 100644
--- a/wolfcrypt/src/fp_mul_comba_64.i
+++ b/wolfcrypt/src/fp_mul_comba_64.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_64.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_7.i b/wolfcrypt/src/fp_mul_comba_7.i
index ae05086ff1..a50d30d866 100644
--- a/wolfcrypt/src/fp_mul_comba_7.i
+++ b/wolfcrypt/src/fp_mul_comba_7.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_7.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_8.i b/wolfcrypt/src/fp_mul_comba_8.i
index 73cd5f152c..a0a4d38fcb 100644
--- a/wolfcrypt/src/fp_mul_comba_8.i
+++ b/wolfcrypt/src/fp_mul_comba_8.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_8.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_9.i b/wolfcrypt/src/fp_mul_comba_9.i
index 23636ac331..cf63f82cab 100644
--- a/wolfcrypt/src/fp_mul_comba_9.i
+++ b/wolfcrypt/src/fp_mul_comba_9.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_9.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_mul_comba_small_set.i b/wolfcrypt/src/fp_mul_comba_small_set.i
index bf1089c0dd..1ece3cc465 100644
--- a/wolfcrypt/src/fp_mul_comba_small_set.i
+++ b/wolfcrypt/src/fp_mul_comba_small_set.i
@@ -1,6 +1,6 @@
/* fp_mul_comba_small_set.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_12.i b/wolfcrypt/src/fp_sqr_comba_12.i
index 639eacac87..f542b9129f 100644
--- a/wolfcrypt/src/fp_sqr_comba_12.i
+++ b/wolfcrypt/src/fp_sqr_comba_12.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_12.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_17.i b/wolfcrypt/src/fp_sqr_comba_17.i
index 08476f7357..6987c5757a 100644
--- a/wolfcrypt/src/fp_sqr_comba_17.i
+++ b/wolfcrypt/src/fp_sqr_comba_17.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_17.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_20.i b/wolfcrypt/src/fp_sqr_comba_20.i
index f4bbc09562..bd388d5fde 100644
--- a/wolfcrypt/src/fp_sqr_comba_20.i
+++ b/wolfcrypt/src/fp_sqr_comba_20.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_20.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_24.i b/wolfcrypt/src/fp_sqr_comba_24.i
index 18d309bad9..e57148a3c2 100644
--- a/wolfcrypt/src/fp_sqr_comba_24.i
+++ b/wolfcrypt/src/fp_sqr_comba_24.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_24.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_28.i b/wolfcrypt/src/fp_sqr_comba_28.i
index a26c44f553..78fb8e0164 100644
--- a/wolfcrypt/src/fp_sqr_comba_28.i
+++ b/wolfcrypt/src/fp_sqr_comba_28.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_28.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_3.i b/wolfcrypt/src/fp_sqr_comba_3.i
index 5bdfe85f40..bab8996dd9 100644
--- a/wolfcrypt/src/fp_sqr_comba_3.i
+++ b/wolfcrypt/src/fp_sqr_comba_3.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_3.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_32.i b/wolfcrypt/src/fp_sqr_comba_32.i
index 627746af4f..9ee96c52f1 100644
--- a/wolfcrypt/src/fp_sqr_comba_32.i
+++ b/wolfcrypt/src/fp_sqr_comba_32.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_32.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_4.i b/wolfcrypt/src/fp_sqr_comba_4.i
index 3fc5f81948..d0bae98021 100644
--- a/wolfcrypt/src/fp_sqr_comba_4.i
+++ b/wolfcrypt/src/fp_sqr_comba_4.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_4.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_48.i b/wolfcrypt/src/fp_sqr_comba_48.i
index 16b712f971..a9fa4f8e10 100644
--- a/wolfcrypt/src/fp_sqr_comba_48.i
+++ b/wolfcrypt/src/fp_sqr_comba_48.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_48.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_6.i b/wolfcrypt/src/fp_sqr_comba_6.i
index 4ef67cea18..2e91e69b15 100644
--- a/wolfcrypt/src/fp_sqr_comba_6.i
+++ b/wolfcrypt/src/fp_sqr_comba_6.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_6.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_64.i b/wolfcrypt/src/fp_sqr_comba_64.i
index ddd25fbdf8..a072269cb5 100644
--- a/wolfcrypt/src/fp_sqr_comba_64.i
+++ b/wolfcrypt/src/fp_sqr_comba_64.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_64.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_7.i b/wolfcrypt/src/fp_sqr_comba_7.i
index 7b891ad818..9ae37801df 100644
--- a/wolfcrypt/src/fp_sqr_comba_7.i
+++ b/wolfcrypt/src/fp_sqr_comba_7.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_7.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_8.i b/wolfcrypt/src/fp_sqr_comba_8.i
index 7f9f53865c..c0be97bb52 100644
--- a/wolfcrypt/src/fp_sqr_comba_8.i
+++ b/wolfcrypt/src/fp_sqr_comba_8.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_8.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_9.i b/wolfcrypt/src/fp_sqr_comba_9.i
index a251b1a352..92369de40c 100644
--- a/wolfcrypt/src/fp_sqr_comba_9.i
+++ b/wolfcrypt/src/fp_sqr_comba_9.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_9.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/fp_sqr_comba_small_set.i b/wolfcrypt/src/fp_sqr_comba_small_set.i
index e30eb65810..f8e0a4dc15 100644
--- a/wolfcrypt/src/fp_sqr_comba_small_set.i
+++ b/wolfcrypt/src/fp_sqr_comba_small_set.i
@@ -1,6 +1,6 @@
/* fp_sqr_comba_small_set.i
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ge_448.c b/wolfcrypt/src/ge_448.c
index 9ceea56ad5..fbc1c1f38b 100644
--- a/wolfcrypt/src/ge_448.c
+++ b/wolfcrypt/src/ge_448.c
@@ -1,6 +1,6 @@
/* ge_448.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ge_low_mem.c b/wolfcrypt/src/ge_low_mem.c
index 2076afce62..a941ab473b 100644
--- a/wolfcrypt/src/ge_low_mem.c
+++ b/wolfcrypt/src/ge_low_mem.c
@@ -1,6 +1,6 @@
/* ge_low_mem.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ge_operations.c b/wolfcrypt/src/ge_operations.c
index e09a1cb5e1..95f4f308d5 100644
--- a/wolfcrypt/src/ge_operations.c
+++ b/wolfcrypt/src/ge_operations.c
@@ -1,6 +1,6 @@
/* ge_operations.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/hash.c b/wolfcrypt/src/hash.c
index 9048d00b46..04de18e280 100644
--- a/wolfcrypt/src/hash.c
+++ b/wolfcrypt/src/hash.c
@@ -1,6 +1,6 @@
/* hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/hmac.c b/wolfcrypt/src/hmac.c
index e5fbfcdaf0..11abc58c59 100644
--- a/wolfcrypt/src/hmac.c
+++ b/wolfcrypt/src/hmac.c
@@ -1,6 +1,6 @@
/* hmac.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/include.am b/wolfcrypt/src/include.am
index 6e24df974c..a892035beb 100644
--- a/wolfcrypt/src/include.am
+++ b/wolfcrypt/src/include.am
@@ -130,78 +130,78 @@ $(ASYNC_FILES):
$(AM_V_at)touch $(srcdir)/$@
if BUILD_CRYPTOCB
-src_libwolfssl_la_SOURCES += wolfcrypt/src/cryptocb.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/cryptocb.c
endif
if BUILD_PKCS11
-src_libwolfssl_la_SOURCES += wolfcrypt/src/wc_pkcs11.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_pkcs11.c
endif
if BUILD_DEVCRYPTO
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_ecdsa.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_x25519.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_rsa.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_hmac.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_hash.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_aes.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/devcrypto/wc_devcrypto.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_ecdsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_x25519.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_hmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_hash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/devcrypto_aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/devcrypto/wc_devcrypto.c
endif
if BUILD_CAVIUM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/cavium/cavium_nitrox.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/cavium/cavium_nitrox.c
endif
EXTRA_DIST += wolfcrypt/src/port/cavium/README.md
if BUILD_OCTEON_SYNC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/cavium/cavium_octeon_sync.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/cavium/cavium_octeon_sync.c
endif
EXTRA_DIST += wolfcrypt/src/port/cavium/README_Octeon.md
if BUILD_INTEL_QA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/intel/quickassist.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/intel/quickassist_mem.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/intel/quickassist.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/intel/quickassist_mem.c
endif
EXTRA_DIST += wolfcrypt/src/port/intel/README.md
if BUILD_INTEL_QA_SYNC
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/intel/quickassist_sync.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/intel/quickassist_sync.c
endif
if BUILD_CRYPTOAUTHLIB
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/atmel/atmel.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/atmel/atmel.c
endif
if BUILD_IOTSAFE
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/iotsafe/iotsafe.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/iotsafe/iotsafe.c
endif
if BUILD_CAAM
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_init.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_qnx.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_seco.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_x25519.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_ecdsa.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_cmac.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_aes.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_hash.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_rsa.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_hmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_init.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_qnx.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_seco.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_x25519.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_ecdsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_cmac.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_hash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_rsa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/caam/wolfcaam_hmac.c
endif
if BUILD_SE050
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/nxp/se050_port.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/nxp/se050_port.c
endif
if BUILD_PSA
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/psa/psa.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/psa/psa_hash.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/psa/psa_aes.c
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/psa/psa_pkcbs.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/psa/psa.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/psa/psa_hash.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/psa/psa_aes.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/psa/psa_pkcbs.c
endif
EXTRA_DIST += wolfcrypt/src/port/psa/README.md
if BUILD_MAXQ10XX
-src_libwolfssl_la_SOURCES += wolfcrypt/src/port/maxim/maxq10xx.c
+src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/maxim/maxq10xx.c
endif
EXTRA_DIST += wolfcrypt/src/port/maxim/README.md
diff --git a/wolfcrypt/src/integer.c b/wolfcrypt/src/integer.c
index d6780e6baa..433d1b674a 100644
--- a/wolfcrypt/src/integer.c
+++ b/wolfcrypt/src/integer.c
@@ -1,6 +1,6 @@
/* integer.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/kdf.c b/wolfcrypt/src/kdf.c
index 17ad919b04..d9b9689625 100644
--- a/wolfcrypt/src/kdf.c
+++ b/wolfcrypt/src/kdf.c
@@ -1,6 +1,6 @@
/* kdf.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -54,7 +54,7 @@
#include
-#ifdef WOLFSSL_HAVE_PRF
+#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC)
#ifdef WOLFSSL_SHA512
#define P_HASH_MAX_SIZE WC_SHA512_DIGEST_SIZE
@@ -335,7 +335,7 @@ int wc_PRF_TLS(byte* digest, word32 digLen, const byte* secret, word32 secLen,
return ret;
}
-#endif /* WOLFSSL_HAVE_PRF */
+#endif /* WOLFSSL_HAVE_PRF && !NO_HMAC */
#if defined(HAVE_HKDF) && !defined(NO_HMAC)
diff --git a/wolfcrypt/src/logging.c b/wolfcrypt/src/logging.c
index ef2a76d6db..da198176cb 100644
--- a/wolfcrypt/src/logging.c
+++ b/wolfcrypt/src/logging.c
@@ -1,6 +1,6 @@
/* logging.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/md2.c b/wolfcrypt/src/md2.c
index 47873cd469..480d6937dc 100644
--- a/wolfcrypt/src/md2.c
+++ b/wolfcrypt/src/md2.c
@@ -1,6 +1,6 @@
/* md2.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/md4.c b/wolfcrypt/src/md4.c
index 76910a17a5..68eab5fb2b 100644
--- a/wolfcrypt/src/md4.c
+++ b/wolfcrypt/src/md4.c
@@ -1,6 +1,6 @@
/* md4.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/md5.c b/wolfcrypt/src/md5.c
index 7b849f0482..b84ac5d52a 100644
--- a/wolfcrypt/src/md5.c
+++ b/wolfcrypt/src/md5.c
@@ -1,6 +1,6 @@
/* md5.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/memory.c b/wolfcrypt/src/memory.c
index 6ec10203b4..39639cc337 100644
--- a/wolfcrypt/src/memory.c
+++ b/wolfcrypt/src/memory.c
@@ -1,6 +1,6 @@
/* memory.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/misc.c b/wolfcrypt/src/misc.c
index 1dd5088f46..6568d12883 100644
--- a/wolfcrypt/src/misc.c
+++ b/wolfcrypt/src/misc.c
@@ -1,6 +1,6 @@
/* misc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -834,8 +834,8 @@ WC_STATIC WC_INLINE word32 MakeWordFromHash(const byte* hashID)
#endif /* HAVE_SESSION_TICKET || !NO_CERTS || !NO_SESSION_CACHE */
-#if !defined(WOLFCRYPT_ONLY) && (!defined(NO_SESSION_CACHE) || \
- defined(HAVE_SESSION_TICKET))
+#if !defined(WOLFCRYPT_ONLY) && !defined(NO_HASH_WRAPPER) && \
+ (!defined(NO_SESSION_CACHE) || defined(HAVE_SESSION_TICKET))
#include
@@ -856,7 +856,8 @@ WC_STATIC WC_INLINE word32 HashObject(const byte* o, word32 len, int* error)
return *error == 0 ? MakeWordFromHash(digest) : 0; /* 0 on failure */
}
-#endif /* WOLFCRYPT_ONLY && (!NO_SESSION_CACHE || HAVE_SESSION_TICKET) */
+#endif /* WOLFCRYPT_ONLY && !NO_HASH_WRAPPER &&
+ * (!NO_SESSION_CACHE || HAVE_SESSION_TICKET) */
#undef WC_STATIC
diff --git a/wolfcrypt/src/pkcs12.c b/wolfcrypt/src/pkcs12.c
index c5ff915aaf..f7acfc13e3 100644
--- a/wolfcrypt/src/pkcs12.c
+++ b/wolfcrypt/src/pkcs12.c
@@ -1,6 +1,6 @@
/* pkcs12.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/pkcs7.c b/wolfcrypt/src/pkcs7.c
index 76a17cb0b7..f6ce28affd 100644
--- a/wolfcrypt/src/pkcs7.c
+++ b/wolfcrypt/src/pkcs7.c
@@ -1,6 +1,6 @@
/* pkcs7.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -10078,10 +10078,10 @@ static int wc_PKCS7_DecryptRecipientInfos(PKCS7* pkcs7, byte* in,
#if !defined(NO_PWDBASED) && !defined(NO_SHA)
ret = wc_PKCS7_DecryptPwri(pkcs7, in, inSz, idx,
decryptedKey, decryptedKeySz, recipFound);
+ break;
#else
return NOT_COMPILED_IN;
#endif
- break;
case WC_PKCS7_DECRYPT_ORI:
ret = wc_PKCS7_DecryptOri(pkcs7, in, inSz, idx,
diff --git a/wolfcrypt/src/poly1305.c b/wolfcrypt/src/poly1305.c
index fbebaba5eb..c0ba66afb4 100644
--- a/wolfcrypt/src/poly1305.c
+++ b/wolfcrypt/src/poly1305.c
@@ -1,6 +1,6 @@
/* poly1305.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/poly1305_asm.S b/wolfcrypt/src/poly1305_asm.S
index a6980fb5ed..efe7be5f54 100644
--- a/wolfcrypt/src/poly1305_asm.S
+++ b/wolfcrypt/src/poly1305_asm.S
@@ -1,6 +1,6 @@
/* poly1305_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Espressif/esp32_aes.c b/wolfcrypt/src/port/Espressif/esp32_aes.c
index d3f13c7734..51129b1ab0 100644
--- a/wolfcrypt/src/port/Espressif/esp32_aes.c
+++ b/wolfcrypt/src/port/Espressif/esp32_aes.c
@@ -1,6 +1,6 @@
/* esp32_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Espressif/esp32_mp.c b/wolfcrypt/src/port/Espressif/esp32_mp.c
index 48780fb6ce..c79231e45f 100644
--- a/wolfcrypt/src/port/Espressif/esp32_mp.c
+++ b/wolfcrypt/src/port/Espressif/esp32_mp.c
@@ -1,6 +1,6 @@
/* esp32_mp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Espressif/esp32_sha.c b/wolfcrypt/src/port/Espressif/esp32_sha.c
index 1cc87c730f..2ef06f8ba7 100644
--- a/wolfcrypt/src/port/Espressif/esp32_sha.c
+++ b/wolfcrypt/src/port/Espressif/esp32_sha.c
@@ -1,6 +1,6 @@
/* esp32_sha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Espressif/esp32_util.c b/wolfcrypt/src/port/Espressif/esp32_util.c
index 90d3c617ed..6f2ef11de7 100644
--- a/wolfcrypt/src/port/Espressif/esp32_util.c
+++ b/wolfcrypt/src/port/Espressif/esp32_util.c
@@ -1,6 +1,6 @@
/* esp32_util.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_common.c b/wolfcrypt/src/port/Renesas/renesas_common.c
index 4664c6d8ea..7abec7ff64 100644
--- a/wolfcrypt/src/port/Renesas/renesas_common.c
+++ b/wolfcrypt/src/port/Renesas/renesas_common.c
@@ -1,6 +1,6 @@
/* renesas_common.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_sce_aes.c b/wolfcrypt/src/port/Renesas/renesas_sce_aes.c
index 08e6b46d11..9f73a55a37 100644
--- a/wolfcrypt/src/port/Renesas/renesas_sce_aes.c
+++ b/wolfcrypt/src/port/Renesas/renesas_sce_aes.c
@@ -1,6 +1,6 @@
/* renesas_sce_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_sce_sha.c b/wolfcrypt/src/port/Renesas/renesas_sce_sha.c
index c2c97aab93..37f9adb0ef 100644
--- a/wolfcrypt/src/port/Renesas/renesas_sce_sha.c
+++ b/wolfcrypt/src/port/Renesas/renesas_sce_sha.c
@@ -1,6 +1,6 @@
/* renesas_sce_sha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_sce_util.c b/wolfcrypt/src/port/Renesas/renesas_sce_util.c
index 6742d9b509..1ed11489ec 100644
--- a/wolfcrypt/src/port/Renesas/renesas_sce_util.c
+++ b/wolfcrypt/src/port/Renesas/renesas_sce_util.c
@@ -1,6 +1,6 @@
/* renesas_sce_util.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c b/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c
index 5c6677e43e..b89989686b 100644
--- a/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c
+++ b/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c
@@ -1,6 +1,6 @@
/* renesas_tsip_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c b/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c
index a87d481a99..4de0562c8e 100644
--- a/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c
+++ b/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c
@@ -1,6 +1,6 @@
/* renesas_tsip_sha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/Renesas/renesas_tsip_util.c b/wolfcrypt/src/port/Renesas/renesas_tsip_util.c
index bc7263992e..ef48b34ac2 100644
--- a/wolfcrypt/src/port/Renesas/renesas_tsip_util.c
+++ b/wolfcrypt/src/port/Renesas/renesas_tsip_util.c
@@ -1,6 +1,6 @@
/* renesas_tsip_util.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/af_alg/afalg_aes.c b/wolfcrypt/src/port/af_alg/afalg_aes.c
index ff597827b5..699e37057a 100644
--- a/wolfcrypt/src/port/af_alg/afalg_aes.c
+++ b/wolfcrypt/src/port/af_alg/afalg_aes.c
@@ -1,6 +1,6 @@
/* afalg_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/af_alg/afalg_hash.c b/wolfcrypt/src/port/af_alg/afalg_hash.c
index bde024960a..0e775f063d 100644
--- a/wolfcrypt/src/port/af_alg/afalg_hash.c
+++ b/wolfcrypt/src/port/af_alg/afalg_hash.c
@@ -1,6 +1,6 @@
/* afalg_hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/af_alg/wc_afalg.c b/wolfcrypt/src/port/af_alg/wc_afalg.c
index 08fb76ea48..37ced88c81 100644
--- a/wolfcrypt/src/port/af_alg/wc_afalg.c
+++ b/wolfcrypt/src/port/af_alg/wc_afalg.c
@@ -1,6 +1,6 @@
/* wc_afalg.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-aes-asm.S b/wolfcrypt/src/port/arm/armv8-32-aes-asm.S
index 19a2f29f75..0470231f11 100644
--- a/wolfcrypt/src/port/arm/armv8-32-aes-asm.S
+++ b/wolfcrypt/src/port/arm/armv8-32-aes-asm.S
@@ -1,6 +1,6 @@
/* armv8-32-aes-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-curve25519.S b/wolfcrypt/src/port/arm/armv8-32-curve25519.S
index 4609381484..24072bd6dc 100644
--- a/wolfcrypt/src/port/arm/armv8-32-curve25519.S
+++ b/wolfcrypt/src/port/arm/armv8-32-curve25519.S
@@ -1,6 +1,6 @@
/* armv8-32-curve25519
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-curve25519_c.c b/wolfcrypt/src/port/arm/armv8-32-curve25519_c.c
index 3561e965f0..4862f759d9 100644
--- a/wolfcrypt/src/port/arm/armv8-32-curve25519_c.c
+++ b/wolfcrypt/src/port/arm/armv8-32-curve25519_c.c
@@ -1,6 +1,6 @@
/* armv8-32-curve25519
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-sha256-asm.S b/wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
index 0b25fbf588..ed3364d436 100644
--- a/wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
+++ b/wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
@@ -1,6 +1,6 @@
/* armv8-32-sha256-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c b/wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
index b09f4e6925..d81d5bba42 100644
--- a/wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
+++ b/wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c
@@ -1,6 +1,6 @@
/* armv8-32-sha256-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S b/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
index 70cacde936..5627688a8a 100644
--- a/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
+++ b/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
@@ -1,6 +1,6 @@
/* armv8-32-sha512-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c b/wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
index 2d502dbea7..06f2bf4df6 100644
--- a/wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
+++ b/wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c
@@ -1,6 +1,6 @@
/* armv8-32-sha512-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-aes.c b/wolfcrypt/src/port/arm/armv8-aes.c
index b629c9666c..d845439cee 100644
--- a/wolfcrypt/src/port/arm/armv8-aes.c
+++ b/wolfcrypt/src/port/arm/armv8-aes.c
@@ -1,6 +1,6 @@
/* armv8-aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-chacha.c b/wolfcrypt/src/port/arm/armv8-chacha.c
index 59c030aaf9..13afe2c947 100644
--- a/wolfcrypt/src/port/arm/armv8-chacha.c
+++ b/wolfcrypt/src/port/arm/armv8-chacha.c
@@ -1,6 +1,6 @@
/* armv8-chacha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-curve25519.S b/wolfcrypt/src/port/arm/armv8-curve25519.S
index b7646f7434..dafa2f7575 100644
--- a/wolfcrypt/src/port/arm/armv8-curve25519.S
+++ b/wolfcrypt/src/port/arm/armv8-curve25519.S
@@ -1,6 +1,6 @@
/* armv8-curve25519
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-curve25519_c.c b/wolfcrypt/src/port/arm/armv8-curve25519_c.c
index b49d7bec5f..3484b07bf0 100644
--- a/wolfcrypt/src/port/arm/armv8-curve25519_c.c
+++ b/wolfcrypt/src/port/arm/armv8-curve25519_c.c
@@ -1,6 +1,6 @@
/* armv8-curve25519
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-poly1305.c b/wolfcrypt/src/port/arm/armv8-poly1305.c
index 5ed722bcb5..d0aab02348 100644
--- a/wolfcrypt/src/port/arm/armv8-poly1305.c
+++ b/wolfcrypt/src/port/arm/armv8-poly1305.c
@@ -1,6 +1,6 @@
/* armv8-poly1305.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-sha256.c b/wolfcrypt/src/port/arm/armv8-sha256.c
index 106de811fc..beea8d01f7 100644
--- a/wolfcrypt/src/port/arm/armv8-sha256.c
+++ b/wolfcrypt/src/port/arm/armv8-sha256.c
@@ -1,6 +1,6 @@
/* armv8-sha256.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-sha3-asm.S b/wolfcrypt/src/port/arm/armv8-sha3-asm.S
index 516dc18f61..b4c5d76941 100644
--- a/wolfcrypt/src/port/arm/armv8-sha3-asm.S
+++ b/wolfcrypt/src/port/arm/armv8-sha3-asm.S
@@ -1,6 +1,6 @@
/* armv8-sha3-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-sha3-asm_c.c b/wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
index 360e8d4d2e..54423e44fc 100644
--- a/wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
+++ b/wolfcrypt/src/port/arm/armv8-sha3-asm_c.c
@@ -1,6 +1,6 @@
/* armv8-sha3-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-sha512-asm.S b/wolfcrypt/src/port/arm/armv8-sha512-asm.S
index 0881712549..8bdd0641b0 100644
--- a/wolfcrypt/src/port/arm/armv8-sha512-asm.S
+++ b/wolfcrypt/src/port/arm/armv8-sha512-asm.S
@@ -1,6 +1,6 @@
/* armv8-sha512-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-sha512-asm_c.c b/wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
index aa76798ee6..62f6696e4e 100644
--- a/wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
+++ b/wolfcrypt/src/port/arm/armv8-sha512-asm_c.c
@@ -1,6 +1,6 @@
/* armv8-sha512-asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/armv8-sha512.c b/wolfcrypt/src/port/arm/armv8-sha512.c
index a09058c965..4a0a578408 100644
--- a/wolfcrypt/src/port/arm/armv8-sha512.c
+++ b/wolfcrypt/src/port/arm/armv8-sha512.c
@@ -1,6 +1,6 @@
/* sha512.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/cryptoCell.c b/wolfcrypt/src/port/arm/cryptoCell.c
index 3e7b8cec60..1c73349e11 100644
--- a/wolfcrypt/src/port/arm/cryptoCell.c
+++ b/wolfcrypt/src/port/arm/cryptoCell.c
@@ -1,6 +1,6 @@
/* cryptoCell.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/arm/cryptoCellHash.c b/wolfcrypt/src/port/arm/cryptoCellHash.c
index f5ec41ca61..cf567c2870 100644
--- a/wolfcrypt/src/port/arm/cryptoCellHash.c
+++ b/wolfcrypt/src/port/arm/cryptoCellHash.c
@@ -1,6 +1,6 @@
/* cryptoCellHash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/atmel/atmel.c b/wolfcrypt/src/port/atmel/atmel.c
index e10a2220c3..9a404d8b3f 100644
--- a/wolfcrypt/src/port/atmel/atmel.c
+++ b/wolfcrypt/src/port/atmel/atmel.c
@@ -1,6 +1,6 @@
/* atmel.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/caam_aes.c b/wolfcrypt/src/port/caam/caam_aes.c
index 3944049126..1abcfc717b 100644
--- a/wolfcrypt/src/port/caam/caam_aes.c
+++ b/wolfcrypt/src/port/caam/caam_aes.c
@@ -1,6 +1,6 @@
/* caam_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/caam_driver.c b/wolfcrypt/src/port/caam/caam_driver.c
index 72f5562965..17e1d449e8 100644
--- a/wolfcrypt/src/port/caam/caam_driver.c
+++ b/wolfcrypt/src/port/caam/caam_driver.c
@@ -1,6 +1,6 @@
/* caam_driver.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/caam_error.c b/wolfcrypt/src/port/caam/caam_error.c
index 35d51eab7d..00830520f3 100644
--- a/wolfcrypt/src/port/caam/caam_error.c
+++ b/wolfcrypt/src/port/caam/caam_error.c
@@ -1,6 +1,6 @@
/* caam_error.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/caam_integrity.c b/wolfcrypt/src/port/caam/caam_integrity.c
index 5d46e666d6..b520d61464 100644
--- a/wolfcrypt/src/port/caam/caam_integrity.c
+++ b/wolfcrypt/src/port/caam/caam_integrity.c
@@ -1,6 +1,6 @@
/* caam_integrity.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/caam_qnx.c b/wolfcrypt/src/port/caam/caam_qnx.c
index e5216780a2..a3cd6b33ce 100644
--- a/wolfcrypt/src/port/caam/caam_qnx.c
+++ b/wolfcrypt/src/port/caam/caam_qnx.c
@@ -1,6 +1,6 @@
/* caam_qnx.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/caam_sha.c b/wolfcrypt/src/port/caam/caam_sha.c
index 58c0d7afdb..03ef6e0c5e 100644
--- a/wolfcrypt/src/port/caam/caam_sha.c
+++ b/wolfcrypt/src/port/caam/caam_sha.c
@@ -1,6 +1,6 @@
/* caam_sha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_aes.c b/wolfcrypt/src/port/caam/wolfcaam_aes.c
index 1ebe2d271e..9f58a54bcc 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_aes.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_aes.c
@@ -1,6 +1,6 @@
/* wolfcaam_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_cmac.c b/wolfcrypt/src/port/caam/wolfcaam_cmac.c
index d23c14b0b1..a06cad2976 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_cmac.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_cmac.c
@@ -1,6 +1,6 @@
/* wolfcaam_cmac.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_ecdsa.c b/wolfcrypt/src/port/caam/wolfcaam_ecdsa.c
index 39181e6754..87e1a2d9e7 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_ecdsa.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_ecdsa.c
@@ -1,6 +1,6 @@
/* wolfcaam_ecdsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_hash.c b/wolfcrypt/src/port/caam/wolfcaam_hash.c
index d0b613196b..b7ccbc868c 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_hash.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_hash.c
@@ -1,6 +1,6 @@
/* wolfcaam_hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_hmac.c b/wolfcrypt/src/port/caam/wolfcaam_hmac.c
index 49784ce300..4a31291419 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_hmac.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_hmac.c
@@ -1,6 +1,6 @@
/* wolfcaam_hmac.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_init.c b/wolfcrypt/src/port/caam/wolfcaam_init.c
index c5dc2a739b..d6c4850bb2 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_init.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_init.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_qnx.c b/wolfcrypt/src/port/caam/wolfcaam_qnx.c
index 522f62ddc6..90464b4eb5 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_qnx.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_qnx.c
@@ -1,6 +1,6 @@
/* wolfcaam_qnx.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_rsa.c b/wolfcrypt/src/port/caam/wolfcaam_rsa.c
index c343749f28..f035a0b70b 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_rsa.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_rsa.c
@@ -1,6 +1,6 @@
/* wolfcaam_rsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_seco.c b/wolfcrypt/src/port/caam/wolfcaam_seco.c
index f9915cfbdc..6c729f9b09 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_seco.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_seco.c
@@ -1,6 +1,6 @@
/* wolfcaam_seco.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/caam/wolfcaam_x25519.c b/wolfcrypt/src/port/caam/wolfcaam_x25519.c
index 6080608ab4..6147380250 100644
--- a/wolfcrypt/src/port/caam/wolfcaam_x25519.c
+++ b/wolfcrypt/src/port/caam/wolfcaam_x25519.c
@@ -1,6 +1,6 @@
/* wolfcaam_x25519.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/cavium/cavium_octeon_sync.c b/wolfcrypt/src/port/cavium/cavium_octeon_sync.c
index f1e6cbe467..b6c9542287 100644
--- a/wolfcrypt/src/port/cavium/cavium_octeon_sync.c
+++ b/wolfcrypt/src/port/cavium/cavium_octeon_sync.c
@@ -1,6 +1,6 @@
/* cavium_octeon_sync.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/cypress/psoc6_crypto.c b/wolfcrypt/src/port/cypress/psoc6_crypto.c
index c94a23f59f..94ab1537ac 100644
--- a/wolfcrypt/src/port/cypress/psoc6_crypto.c
+++ b/wolfcrypt/src/port/cypress/psoc6_crypto.c
@@ -1,6 +1,6 @@
/* psoc6_crypto.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
index 4b72f7c8f8..18f5cd7a34 100644
--- a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
@@ -1,6 +1,6 @@
/* devcrypto_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_ecdsa.c b/wolfcrypt/src/port/devcrypto/devcrypto_ecdsa.c
index 0b31cbb50b..7a8c1d174e 100644
--- a/wolfcrypt/src/port/devcrypto/devcrypto_ecdsa.c
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_ecdsa.c
@@ -1,6 +1,6 @@
/* devcrypto_ecdsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_hash.c b/wolfcrypt/src/port/devcrypto/devcrypto_hash.c
index c6dedf0c13..e3268a5e6e 100644
--- a/wolfcrypt/src/port/devcrypto/devcrypto_hash.c
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_hash.c
@@ -1,6 +1,6 @@
/* devcrypto_hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_hmac.c b/wolfcrypt/src/port/devcrypto/devcrypto_hmac.c
index 1afc4508f2..70d428a969 100644
--- a/wolfcrypt/src/port/devcrypto/devcrypto_hmac.c
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_hmac.c
@@ -1,6 +1,6 @@
/* devcrypto_hmac.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_rsa.c b/wolfcrypt/src/port/devcrypto/devcrypto_rsa.c
index fddeee875d..f1239959e7 100644
--- a/wolfcrypt/src/port/devcrypto/devcrypto_rsa.c
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_rsa.c
@@ -1,6 +1,6 @@
/* devcrypto_rsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_x25519.c b/wolfcrypt/src/port/devcrypto/devcrypto_x25519.c
index 693bc72bff..66e3bdc398 100644
--- a/wolfcrypt/src/port/devcrypto/devcrypto_x25519.c
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_x25519.c
@@ -1,6 +1,6 @@
/* devcrypto_x25519.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/devcrypto/wc_devcrypto.c b/wolfcrypt/src/port/devcrypto/wc_devcrypto.c
index 97ad93e0ff..0b3eedbf73 100644
--- a/wolfcrypt/src/port/devcrypto/wc_devcrypto.c
+++ b/wolfcrypt/src/port/devcrypto/wc_devcrypto.c
@@ -1,6 +1,6 @@
/* wc_devcrypto.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/intel/quickassist_sync.c b/wolfcrypt/src/port/intel/quickassist_sync.c
index 211617d178..7c9e679fc8 100644
--- a/wolfcrypt/src/port/intel/quickassist_sync.c
+++ b/wolfcrypt/src/port/intel/quickassist_sync.c
@@ -1,6 +1,6 @@
/* quickassist_sync.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/iotsafe/iotsafe.c b/wolfcrypt/src/port/iotsafe/iotsafe.c
index 929388ddcc..8a3af53d99 100644
--- a/wolfcrypt/src/port/iotsafe/iotsafe.c
+++ b/wolfcrypt/src/port/iotsafe/iotsafe.c
@@ -1,6 +1,6 @@
/* iotsafe.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/kcapi/kcapi_aes.c b/wolfcrypt/src/port/kcapi/kcapi_aes.c
index 32c6d52bb6..b563c05aed 100644
--- a/wolfcrypt/src/port/kcapi/kcapi_aes.c
+++ b/wolfcrypt/src/port/kcapi/kcapi_aes.c
@@ -1,6 +1,6 @@
/* kcapi_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/kcapi/kcapi_dh.c b/wolfcrypt/src/port/kcapi/kcapi_dh.c
index 77f170b26a..0b1bf4e12a 100644
--- a/wolfcrypt/src/port/kcapi/kcapi_dh.c
+++ b/wolfcrypt/src/port/kcapi/kcapi_dh.c
@@ -1,6 +1,6 @@
/* kcapi_dh.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/kcapi/kcapi_ecc.c b/wolfcrypt/src/port/kcapi/kcapi_ecc.c
index 7844852b04..eedc87c8f4 100644
--- a/wolfcrypt/src/port/kcapi/kcapi_ecc.c
+++ b/wolfcrypt/src/port/kcapi/kcapi_ecc.c
@@ -1,6 +1,6 @@
/* kcapi_ecc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/kcapi/kcapi_hash.c b/wolfcrypt/src/port/kcapi/kcapi_hash.c
index 1a3fd15129..215cec71ce 100644
--- a/wolfcrypt/src/port/kcapi/kcapi_hash.c
+++ b/wolfcrypt/src/port/kcapi/kcapi_hash.c
@@ -1,6 +1,6 @@
/* kcapi_hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/kcapi/kcapi_hmac.c b/wolfcrypt/src/port/kcapi/kcapi_hmac.c
index 505fd2a04f..a233d99966 100644
--- a/wolfcrypt/src/port/kcapi/kcapi_hmac.c
+++ b/wolfcrypt/src/port/kcapi/kcapi_hmac.c
@@ -1,6 +1,6 @@
/* kcapi_hmac.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/kcapi/kcapi_rsa.c b/wolfcrypt/src/port/kcapi/kcapi_rsa.c
index 2b57753df6..f993f9c06b 100644
--- a/wolfcrypt/src/port/kcapi/kcapi_rsa.c
+++ b/wolfcrypt/src/port/kcapi/kcapi_rsa.c
@@ -1,6 +1,6 @@
/* kcapi_rsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/maxim/maxq10xx.c b/wolfcrypt/src/port/maxim/maxq10xx.c
index 03f6e3730e..57a68f6ff2 100644
--- a/wolfcrypt/src/port/maxim/maxq10xx.c
+++ b/wolfcrypt/src/port/maxim/maxq10xx.c
@@ -1,6 +1,6 @@
/* maxq10xx.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/mynewt/mynewt_port.c b/wolfcrypt/src/port/mynewt/mynewt_port.c
index fb1584bae8..0467773c4b 100644
--- a/wolfcrypt/src/port/mynewt/mynewt_port.c
+++ b/wolfcrypt/src/port/mynewt/mynewt_port.c
@@ -1,6 +1,6 @@
/* mynewt_port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/nrf51.c b/wolfcrypt/src/port/nrf51.c
index ade80b9beb..1ab5b7dfe9 100644
--- a/wolfcrypt/src/port/nrf51.c
+++ b/wolfcrypt/src/port/nrf51.c
@@ -1,6 +1,6 @@
/* nrf51.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/nxp/dcp_port.c b/wolfcrypt/src/port/nxp/dcp_port.c
index e6bc7cac4a..e433ae6f25 100644
--- a/wolfcrypt/src/port/nxp/dcp_port.c
+++ b/wolfcrypt/src/port/nxp/dcp_port.c
@@ -1,6 +1,6 @@
/* dcp_port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/nxp/ksdk_port.c b/wolfcrypt/src/port/nxp/ksdk_port.c
index 5014145a36..7cfa04771b 100644
--- a/wolfcrypt/src/port/nxp/ksdk_port.c
+++ b/wolfcrypt/src/port/nxp/ksdk_port.c
@@ -1,6 +1,6 @@
/* ksdk_port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/nxp/se050_port.c b/wolfcrypt/src/port/nxp/se050_port.c
index 87730c7446..65c0222457 100644
--- a/wolfcrypt/src/port/nxp/se050_port.c
+++ b/wolfcrypt/src/port/nxp/se050_port.c
@@ -1,6 +1,6 @@
/* se050_port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/pic32/pic32mz-crypt.c b/wolfcrypt/src/port/pic32/pic32mz-crypt.c
index 2586825395..bd70fb517e 100644
--- a/wolfcrypt/src/port/pic32/pic32mz-crypt.c
+++ b/wolfcrypt/src/port/pic32/pic32mz-crypt.c
@@ -1,6 +1,6 @@
/* pic32mz-crypt.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/psa/psa.c b/wolfcrypt/src/port/psa/psa.c
index ceee8fec08..860f5c4891 100644
--- a/wolfcrypt/src/port/psa/psa.c
+++ b/wolfcrypt/src/port/psa/psa.c
@@ -1,6 +1,6 @@
/* psa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/psa/psa_aes.c b/wolfcrypt/src/port/psa/psa_aes.c
index db58223576..a0881d4516 100644
--- a/wolfcrypt/src/port/psa/psa_aes.c
+++ b/wolfcrypt/src/port/psa/psa_aes.c
@@ -1,6 +1,6 @@
/* psa_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/psa/psa_hash.c b/wolfcrypt/src/port/psa/psa_hash.c
index d2603ae63f..7de9776fba 100644
--- a/wolfcrypt/src/port/psa/psa_hash.c
+++ b/wolfcrypt/src/port/psa/psa_hash.c
@@ -1,6 +1,6 @@
/* psa_hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/psa/psa_pkcbs.c b/wolfcrypt/src/port/psa/psa_pkcbs.c
index b47989907e..55f0c68034 100644
--- a/wolfcrypt/src/port/psa/psa_pkcbs.c
+++ b/wolfcrypt/src/port/psa/psa_pkcbs.c
@@ -1,6 +1,6 @@
/* psa_pkcbs.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/silabs/silabs_aes.c b/wolfcrypt/src/port/silabs/silabs_aes.c
index 808eb33098..63e633d73f 100644
--- a/wolfcrypt/src/port/silabs/silabs_aes.c
+++ b/wolfcrypt/src/port/silabs/silabs_aes.c
@@ -1,6 +1,6 @@
/* silabs_aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/silabs/silabs_ecc.c b/wolfcrypt/src/port/silabs/silabs_ecc.c
index 3c4a7ad045..1a820bef69 100644
--- a/wolfcrypt/src/port/silabs/silabs_ecc.c
+++ b/wolfcrypt/src/port/silabs/silabs_ecc.c
@@ -1,6 +1,6 @@
/* silabs_ecc.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/silabs/silabs_hash.c b/wolfcrypt/src/port/silabs/silabs_hash.c
index 65a74bca56..5e29f55c0c 100644
--- a/wolfcrypt/src/port/silabs/silabs_hash.c
+++ b/wolfcrypt/src/port/silabs/silabs_hash.c
@@ -1,6 +1,6 @@
/* silabs_se_hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/silabs/silabs_random.c b/wolfcrypt/src/port/silabs/silabs_random.c
index 16f6e17204..c66ef67c39 100644
--- a/wolfcrypt/src/port/silabs/silabs_random.c
+++ b/wolfcrypt/src/port/silabs/silabs_random.c
@@ -1,6 +1,6 @@
/* silabs_random.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/st/stm32.c b/wolfcrypt/src/port/st/stm32.c
index 754fa8a629..78b7e51973 100644
--- a/wolfcrypt/src/port/st/stm32.c
+++ b/wolfcrypt/src/port/st/stm32.c
@@ -1,6 +1,6 @@
/* stm32.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/st/stsafe.c b/wolfcrypt/src/port/st/stsafe.c
index 688a234fea..0841abafa9 100644
--- a/wolfcrypt/src/port/st/stsafe.c
+++ b/wolfcrypt/src/port/st/stsafe.c
@@ -1,6 +1,6 @@
/* stsafe.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/ti/ti-aes.c b/wolfcrypt/src/port/ti/ti-aes.c
index c3ff1e9e1a..28a898ae6a 100644
--- a/wolfcrypt/src/port/ti/ti-aes.c
+++ b/wolfcrypt/src/port/ti/ti-aes.c
@@ -1,6 +1,6 @@
/* port/ti/ti-aes.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/ti/ti-ccm.c b/wolfcrypt/src/port/ti/ti-ccm.c
index a38f02714a..1b4a26590c 100644
--- a/wolfcrypt/src/port/ti/ti-ccm.c
+++ b/wolfcrypt/src/port/ti/ti-ccm.c
@@ -1,6 +1,6 @@
/* port/ti/ti_ccm.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/ti/ti-des3.c b/wolfcrypt/src/port/ti/ti-des3.c
index 212e797d28..47ef04a4b1 100644
--- a/wolfcrypt/src/port/ti/ti-des3.c
+++ b/wolfcrypt/src/port/ti/ti-des3.c
@@ -1,6 +1,6 @@
/* port/ti/ti-des.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/ti/ti-hash.c b/wolfcrypt/src/port/ti/ti-hash.c
index acaed452d0..92b2fe9969 100644
--- a/wolfcrypt/src/port/ti/ti-hash.c
+++ b/wolfcrypt/src/port/ti/ti-hash.c
@@ -1,6 +1,6 @@
/* port/ti/ti-hash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/xilinx/xil-aesgcm.c b/wolfcrypt/src/port/xilinx/xil-aesgcm.c
index 6704382428..3367a02f96 100644
--- a/wolfcrypt/src/port/xilinx/xil-aesgcm.c
+++ b/wolfcrypt/src/port/xilinx/xil-aesgcm.c
@@ -1,6 +1,6 @@
/* xil-aesgcm.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/xilinx/xil-sha3.c b/wolfcrypt/src/port/xilinx/xil-sha3.c
index e7ad5924fb..9ce130af9b 100644
--- a/wolfcrypt/src/port/xilinx/xil-sha3.c
+++ b/wolfcrypt/src/port/xilinx/xil-sha3.c
@@ -1,6 +1,6 @@
/* xil-sha3.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/xilinx/xil-versal-glue.c b/wolfcrypt/src/port/xilinx/xil-versal-glue.c
index 8657b4096d..ed90fd4fc8 100644
--- a/wolfcrypt/src/port/xilinx/xil-versal-glue.c
+++ b/wolfcrypt/src/port/xilinx/xil-versal-glue.c
@@ -1,6 +1,6 @@
/* xil-versal-glue.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/port/xilinx/xil-versal-trng.c b/wolfcrypt/src/port/xilinx/xil-versal-trng.c
index 693a489d22..a8a7c2a565 100644
--- a/wolfcrypt/src/port/xilinx/xil-versal-trng.c
+++ b/wolfcrypt/src/port/xilinx/xil-versal-trng.c
@@ -1,6 +1,6 @@
/* xil-versal-trng.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/pwdbased.c b/wolfcrypt/src/pwdbased.c
index 312c7bba91..4d7434557c 100644
--- a/wolfcrypt/src/pwdbased.c
+++ b/wolfcrypt/src/pwdbased.c
@@ -1,6 +1,6 @@
/* pwdbased.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c
index 4036165c17..816acdc75d 100644
--- a/wolfcrypt/src/random.c
+++ b/wolfcrypt/src/random.c
@@ -1,6 +1,6 @@
/* random.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/rc2.c b/wolfcrypt/src/rc2.c
index 0a3e5f08cb..3839d4941e 100644
--- a/wolfcrypt/src/rc2.c
+++ b/wolfcrypt/src/rc2.c
@@ -1,6 +1,6 @@
/* rc2.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/ripemd.c b/wolfcrypt/src/ripemd.c
index 19e7eb1a1b..1fedf67f86 100644
--- a/wolfcrypt/src/ripemd.c
+++ b/wolfcrypt/src/ripemd.c
@@ -1,6 +1,6 @@
/* ripemd.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/rsa.c b/wolfcrypt/src/rsa.c
index 30e98323b0..e2e546e7dc 100644
--- a/wolfcrypt/src/rsa.c
+++ b/wolfcrypt/src/rsa.c
@@ -1,6 +1,6 @@
/* rsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -66,7 +66,7 @@ RSA keys can be used to encrypt, decrypt, sign and verify data.
Possible RSA enable options:
* NO_RSA: Overall control of RSA default: on
* (not defined)
- * WC_RSA_BLINDING: Uses Blinding w/ Private Ops default: off
+ * WC_RSA_BLINDING: Uses Blinding w/ Private Ops default: on
Note: slower by ~20%
* WOLFSSL_KEY_GEN: Allows Private Key Generation default: off
* RSA_LOW_MEM: NON CRT Private Operations, less memory default: off
@@ -1611,7 +1611,7 @@ int wc_RsaPad_ex(const byte* input, word32 inputLen, byte* pkcsBlock,
/* UnPadding */
-#ifndef WC_NO_RSA_OAEP
+#if !defined(WC_NO_RSA_OAEP) && !defined(NO_HASH_WRAPPER)
/* UnPad plaintext, set start to *output, return length of plaintext,
* < 0 on error */
static int RsaUnPad_OAEP(byte *pkcsBlock, unsigned int pkcsBlockLen,
@@ -1724,7 +1724,7 @@ static int RsaUnPad_OAEP(byte *pkcsBlock, unsigned int pkcsBlockLen,
*output = (byte*)(pkcsBlock + idx);
return pkcsBlockLen - idx;
}
-#endif /* WC_NO_RSA_OAEP */
+#endif /* !WC_NO_RSA_OAEP */
#ifdef WC_RSA_PSS
/* 0x00 .. 0x00 0x01 | Salt | Gen Hash | 0xbc
diff --git a/wolfcrypt/src/sakke.c b/wolfcrypt/src/sakke.c
index 0c1ef26c27..c84b9fd6cd 100644
--- a/wolfcrypt/src/sakke.c
+++ b/wolfcrypt/src/sakke.c
@@ -1,6 +1,6 @@
/* sakke.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha.c b/wolfcrypt/src/sha.c
index acddec4747..bcfd1005df 100644
--- a/wolfcrypt/src/sha.c
+++ b/wolfcrypt/src/sha.c
@@ -1,6 +1,6 @@
/* sha.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha256.c b/wolfcrypt/src/sha256.c
index 6c3116e013..ee443858b4 100644
--- a/wolfcrypt/src/sha256.c
+++ b/wolfcrypt/src/sha256.c
@@ -1,6 +1,6 @@
/* sha256.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha256_asm.S b/wolfcrypt/src/sha256_asm.S
index 3070ca3eb5..3adac1e791 100644
--- a/wolfcrypt/src/sha256_asm.S
+++ b/wolfcrypt/src/sha256_asm.S
@@ -1,6 +1,6 @@
/* sha256_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha3.c b/wolfcrypt/src/sha3.c
index 8804bb38b8..c9b69c321c 100644
--- a/wolfcrypt/src/sha3.c
+++ b/wolfcrypt/src/sha3.c
@@ -1,6 +1,6 @@
/* sha3.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha3_asm.S b/wolfcrypt/src/sha3_asm.S
index 761d206b60..99c90d65a0 100644
--- a/wolfcrypt/src/sha3_asm.S
+++ b/wolfcrypt/src/sha3_asm.S
@@ -1,6 +1,6 @@
/* sha3_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha512.c b/wolfcrypt/src/sha512.c
index d42806976e..efcbf68774 100644
--- a/wolfcrypt/src/sha512.c
+++ b/wolfcrypt/src/sha512.c
@@ -1,6 +1,6 @@
/* sha512.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sha512_asm.S b/wolfcrypt/src/sha512_asm.S
index a79632150d..83f60047c6 100644
--- a/wolfcrypt/src/sha512_asm.S
+++ b/wolfcrypt/src/sha512_asm.S
@@ -1,6 +1,6 @@
/* sha512_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/signature.c b/wolfcrypt/src/signature.c
index 16f404c2ce..38a8d98148 100644
--- a/wolfcrypt/src/signature.c
+++ b/wolfcrypt/src/signature.c
@@ -1,6 +1,6 @@
/* signature.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/siphash.c b/wolfcrypt/src/siphash.c
index 915f835df8..45e137cc7e 100644
--- a/wolfcrypt/src/siphash.c
+++ b/wolfcrypt/src/siphash.c
@@ -1,6 +1,6 @@
/* siphash.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_arm32.c b/wolfcrypt/src/sp_arm32.c
index bfce4825d4..cd0568ddc0 100644
--- a/wolfcrypt/src/sp_arm32.c
+++ b/wolfcrypt/src/sp_arm32.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_arm64.c b/wolfcrypt/src/sp_arm64.c
index 9db756ac9f..598f0dd47a 100644
--- a/wolfcrypt/src/sp_arm64.c
+++ b/wolfcrypt/src/sp_arm64.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_armthumb.c b/wolfcrypt/src/sp_armthumb.c
index 910dacda39..6b648e0198 100644
--- a/wolfcrypt/src/sp_armthumb.c
+++ b/wolfcrypt/src/sp_armthumb.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_c32.c b/wolfcrypt/src/sp_c32.c
index a461919269..49838d855a 100644
--- a/wolfcrypt/src/sp_c32.c
+++ b/wolfcrypt/src/sp_c32.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_c64.c b/wolfcrypt/src/sp_c64.c
index 8f1aa4c94d..318ff17c4f 100644
--- a/wolfcrypt/src/sp_c64.c
+++ b/wolfcrypt/src/sp_c64.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_cortexm.c b/wolfcrypt/src/sp_cortexm.c
index f11c1732b2..98dc28183a 100644
--- a/wolfcrypt/src/sp_cortexm.c
+++ b/wolfcrypt/src/sp_cortexm.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_dsp32.c b/wolfcrypt/src/sp_dsp32.c
index acfaf31d9c..c94da1bd1a 100644
--- a/wolfcrypt/src/sp_dsp32.c
+++ b/wolfcrypt/src/sp_dsp32.c
@@ -1,6 +1,6 @@
/* sp_cdsp_signed.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_int.c b/wolfcrypt/src/sp_int.c
index 29efb617ab..b5199ed735 100644
--- a/wolfcrypt/src/sp_int.c
+++ b/wolfcrypt/src/sp_int.c
@@ -1,6 +1,6 @@
/* sp_int.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -6095,27 +6095,41 @@ static void _sp_div_3(const sp_int* a, sp_int* r, sp_int_digit* rem)
/* Check whether only mod value needed. */
if (r == NULL) {
- /* Divide starting at most significant word down to least. */
- for (i = a->used - 1; i >= 0; i--) {
+ /* 2^2 mod 3 = 4 mod 3 = 1.
+ * => 2^(2*n) mod 3 = (2^2 mod 3)^n mod 3 = 1^n mod 3 = 1
+ * => (2^(2*n) * x) mod 3 = (2^(2*n) mod 3) * (x mod 3) = x mod 3
+ *
+ * Calculate mod 3 on sum of digits as SP_WORD_SIZE is a multiple of 2.
+ */
#ifndef SQR_MUL_ASM
- /* Combine remainder from last operation with this word. */
- t = ((sp_int_word)tr << SP_WORD_SIZE) | a->dp[i];
- /* Get top digit after multipling by (2^SP_WORD_SIZE) / 3. */
- tt = (t * SP_DIV_3_CONST) >> SP_WORD_SIZE;
- /* Subtract trail division. */
- tr = (sp_int_digit)(t - (sp_int_word)tt * 3);
+ t = 0;
+ /* Sum the digits. */
+ for (i = 0; i < a->used; i++) {
+ t += a->dp[i];
+ }
+ /* Sum digits of sum. */
+ t = (t >> SP_WORD_SIZE) + (t & SP_MASK);
+ /* Get top digit after multipling by (2^SP_WORD_SIZE) / 3. */
+ tt = (t * SP_DIV_3_CONST) >> SP_WORD_SIZE;
+ /* Subtract trail division. */
+ tr = (sp_int_digit)(t - (sp_int_word)tt * 3);
#else
- /* Multiply digit by (2^SP_WORD_SIZE) / 3. */
- SP_ASM_MUL(l, tt, a->dp[i], t);
- /* Add remainder multiplied by (2^SP_WORD_SIZE) / 3 to top digit. */
- tt += tr * SP_DIV_3_CONST;
- /* Subtract trail division from digit. */
- tr = a->dp[i] - (tt * 3);
+ /* Sum the digits. */
+ for (i = 0; i < a->used; i++) {
+ SP_ASM_ADDC_REG(l, tr, a->dp[i]);
+ }
+ /* Sum digits of sum - can get carry. */
+ SP_ASM_ADDC_REG(l, tt, tr);
+ /* Multiply digit by (2^SP_WORD_SIZE) / 3. */
+ SP_ASM_MUL(t, tr, l, t);
+ /* Add remainder multiplied by (2^SP_WORD_SIZE) / 3 to top digit. */
+ tr += tt * SP_DIV_3_CONST;
+ /* Subtract trail division from digit. */
+ tr = l - (tr * 3);
#endif
- /* tr is 0..5 but need 0..2 */
- /* Fix up remainder. */
- tr = sp_rem6[tr];
- }
+ /* tr is 0..5 but need 0..2 */
+ /* Fix up remainder. */
+ tr = sp_rem6[tr];
*rem = tr;
}
/* At least result needed - remainder is calculated anyway. */
@@ -12692,7 +12706,11 @@ static int _sp_exptmod_base_2(const sp_int* e, int digits, const sp_int* m,
sp_print(r, "rme");
#endif
+#ifndef WC_NO_HARDEN
FREE_SP_INT_ARRAY(d, NULL);
+#else
+ FREE_SP_INT(tr, m->used * 2 + 1);
+#endif
return err;
}
#endif
diff --git a/wolfcrypt/src/sp_x86_64.c b/wolfcrypt/src/sp_x86_64.c
index ad8aa0bedf..fa80289a03 100644
--- a/wolfcrypt/src/sp_x86_64.c
+++ b/wolfcrypt/src/sp_x86_64.c
@@ -1,6 +1,6 @@
/* sp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_x86_64_asm.S b/wolfcrypt/src/sp_x86_64_asm.S
index 7bbe1ff40b..31db01023f 100644
--- a/wolfcrypt/src/sp_x86_64_asm.S
+++ b/wolfcrypt/src/sp_x86_64_asm.S
@@ -1,6 +1,6 @@
/* sp_x86_64_asm
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/sp_x86_64_asm.asm b/wolfcrypt/src/sp_x86_64_asm.asm
index dcd23cb85f..7e4d393628 100644
--- a/wolfcrypt/src/sp_x86_64_asm.asm
+++ b/wolfcrypt/src/sp_x86_64_asm.asm
@@ -1,6 +1,6 @@
; /* sp_x86_64_asm
; *
-; * Copyright (C) 2006-2022 wolfSSL Inc.
+; * Copyright (C) 2006-2023 wolfSSL Inc.
; *
; * This file is part of wolfSSL.
; *
diff --git a/wolfcrypt/src/sphincs.c b/wolfcrypt/src/sphincs.c
index 8b86585495..2600b7754b 100644
--- a/wolfcrypt/src/sphincs.c
+++ b/wolfcrypt/src/sphincs.c
@@ -1,6 +1,6 @@
/* sphincs.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/srp.c b/wolfcrypt/src/srp.c
index 83e09f5caf..3e46b038c9 100644
--- a/wolfcrypt/src/srp.c
+++ b/wolfcrypt/src/srp.c
@@ -1,6 +1,6 @@
/* srp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/tfm.c b/wolfcrypt/src/tfm.c
index 28beee6c14..e9022760b6 100644
--- a/wolfcrypt/src/tfm.c
+++ b/wolfcrypt/src/tfm.c
@@ -1,6 +1,6 @@
/* tfm.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_dsp.c b/wolfcrypt/src/wc_dsp.c
index a351f00c0b..95dfed6437 100644
--- a/wolfcrypt/src/wc_dsp.c
+++ b/wolfcrypt/src/wc_dsp.c
@@ -1,6 +1,6 @@
/* wc_dsp.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_encrypt.c b/wolfcrypt/src/wc_encrypt.c
index 681996f95d..853ff74744 100644
--- a/wolfcrypt/src/wc_encrypt.c
+++ b/wolfcrypt/src/wc_encrypt.c
@@ -1,6 +1,6 @@
/* wc_encrypt.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_kyber.c b/wolfcrypt/src/wc_kyber.c
index 72e1f8f8d1..8d516c89d4 100644
--- a/wolfcrypt/src/wc_kyber.c
+++ b/wolfcrypt/src/wc_kyber.c
@@ -1,6 +1,6 @@
/* wc_kyber.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_kyber_asm.S b/wolfcrypt/src/wc_kyber_asm.S
index 05cd12f7b3..599400b323 100644
--- a/wolfcrypt/src/wc_kyber_asm.S
+++ b/wolfcrypt/src/wc_kyber_asm.S
@@ -1,6 +1,6 @@
/* wc_kyber_asm.S
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_kyber_poly.c b/wolfcrypt/src/wc_kyber_poly.c
index d7025b0dc7..dfb10aced5 100644
--- a/wolfcrypt/src/wc_kyber_poly.c
+++ b/wolfcrypt/src/wc_kyber_poly.c
@@ -1,6 +1,6 @@
/* wc_kyber_poly.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_pkcs11.c b/wolfcrypt/src/wc_pkcs11.c
index fe4bf3a16d..d988f6ee6d 100644
--- a/wolfcrypt/src/wc_pkcs11.c
+++ b/wolfcrypt/src/wc_pkcs11.c
@@ -1,6 +1,6 @@
/* wc_pkcs11.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c
index 27e86d23a5..55617e13aa 100644
--- a/wolfcrypt/src/wc_port.c
+++ b/wolfcrypt/src/wc_port.c
@@ -1,6 +1,6 @@
/* port.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wolfevent.c b/wolfcrypt/src/wolfevent.c
index 5238bf8e67..492d085aea 100644
--- a/wolfcrypt/src/wolfevent.c
+++ b/wolfcrypt/src/wolfevent.c
@@ -1,6 +1,6 @@
/* wolfevent.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/src/wolfmath.c b/wolfcrypt/src/wolfmath.c
index 3687e0ca7e..900094dbb0 100644
--- a/wolfcrypt/src/wolfmath.c
+++ b/wolfcrypt/src/wolfmath.c
@@ -1,6 +1,6 @@
/* wolfmath.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/test/include.am b/wolfcrypt/test/include.am
index 667cd087d8..64d0f1a4f1 100644
--- a/wolfcrypt/test/include.am
+++ b/wolfcrypt/test/include.am
@@ -10,8 +10,8 @@ check_PROGRAMS+= wolfcrypt/test/testwolfcrypt
endif
noinst_PROGRAMS+= wolfcrypt/test/testwolfcrypt
wolfcrypt_test_testwolfcrypt_SOURCES = wolfcrypt/test/test.c
-wolfcrypt_test_testwolfcrypt_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-wolfcrypt_test_testwolfcrypt_DEPENDENCIES = src/libwolfssl.la
+wolfcrypt_test_testwolfcrypt_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
+wolfcrypt_test_testwolfcrypt_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
noinst_HEADERS += wolfcrypt/test/test.h wolfcrypt/test/test_paths.h.in
endif
endif
@@ -20,8 +20,8 @@ if BUILD_WOLFCRYPT_TESTS_LIBS
lib_LTLIBRARIES += wolfcrypt/test/libwolfcrypttest.la
wolfcrypt_test_libwolfcrypttest_la_SOURCES = wolfcrypt/test/test.c
wolfcrypt_test_libwolfcrypttest_la_CPPFLAGS = -DNO_MAIN_DRIVER
-wolfcrypt_test_libwolfcrypttest_la_LIBADD = src/libwolfssl.la
-wolfcrypt_test_libwolfcrypttest_la_DEPENDENCIES = src/libwolfssl.la
+wolfcrypt_test_libwolfcrypttest_la_LIBADD = src/libwolfssl@LIBSUFFIX@.la
+wolfcrypt_test_libwolfcrypttest_la_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
endif
EXTRA_DIST += wolfcrypt/test/test.sln
diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c
index d29d9aed9f..5f67ae98db 100644
--- a/wolfcrypt/test/test.c
+++ b/wolfcrypt/test/test.c
@@ -1,6 +1,6 @@
/* test.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -13149,7 +13149,7 @@ WOLFSSL_TEST_SUBROUTINE int memory_test(void)
static const char* certEccRsaDerFile = CERT_WRITE_TEMP_DIR "certeccrsa.der";
#endif
#if defined(HAVE_ECC_KEY_EXPORT) && !defined(WC_NO_RNG) && \
- !defined(WOLF_CRYPTO_CB_ONLY_ECC)
+ !defined(WOLF_CRYPTO_CB_ONLY_ECC) && !defined(NO_ASN_CRYPT)
static const char* eccCaKeyPemFile = CERT_WRITE_TEMP_DIR "ecc-key.pem";
static const char* eccPubKeyDerFile = CERT_WRITE_TEMP_DIR "ecc-public-key.der";
static const char* eccCaKeyTempFile = CERT_WRITE_TEMP_DIR "ecc-key.der";
@@ -14833,15 +14833,19 @@ static int rsa_pss_test(WC_RNG* rng, RsaKey* key)
(!defined(HAVE_SELFTEST_VERSION) || (HAVE_SELFTEST_VERSION < 2))
ret = wc_RsaPSS_CheckPadding_ex(digest, digestSz, plain, plainSz,
hash[0], len);
+ if (ret != PSS_SALTLEN_E)
+ ERROR_OUT(-7745, exit_rsa_pss);
#elif defined(HAVE_SELFTEST) && (HAVE_SELFTEST_VERSION == 2)
ret = wc_RsaPSS_CheckPadding_ex(digest, digestSz, plain, plainSz,
hash[0], len, 0);
+ if (ret != BAD_PADDING_E)
+ ERROR_OUT(-7745, exit_rsa_pss);
#else
ret = wc_RsaPSS_CheckPadding_ex2(digest, digestSz, plain, plainSz, hash[0],
len, 0, HEAP_HINT);
-#endif
if (ret != PSS_SALTLEN_E)
ERROR_OUT(-7745, exit_rsa_pss);
+#endif
ret = 0;
#endif /* WOLFSSL_SE050 */
@@ -22620,6 +22624,7 @@ static int ecc_test_vector_item(const eccVector* vector)
}
#endif
+#ifdef HAVE_ECC_VERIFY
do {
#if defined(WOLFSSL_ASYNC_CRYPT)
ret = wc_AsyncWait(ret, &userA->asyncDev, WC_ASYNC_FLAG_CALL_AGAIN);
@@ -22634,6 +22639,7 @@ static int ecc_test_vector_item(const eccVector* vector)
if (verify != 1)
ret = -9812;
+#endif
done:
@@ -23345,7 +23351,7 @@ static int ecc_test_sign_vectors(WC_RNG* rng)
}
#endif
-#ifdef HAVE_ECC_CDH
+#if defined(HAVE_ECC_CDH) && defined(HAVE_ECC_DHE)
static int ecc_test_cdh_vectors(WC_RNG* rng)
{
int ret;
@@ -23445,7 +23451,7 @@ static int ecc_test_cdh_vectors(WC_RNG* rng)
return ret;
}
-#endif /* HAVE_ECC_CDH */
+#endif /* HAVE_ECC_CDH && HAVE_ECC_DHE */
#endif /* HAVE_ECC_VECTOR_TEST */
#ifdef HAVE_ECC_KEY_IMPORT
@@ -23929,20 +23935,17 @@ static int ecc_test_key_gen(WC_RNG* rng, int keySize)
static int ecc_test_curve_size(WC_RNG* rng, int keySize, int testVerifyCount,
int curve_id, const ecc_set_type* dp)
{
-#if (defined(HAVE_ECC_DHE) || defined(HAVE_ECC_CDH)) && !defined(WC_NO_RNG) && \
+#if defined(HAVE_ECC_DHE) && !defined(WC_NO_RNG) && \
!defined(WOLFSSL_ATECC508A) && !defined(WOLFSSL_ATECC608A)
WC_DECLARE_VAR(sharedA, byte, ECC_SHARED_SIZE, HEAP_HINT);
WC_DECLARE_VAR(sharedB, byte, ECC_SHARED_SIZE, HEAP_HINT);
+ word32 y;
#endif
#ifdef HAVE_ECC_KEY_EXPORT
#define ECC_KEY_EXPORT_BUF_SIZE (MAX_ECC_BYTES * 2 + 32)
WC_DECLARE_VAR(exportBuf, byte, ECC_KEY_EXPORT_BUF_SIZE, HEAP_HINT);
#endif
word32 x = 0;
-#if (defined(HAVE_ECC_DHE) || defined(HAVE_ECC_CDH)) && !defined(WC_NO_RNG) && \
- !defined(WOLFSSL_ATECC508A) && !defined(WOLFSSL_ATECC608A)
- word32 y;
-#endif
#if defined(HAVE_ECC_SIGN) && !defined(WOLFSSL_KCAPI_ECC)
WC_DECLARE_VAR(sig, byte, ECC_SIG_SIZE, HEAP_HINT);
WC_DECLARE_VAR(digest, byte, ECC_DIGEST_SIZE, HEAP_HINT);
@@ -24104,7 +24107,6 @@ static int ecc_test_curve_size(WC_RNG* rng, int keySize, int testVerifyCount,
if (XMEMCMP(sharedA, sharedB, x))
ERROR_OUT(-9920, done);
TEST_SLEEP();
-#endif /* HAVE_ECC_DHE */
#ifdef HAVE_ECC_CDH
/* add cofactor flag */
@@ -24145,6 +24147,7 @@ static int ecc_test_curve_size(WC_RNG* rng, int keySize, int testVerifyCount,
wc_ecc_set_flags(userA, 0);
wc_ecc_set_flags(userB, 0);
#endif /* HAVE_ECC_CDH */
+#endif /* HAVE_ECC_DHE */
#endif /* !WOLFSSL_ATECC508A && WOLFSSL_ATECC608A */
#ifdef HAVE_ECC_KEY_EXPORT
@@ -26269,7 +26272,7 @@ WOLFSSL_TEST_SUBROUTINE int ecc_test(void)
goto done;
}
#endif
-#ifdef HAVE_ECC_CDH
+#if defined(HAVE_ECC_CDH) && defined(HAVE_ECC_DHE)
ret = ecc_test_cdh_vectors(&rng);
if (ret != 0) {
printf("ecc_test_cdh_vectors failed! %d\n", ret);
@@ -37474,6 +37477,19 @@ static int verifyBundle(byte* derBuf, word32 derSz, int keyHint)
int decodedSz = FOURK_BUF/2;
WOLFSSL_SMALL_STACK_STATIC const byte expectedSid[] = {
+#ifdef NO_SHA
+#ifdef USE_CERT_BUFFERS_1024
+ 0x70, 0xe7, 0x79, 0x60, 0x8f, 0x41, 0xdc, 0xe9,
+ 0xad, 0x8b, 0x3d, 0x0c, 0x20, 0xf4, 0xc3, 0xf2,
+ 0x8e, 0x05, 0xe8, 0xa1, 0xb6, 0x68, 0x74, 0x06,
+ 0xbc, 0xe7, 0xc5, 0x3c, 0x13, 0x99, 0x79, 0xb9
+#else
+ 0xce, 0x06, 0x07, 0xbe, 0xf1, 0xa6, 0x1e, 0x36,
+ 0xef, 0xfa, 0xbc, 0x89, 0x71, 0xf3, 0x23, 0x9e,
+ 0x34, 0x6d, 0xae, 0x86, 0xae, 0x2b, 0xdc, 0xf4,
+ 0x4a, 0x27, 0xd5, 0x63, 0x59, 0x4f, 0x4a, 0x71
+#endif
+#else /* !NO_SHA */
#ifdef USE_CERT_BUFFERS_1024
0x81, 0x69, 0x0f, 0xf8, 0xdf, 0xdd, 0xcf, 0x34,
0x29, 0xd5, 0x67, 0x75, 0x71, 0x85, 0xc7, 0x75,
@@ -37483,6 +37499,7 @@ static int verifyBundle(byte* derBuf, word32 derSz, int keyHint)
0x7E, 0x54, 0x0D, 0x70, 0x27, 0x91, 0xC7, 0x26,
0xD7, 0x85, 0x65, 0xC0
#endif
+#endif /* !NO_SHA */
};
decoded = (byte *)XMALLOC(decodedSz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
@@ -41281,12 +41298,13 @@ static int mp_test_mod_2d(mp_int* a, mp_int* r, mp_int* t, WC_RNG* rng)
}
#endif
-#if (defined(HAVE_ECC) && defined(HAVE_COMP_KEY)) || \
- (defined(OPENSSL_EXTRA) && defined(WOLFSSL_KEY_GEN))
-static int mp_test_mod_d(mp_int* a)
+#if (defined(HAVE_ECC) && defined(HAVE_COMP_KEY)) || defined(WOLFSSL_KEY_GEN)
+static int mp_test_mod_d(mp_int* a, WC_RNG* rng)
{
int ret;
mp_digit r;
+ mp_digit rem;
+ int i;
if (mp_set(a, 1) != MP_OKAY)
return -13130;
@@ -41305,6 +41323,20 @@ static int mp_test_mod_d(mp_int* a)
if (ret != MP_OKAY)
return -13134;
+ for (i = MP_MAX_TEST_BYTE_LEN - 16; i <= MP_MAX_TEST_BYTE_LEN; i++) {
+ ret = randNum(a, i, rng, NULL);
+ if (ret != MP_OKAY)
+ return -13135;
+ ret = mp_mod_d(a, 3, &r);
+ if (ret != MP_OKAY)
+ return -13136;
+ ret = mp_div_d(a, 3, a, &rem);
+ if (ret != MP_OKAY)
+ return -13137;
+ if (r != rem)
+ return -13138;
+ }
+
return 0;
}
#endif
@@ -41992,9 +42024,8 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
if ((ret = mp_test_mod_2d(&a, &r1, &p, &rng)) != 0)
return ret;
#endif
-#if (defined(HAVE_ECC) && defined(HAVE_COMP_KEY)) || \
- (defined(OPENSSL_EXTRA) && defined(WOLFSSL_KEY_GEN))
- if ((ret = mp_test_mod_d(&a)) != 0)
+#if (defined(HAVE_ECC) && defined(HAVE_COMP_KEY)) || defined(WOLFSSL_KEY_GEN)
+ if ((ret = mp_test_mod_d(&a, &rng)) != 0)
return ret;
#endif
if ((ret = mp_test_mul_sqr(&a, &b, &r1, &r2, &rng)) != 0)
@@ -44230,6 +44261,6 @@ WOLFSSL_TEST_SUBROUTINE int aes_siv_test(void)
#else
#ifndef NO_MAIN_DRIVER
- int main() { return 0; }
+ int main(void) { return 0; }
#endif
#endif /* NO_CRYPT_TEST */
diff --git a/wolfcrypt/test/test.h b/wolfcrypt/test/test.h
index c5f92bcc61..9911a4c7ac 100644
--- a/wolfcrypt/test/test.h
+++ b/wolfcrypt/test/test.h
@@ -1,6 +1,6 @@
/* wolfcrypt/test/test.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/test/test_paths.h.in b/wolfcrypt/test/test_paths.h.in
index cd79e7adfa..adac40c1a9 100644
--- a/wolfcrypt/test/test_paths.h.in
+++ b/wolfcrypt/test/test_paths.h.in
@@ -1,6 +1,6 @@
/* wolfcrypt/test/test_paths.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/user-crypto/README.txt b/wolfcrypt/user-crypto/README.txt
index fac01ca276..8afe87f69f 100644
--- a/wolfcrypt/user-crypto/README.txt
+++ b/wolfcrypt/user-crypto/README.txt
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/user-crypto/include/user_rsa.h b/wolfcrypt/user-crypto/include/user_rsa.h
index 683c5f1a57..c850b779bb 100644
--- a/wolfcrypt/user-crypto/include/user_rsa.h
+++ b/wolfcrypt/user-crypto/include/user_rsa.h
@@ -1,6 +1,6 @@
/* user_rsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfcrypt/user-crypto/src/rsa.c b/wolfcrypt/user-crypto/src/rsa.c
index bf8c4844ee..bb70dc782e 100644
--- a/wolfcrypt/user-crypto/src/rsa.c
+++ b/wolfcrypt/user-crypto/src/rsa.c
@@ -1,6 +1,6 @@
/* rsa.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl.vcxproj b/wolfssl.vcxproj
index 442710d8f6..ca2af90f56 100644
--- a/wolfssl.vcxproj
+++ b/wolfssl.vcxproj
@@ -42,46 +42,46 @@
StaticLibrary
- v110
+ v143
Unicode
true
DynamicLibrary
- v110
+ v143
Unicode
true
StaticLibrary
- v110
+ v143
Unicode
true
DynamicLibrary
- v110
+ v143
Unicode
true
StaticLibrary
- v110
+ v143
Unicode
DynamicLibrary
- v110
+ v143
Unicode
StaticLibrary
- v110
+ v143
Unicode
DynamicLibrary
- v110
+ v143
Unicode
@@ -389,4 +389,4 @@
-
+
\ No newline at end of file
diff --git a/wolfssl/callbacks.h b/wolfssl/callbacks.h
index 0f562503c7..bf996fad60 100644
--- a/wolfssl/callbacks.h
+++ b/wolfssl/callbacks.h
@@ -1,6 +1,6 @@
/* callbacks.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/certs_test.h b/wolfssl/certs_test.h
index e43c6cea5d..1772e8cd91 100644
--- a/wolfssl/certs_test.h
+++ b/wolfssl/certs_test.h
@@ -5755,1760 +5755,6 @@ static const unsigned char bench_dilithium_level5_key[] =
};
static const int sizeof_bench_dilithium_level5_key = sizeof(bench_dilithium_level5_key);
-/* certs/dilithium/bench_dilithium_aes_level2_key.der */
-static const unsigned char bench_dilithium_aes_level2_key[] =
-{
- 0x30, 0x82, 0x0F, 0x1A, 0x02, 0x01, 0x00, 0x30, 0x0D, 0x06,
- 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x0B,
- 0x04, 0x04, 0x04, 0x82, 0x0F, 0x04, 0x04, 0x82, 0x0F, 0x00,
- 0xDF, 0x3D, 0x6F, 0x4F, 0x6C, 0x02, 0x60, 0x28, 0x0D, 0xD1,
- 0x31, 0xF7, 0xA6, 0xAF, 0x05, 0x6E, 0xCE, 0x17, 0xBC, 0x6A,
- 0x1B, 0xF7, 0xCB, 0x0D, 0x3F, 0x06, 0x8A, 0x01, 0x9A, 0xF2,
- 0x40, 0xF9, 0x70, 0xD7, 0x18, 0x17, 0xDF, 0xD2, 0x8D, 0x9A,
- 0xFF, 0xC9, 0x44, 0x27, 0xDF, 0xCD, 0xAA, 0x41, 0x15, 0xBB,
- 0xDF, 0x53, 0x98, 0x20, 0xC1, 0x26, 0x28, 0xC0, 0x3B, 0x58,
- 0xFF, 0xA0, 0x34, 0x8A, 0xA2, 0x36, 0x8E, 0x9A, 0xA1, 0x87,
- 0x8B, 0x55, 0xBF, 0x04, 0xA8, 0x3D, 0xA6, 0x23, 0x22, 0xF9,
- 0x26, 0xA4, 0xC1, 0xF0, 0xEF, 0x11, 0x3D, 0xAA, 0x49, 0x91,
- 0xAA, 0xAB, 0x90, 0xAF, 0x6C, 0x42, 0x0A, 0x38, 0x48, 0x21,
- 0x17, 0x4C, 0x01, 0x41, 0x0C, 0x09, 0x06, 0x51, 0xD4, 0x20,
- 0x00, 0xCC, 0xB2, 0x84, 0x49, 0x18, 0x24, 0xE3, 0x30, 0x66,
- 0xD9, 0x06, 0x70, 0xC8, 0xB2, 0x44, 0x24, 0x08, 0x11, 0x0B,
- 0x90, 0x29, 0xE2, 0x86, 0x81, 0xE3, 0x28, 0x0E, 0xA2, 0x92,
- 0x50, 0x0C, 0x31, 0x6D, 0x10, 0xA9, 0x4C, 0xA4, 0x48, 0x60,
- 0x03, 0x36, 0x10, 0x64, 0x80, 0x91, 0x43, 0xA8, 0x68, 0x60,
- 0x42, 0x20, 0x19, 0x44, 0x80, 0x51, 0x82, 0x64, 0x18, 0x87,
- 0x09, 0x51, 0x84, 0x29, 0x40, 0x34, 0x31, 0x91, 0x42, 0x8D,
- 0x09, 0xB4, 0x6C, 0xD3, 0xC6, 0x68, 0x58, 0x00, 0x12, 0x82,
- 0x44, 0x4C, 0x21, 0x29, 0x6C, 0x44, 0x12, 0x65, 0x14, 0x22,
- 0x48, 0x24, 0x46, 0x2D, 0xC3, 0x02, 0x08, 0x43, 0xC4, 0x61,
- 0x52, 0x04, 0x8D, 0x92, 0x44, 0x45, 0x91, 0x20, 0x50, 0x01,
- 0x41, 0x84, 0x5A, 0xA0, 0x0C, 0x09, 0xC1, 0x05, 0xD2, 0x28,
- 0x86, 0x22, 0x09, 0x84, 0x04, 0xA6, 0x29, 0x9C, 0x12, 0x2A,
- 0x61, 0x16, 0x90, 0xC4, 0x22, 0x82, 0x80, 0x92, 0x65, 0x5B,
- 0x00, 0x82, 0x40, 0xB0, 0x40, 0x04, 0xA6, 0x25, 0x1A, 0x36,
- 0x09, 0xD3, 0x92, 0x10, 0x62, 0xA6, 0x10, 0xA1, 0x32, 0x51,
- 0x11, 0x14, 0x20, 0x1C, 0xB4, 0x65, 0x94, 0x38, 0x06, 0x49,
- 0x20, 0x01, 0x1A, 0x27, 0x0C, 0xD2, 0x84, 0x31, 0x02, 0x49,
- 0x28, 0x1B, 0x44, 0x45, 0x0C, 0x01, 0x60, 0x5C, 0x00, 0x2E,
- 0x23, 0x31, 0x41, 0x8B, 0x14, 0x4A, 0xC0, 0x48, 0x45, 0x04,
- 0xC0, 0x4C, 0x40, 0x02, 0x92, 0x94, 0x48, 0x48, 0x5A, 0x36,
- 0x91, 0x1C, 0xA2, 0x21, 0x8B, 0x42, 0x82, 0x09, 0x01, 0x46,
- 0x11, 0x85, 0x6D, 0x1C, 0x35, 0x62, 0xC9, 0x34, 0x45, 0xC1,
- 0x42, 0x6C, 0x40, 0x28, 0x6E, 0x1A, 0x27, 0x4C, 0x19, 0x09,
- 0x6D, 0x92, 0xB8, 0x41, 0x04, 0x31, 0x4D, 0xC4, 0x20, 0x4A,
- 0x8C, 0x84, 0x6D, 0xD1, 0x32, 0x02, 0xE1, 0x82, 0x21, 0x41,
- 0x34, 0x44, 0xC3, 0x14, 0x49, 0xD9, 0x22, 0x8D, 0x63, 0x32,
- 0x48, 0x99, 0xB8, 0x0C, 0x03, 0x21, 0x69, 0xCC, 0x30, 0x40,
- 0xA4, 0x32, 0x4D, 0xD8, 0xB8, 0x09, 0x00, 0x17, 0x45, 0x02,
- 0xC0, 0x68, 0xCA, 0xA4, 0x91, 0x02, 0x99, 0x8D, 0x9B, 0x46,
- 0x24, 0x42, 0x28, 0x8C, 0x90, 0x94, 0x61, 0x1C, 0xC3, 0x0C,
- 0x00, 0x37, 0x89, 0x1C, 0x99, 0x8D, 0x83, 0xB6, 0x64, 0x01,
- 0xC1, 0x88, 0xC0, 0x30, 0x44, 0x9C, 0x82, 0x48, 0x82, 0x22,
- 0x29, 0x9C, 0x96, 0x30, 0x4C, 0x10, 0x50, 0x24, 0x07, 0x6E,
- 0x98, 0x46, 0x8A, 0xC4, 0x38, 0x89, 0x60, 0x90, 0x11, 0x24,
- 0x46, 0x00, 0x58, 0x80, 0x69, 0x11, 0x33, 0x85, 0x43, 0xB2,
- 0x90, 0xD1, 0x20, 0x4C, 0x44, 0xA6, 0x28, 0xA1, 0x44, 0x45,
- 0x01, 0xB7, 0x85, 0x9B, 0x22, 0x6C, 0x11, 0x22, 0x04, 0x13,
- 0x13, 0x05, 0x01, 0x22, 0x88, 0x4C, 0x30, 0x80, 0x00, 0xC8,
- 0x20, 0x51, 0xC2, 0x28, 0x10, 0x04, 0x71, 0x00, 0x14, 0x0A,
- 0x89, 0x94, 0x05, 0x4A, 0x28, 0x6E, 0x88, 0x24, 0x52, 0x03,
- 0x22, 0x69, 0xDC, 0x16, 0x71, 0x0C, 0x25, 0x6D, 0x10, 0x07,
- 0x10, 0xCB, 0x12, 0x85, 0x53, 0x32, 0x2C, 0x0B, 0x94, 0x40,
- 0x54, 0x88, 0x11, 0x99, 0x42, 0x69, 0x40, 0x00, 0x65, 0xA2,
- 0x12, 0x0A, 0x22, 0xC4, 0x88, 0x99, 0x32, 0x31, 0x0C, 0xA5,
- 0x91, 0x11, 0xC5, 0x49, 0x1A, 0x37, 0x31, 0x0A, 0x11, 0x88,
- 0xD1, 0x28, 0x0C, 0x09, 0x30, 0x49, 0x13, 0x04, 0x02, 0x01,
- 0x91, 0x0C, 0x0A, 0x15, 0x25, 0xC8, 0xC6, 0x28, 0x24, 0x46,
- 0x86, 0x82, 0x02, 0x42, 0x98, 0x00, 0x69, 0x11, 0x16, 0x32,
- 0xE4, 0x24, 0x31, 0x04, 0x88, 0x31, 0xE2, 0x30, 0x61, 0x0B,
- 0x01, 0x6D, 0x43, 0xA2, 0x00, 0x19, 0x42, 0x60, 0x12, 0xA0,
- 0x61, 0x8C, 0x08, 0x31, 0x12, 0xA3, 0x90, 0x1A, 0x12, 0x8C,
- 0x1A, 0xA5, 0x85, 0x0B, 0x34, 0x45, 0x03, 0x39, 0x51, 0x1B,
- 0x14, 0x44, 0x99, 0x24, 0x10, 0x5B, 0xB8, 0x4D, 0x48, 0x96,
- 0x84, 0x8C, 0x94, 0x84, 0x63, 0x28, 0x21, 0x53, 0x80, 0x80,
- 0x23, 0x23, 0x86, 0xD3, 0x90, 0x31, 0xDB, 0x00, 0x28, 0x18,
- 0x09, 0x48, 0x01, 0xA1, 0x91, 0x8C, 0x38, 0x09, 0xE0, 0xB8,
- 0x20, 0xD0, 0x30, 0x22, 0x61, 0xB6, 0x71, 0xD3, 0xC8, 0x05,
- 0x00, 0x80, 0x09, 0x9C, 0x28, 0x8D, 0x83, 0x00, 0x2A, 0x92,
- 0x00, 0x41, 0x90, 0x12, 0x12, 0x40, 0x18, 0x46, 0x19, 0x03,
- 0x8A, 0x19, 0x23, 0x66, 0x08, 0x09, 0x32, 0xD9, 0x46, 0x69,
- 0xE0, 0x26, 0x2C, 0x04, 0x80, 0x85, 0x04, 0x94, 0x29, 0x1B,
- 0x44, 0x01, 0x92, 0x34, 0x45, 0xD0, 0xC6, 0x50, 0x02, 0x46,
- 0x45, 0x24, 0x22, 0x90, 0x5B, 0x34, 0x50, 0x23, 0x22, 0x24,
- 0x18, 0x36, 0x0D, 0x1B, 0x04, 0x68, 0xD9, 0xB8, 0x11, 0x49,
- 0xC0, 0x89, 0x19, 0xA5, 0x84, 0x00, 0x99, 0x0D, 0x22, 0xA6,
- 0x88, 0x82, 0x90, 0x6C, 0x42, 0x80, 0x2D, 0xC0, 0x88, 0x40,
- 0x93, 0x84, 0x51, 0x9C, 0x46, 0x40, 0xDA, 0x04, 0x32, 0xD9,
- 0x02, 0x84, 0x02, 0x44, 0x2E, 0x08, 0xB5, 0x81, 0x20, 0xA6,
- 0x71, 0xD0, 0x26, 0x0A, 0x23, 0xC7, 0x70, 0x41, 0x42, 0x41,
- 0x0B, 0x43, 0x4C, 0x20, 0xC9, 0x30, 0x5A, 0x22, 0x8C, 0x14,
- 0xC5, 0x20, 0xA3, 0x30, 0x66, 0xE4, 0x10, 0x85, 0xC3, 0xB2,
- 0x91, 0xA1, 0xA6, 0x05, 0x98, 0xA2, 0x80, 0x00, 0x81, 0x29,
- 0x24, 0x47, 0x32, 0x10, 0x26, 0x2E, 0xCC, 0xA0, 0x0D, 0x22,
- 0x80, 0x51, 0xCB, 0x46, 0x4A, 0x91, 0x04, 0x85, 0xD0, 0x90,
- 0x88, 0x94, 0xC6, 0x11, 0x86, 0x3F, 0xAE, 0xE7, 0xA7, 0xD2,
- 0xAB, 0x91, 0x16, 0x25, 0x66, 0x80, 0x76, 0x84, 0x42, 0x9E,
- 0xE2, 0xDB, 0x76, 0xE3, 0xE7, 0xF8, 0xB8, 0x6E, 0x21, 0x0E,
- 0x36, 0x8D, 0xB7, 0xE4, 0xAD, 0x3C, 0xC0, 0xDD, 0xC2, 0xDB,
- 0xC7, 0x78, 0xFA, 0x83, 0x8B, 0x46, 0xAF, 0xD7, 0x2C, 0xF9,
- 0xC1, 0x55, 0xFA, 0x94, 0x80, 0x27, 0x33, 0xEF, 0x4B, 0x4E,
- 0x2E, 0x3E, 0x8A, 0xDE, 0x83, 0x00, 0xDB, 0x61, 0x4A, 0x0D,
- 0x8D, 0x6B, 0xEC, 0x73, 0xDE, 0x2F, 0xA1, 0xBC, 0xC5, 0x00,
- 0xB9, 0xDF, 0x91, 0x0A, 0x3A, 0xD6, 0x2F, 0x9E, 0xE3, 0xED,
- 0x7D, 0x9B, 0xEB, 0x9A, 0x70, 0xD0, 0x28, 0x0A, 0x7F, 0xDC,
- 0x36, 0x38, 0x51, 0x0F, 0xDD, 0xD5, 0x3B, 0xFD, 0x0C, 0xA2,
- 0x1A, 0xF0, 0x77, 0x92, 0x7F, 0x47, 0x92, 0x1C, 0x09, 0xDE,
- 0x8B, 0xAD, 0x09, 0x82, 0x6F, 0x40, 0xC1, 0xDA, 0xE8, 0x01,
- 0x19, 0x75, 0xC1, 0xE3, 0x74, 0xA4, 0x6E, 0x23, 0xEF, 0xBA,
- 0xD0, 0x19, 0x4B, 0xDF, 0xB7, 0x15, 0x3C, 0x91, 0x59, 0x17,
- 0xCD, 0x63, 0x44, 0x68, 0xDC, 0xBB, 0xBF, 0x6D, 0x81, 0xC5,
- 0x05, 0x27, 0x94, 0x5C, 0x3E, 0xB1, 0x02, 0x07, 0x61, 0xE7,
- 0x26, 0x70, 0xB6, 0x9A, 0x0B, 0x1F, 0x3F, 0x7D, 0x60, 0xE9,
- 0xED, 0xDC, 0xB5, 0xCD, 0x63, 0x0E, 0x96, 0xB2, 0x65, 0x76,
- 0x29, 0x10, 0xF3, 0x5D, 0xC2, 0x1D, 0xC6, 0x18, 0xE7, 0x07,
- 0x3A, 0xE2, 0x19, 0xEC, 0xE5, 0xE7, 0x1A, 0xB6, 0xE1, 0xAE,
- 0x38, 0xE6, 0xDB, 0xB8, 0x81, 0x42, 0x8E, 0x24, 0x2A, 0xF6,
- 0xE7, 0x28, 0xBB, 0x3B, 0xF9, 0x3F, 0x0B, 0x8D, 0x4D, 0xE5,
- 0x62, 0xC3, 0x82, 0x70, 0xD2, 0x67, 0x0C, 0x44, 0xFA, 0x9C,
- 0x86, 0xF0, 0x72, 0x5E, 0x9F, 0xED, 0x42, 0x4E, 0xE8, 0xD8,
- 0xAE, 0xB6, 0x45, 0xC8, 0xEA, 0x4A, 0xD8, 0xD7, 0x38, 0xDC,
- 0xB6, 0x8D, 0x81, 0xF7, 0x2B, 0x2E, 0xF6, 0x5E, 0x03, 0xF3,
- 0x45, 0x91, 0x9B, 0x5E, 0x5C, 0xF2, 0xDA, 0x86, 0x55, 0xB0,
- 0x92, 0xC0, 0x88, 0x09, 0x00, 0x4F, 0xE2, 0x01, 0x0B, 0x3C,
- 0xDC, 0x3C, 0x67, 0x38, 0xF0, 0x26, 0x01, 0x49, 0x35, 0x14,
- 0x23, 0x52, 0x1D, 0x2D, 0x1E, 0x10, 0x72, 0x7D, 0x57, 0xB6,
- 0x47, 0x08, 0xBA, 0x1E, 0x92, 0x0F, 0x94, 0x23, 0x18, 0x02,
- 0x0F, 0x6E, 0x80, 0xEA, 0x12, 0xB4, 0xBC, 0x4E, 0x89, 0xA7,
- 0x4C, 0x77, 0x63, 0x2E, 0x28, 0xB4, 0x11, 0xF1, 0x20, 0xD4,
- 0xF1, 0xAE, 0x52, 0x09, 0x56, 0x65, 0xDB, 0xD2, 0xAA, 0xFF,
- 0x2F, 0xCA, 0x23, 0x9A, 0xD1, 0x98, 0x91, 0x50, 0x4C, 0x79,
- 0xDA, 0x56, 0x56, 0x4D, 0x04, 0x54, 0xAB, 0x74, 0x97, 0xDE,
- 0xA2, 0xF2, 0xDF, 0xD0, 0x30, 0x13, 0x86, 0x9B, 0x0F, 0xC7,
- 0xFE, 0xFF, 0x48, 0x7A, 0x8E, 0x33, 0x8C, 0x59, 0xBB, 0x07,
- 0x16, 0x7D, 0x99, 0x4E, 0xA9, 0x88, 0x1A, 0xA1, 0xE1, 0x87,
- 0x70, 0xFD, 0x13, 0xC7, 0xBB, 0x0D, 0xBD, 0x74, 0xAC, 0x93,
- 0xDF, 0x84, 0x01, 0xA0, 0x8D, 0xB1, 0x0D, 0x9B, 0x0F, 0xE9,
- 0x2A, 0xC3, 0x9F, 0xC8, 0x1E, 0xA6, 0xE5, 0x7A, 0x56, 0xCE,
- 0xA2, 0xA8, 0x34, 0xCC, 0x55, 0x00, 0x89, 0x63, 0xA1, 0xE3,
- 0x2C, 0x35, 0xE0, 0x36, 0x9D, 0x5A, 0x58, 0xFD, 0xF5, 0x9A,
- 0x9B, 0x26, 0xF8, 0x8F, 0x97, 0x90, 0xAC, 0x91, 0xCD, 0x57,
- 0x86, 0x28, 0x3B, 0x96, 0x3F, 0xED, 0xD6, 0x33, 0x41, 0x36,
- 0x77, 0xC9, 0xD6, 0x7C, 0x86, 0x8C, 0x4C, 0xA9, 0xC1, 0xFC,
- 0x9B, 0x3D, 0x9C, 0xAE, 0x61, 0x12, 0x44, 0x8A, 0x0F, 0x09,
- 0x0F, 0x7E, 0x6E, 0xB2, 0x0C, 0x2B, 0x6F, 0xE8, 0xB6, 0xD0,
- 0x8B, 0xF5, 0x6D, 0x75, 0xE3, 0x31, 0x7A, 0x67, 0x47, 0x78,
- 0xEE, 0xA4, 0x95, 0x39, 0x7C, 0xF4, 0x37, 0x3A, 0xBC, 0xB7,
- 0xC3, 0xAC, 0x45, 0x99, 0x84, 0xE2, 0xB4, 0xF4, 0xB0, 0x92,
- 0xA4, 0x60, 0x1B, 0xCA, 0x77, 0x0F, 0xB3, 0x17, 0x58, 0x4F,
- 0x40, 0x6D, 0xAB, 0x23, 0x1B, 0x22, 0x07, 0x7E, 0x23, 0xF5,
- 0x8C, 0xB7, 0xAF, 0x01, 0xE1, 0x0E, 0x57, 0x5E, 0x9D, 0x37,
- 0xDF, 0xDF, 0xF7, 0xC5, 0x72, 0xC5, 0x7A, 0xEA, 0x53, 0xD1,
- 0x7C, 0x8D, 0x80, 0x90, 0x3D, 0x29, 0x72, 0x61, 0x93, 0x8F,
- 0x0C, 0x54, 0xF9, 0x2E, 0x46, 0x48, 0x21, 0xF2, 0xB7, 0x97,
- 0x50, 0xAD, 0x55, 0xD1, 0x1D, 0x5F, 0xFC, 0x5D, 0x76, 0x50,
- 0x9E, 0x40, 0x1D, 0xF6, 0x82, 0xFE, 0x7A, 0xDA, 0xB8, 0x5C,
- 0xCA, 0x1D, 0x53, 0xEB, 0xAE, 0x98, 0x60, 0x25, 0x5E, 0x59,
- 0x39, 0x86, 0xE8, 0xCA, 0x8D, 0x28, 0x89, 0x45, 0x83, 0xD1,
- 0xC7, 0x66, 0x7A, 0x2E, 0x30, 0x9A, 0x76, 0xD6, 0x21, 0xB5,
- 0x33, 0x43, 0x9F, 0xAF, 0xBF, 0x9E, 0xAE, 0xE7, 0xD6, 0xAA,
- 0x13, 0x70, 0x35, 0x5F, 0x36, 0xF3, 0xAE, 0x4F, 0xD5, 0xB5,
- 0xEE, 0x39, 0x1E, 0x40, 0x4B, 0x2C, 0xE2, 0xDC, 0x0B, 0x91,
- 0xED, 0x61, 0xB8, 0x47, 0xD2, 0x3A, 0xAF, 0x9D, 0x29, 0x65,
- 0xA6, 0x35, 0xD2, 0xB0, 0x3B, 0x44, 0x6B, 0x21, 0x6C, 0x24,
- 0x6D, 0x4A, 0x2C, 0xA6, 0xF5, 0x5C, 0xC7, 0x32, 0x83, 0x84,
- 0x96, 0xBB, 0x54, 0xDD, 0x5B, 0x44, 0x78, 0x90, 0x90, 0xB0,
- 0x75, 0x2B, 0x1A, 0x7B, 0xDD, 0xC8, 0x7D, 0x72, 0xBA, 0xAC,
- 0xAD, 0x38, 0x3D, 0xBA, 0x46, 0x38, 0x06, 0x9C, 0xF3, 0xA8,
- 0x6C, 0x36, 0x98, 0x0B, 0xB8, 0xDC, 0xE9, 0x22, 0x77, 0x53,
- 0x03, 0xD6, 0xA6, 0xBF, 0x18, 0x0E, 0x60, 0x19, 0xA7, 0x16,
- 0x5F, 0x9A, 0x04, 0x3D, 0x01, 0xDD, 0x06, 0xCD, 0xD7, 0xA3,
- 0xD6, 0x0D, 0x5D, 0x49, 0xB1, 0x85, 0xEA, 0xEC, 0xF5, 0xA2,
- 0x97, 0x82, 0x98, 0xCB, 0x8E, 0xFA, 0xF5, 0xFB, 0x59, 0x16,
- 0x1B, 0x51, 0x43, 0xFA, 0xD5, 0x46, 0xA7, 0x07, 0x21, 0x92,
- 0xBB, 0x56, 0x67, 0xD8, 0xF3, 0x9E, 0x94, 0x18, 0x00, 0x9E,
- 0xFA, 0x36, 0x1C, 0x1B, 0x24, 0x37, 0x48, 0x07, 0x91, 0xF7,
- 0xD1, 0x4C, 0x53, 0x11, 0xBE, 0x15, 0x5D, 0x77, 0x1E, 0x86,
- 0xE9, 0xF4, 0xBD, 0x69, 0x63, 0x75, 0x3E, 0x41, 0x6B, 0xC0,
- 0x99, 0xD2, 0xC4, 0x2F, 0x5E, 0xAC, 0x64, 0xB7, 0xB2, 0xA9,
- 0xEB, 0x88, 0x32, 0xD6, 0x93, 0x39, 0xCD, 0xBD, 0x16, 0x3D,
- 0x27, 0xCA, 0xD3, 0xF6, 0x5B, 0x41, 0x23, 0xAC, 0xC5, 0x4C,
- 0x3F, 0x72, 0x6A, 0xF7, 0x08, 0x31, 0x6B, 0x61, 0x21, 0x47,
- 0xA1, 0x67, 0x54, 0xCE, 0x17, 0x01, 0x07, 0x7F, 0x41, 0xA1,
- 0x7A, 0xC2, 0x73, 0xFD, 0x08, 0xE1, 0xF9, 0x9E, 0xBB, 0xE2,
- 0x91, 0x0C, 0x21, 0x1D, 0x93, 0x82, 0x9F, 0x5D, 0xE2, 0x10,
- 0x9B, 0x8F, 0x4D, 0xEC, 0x22, 0x76, 0x29, 0xE5, 0xF1, 0x0C,
- 0x15, 0x62, 0x50, 0x1B, 0xB7, 0x6F, 0x6C, 0xDB, 0xE2, 0xDD,
- 0x7F, 0x15, 0xD6, 0xFE, 0x7E, 0x22, 0x31, 0x7B, 0x53, 0x8D,
- 0xC7, 0xB6, 0x30, 0xBB, 0xDD, 0x07, 0x7B, 0x18, 0x97, 0x43,
- 0x5E, 0x3D, 0xDE, 0xC7, 0xAB, 0xAD, 0x04, 0x4B, 0x26, 0xF0,
- 0xD3, 0xB6, 0xC5, 0xE2, 0x65, 0x9A, 0xCA, 0xF1, 0xD7, 0xBD,
- 0x25, 0xFF, 0x25, 0x58, 0x42, 0xD2, 0x42, 0xDD, 0x3A, 0x95,
- 0xE1, 0xF5, 0xAA, 0xE1, 0xDF, 0x52, 0x8D, 0x7B, 0xAA, 0x91,
- 0x4B, 0xB3, 0xF1, 0x4F, 0x02, 0xDC, 0xA2, 0xEF, 0x98, 0xCD,
- 0xDE, 0xFF, 0x8F, 0xAD, 0x77, 0xB5, 0x9C, 0x66, 0x22, 0x4F,
- 0x38, 0xE5, 0xC8, 0x9F, 0x4C, 0xA9, 0xC1, 0xFB, 0x1F, 0xBB,
- 0xCA, 0x21, 0xD7, 0xF5, 0xCC, 0xDD, 0x65, 0x84, 0x11, 0x85,
- 0x4D, 0xFB, 0xF3, 0x6A, 0x7E, 0x0C, 0xE9, 0x1C, 0x18, 0xD1,
- 0x19, 0x7C, 0x4B, 0x0A, 0xC3, 0x7A, 0x4D, 0x9C, 0x82, 0x02,
- 0xF9, 0xF2, 0x4B, 0xF7, 0xA2, 0xED, 0x46, 0x1A, 0x9F, 0x21,
- 0x18, 0x19, 0x97, 0x4A, 0x3D, 0xD8, 0x02, 0xE1, 0x25, 0xF4,
- 0xDA, 0x8F, 0x71, 0x0B, 0xD4, 0x8F, 0x65, 0x72, 0x44, 0x2F,
- 0x00, 0x6F, 0x25, 0xD0, 0x91, 0x26, 0x0F, 0xC0, 0x3E, 0xFF,
- 0xC7, 0x83, 0x6F, 0x44, 0xDE, 0x91, 0xC8, 0xFC, 0x9A, 0xE5,
- 0x25, 0xF5, 0x6E, 0x24, 0xAB, 0x60, 0x3A, 0x93, 0x34, 0xFB,
- 0x69, 0x4E, 0xFA, 0x33, 0x64, 0x34, 0x20, 0x86, 0x75, 0x91,
- 0xEF, 0xAE, 0xDC, 0xD2, 0xCD, 0xB7, 0x75, 0x5D, 0xCF, 0x53,
- 0xF1, 0xB7, 0x25, 0x58, 0x01, 0x51, 0x41, 0xA8, 0xFA, 0xE7,
- 0x85, 0x93, 0x3F, 0x63, 0x65, 0x59, 0x4D, 0x2C, 0x36, 0xB5,
- 0x68, 0x80, 0xD9, 0x0A, 0xFF, 0x24, 0xF4, 0xE6, 0x92, 0xAA,
- 0xF1, 0xDE, 0x9D, 0x8A, 0x1C, 0x95, 0xB5, 0x2C, 0x4A, 0x65,
- 0xFF, 0x36, 0x80, 0xCD, 0xB9, 0x66, 0xAB, 0x5C, 0x38, 0xA7,
- 0x4A, 0xD4, 0xDC, 0x19, 0x05, 0x7E, 0xC5, 0x89, 0xAF, 0x62,
- 0x3A, 0xF7, 0xBA, 0x37, 0x6A, 0x20, 0x56, 0xBB, 0x93, 0x36,
- 0xAF, 0x72, 0x9F, 0xC2, 0x27, 0x95, 0xE0, 0x9D, 0xB3, 0x44,
- 0xC5, 0xA7, 0xF9, 0xE6, 0x55, 0x65, 0xD6, 0xFA, 0x3E, 0xB5,
- 0x1E, 0xF0, 0x1D, 0x14, 0x8D, 0xF2, 0x35, 0xF7, 0x01, 0xA0,
- 0x8B, 0x6F, 0xED, 0x20, 0xC2, 0x10, 0x36, 0x4F, 0x24, 0x75,
- 0x3A, 0xA6, 0x3F, 0x88, 0x06, 0x0F, 0x26, 0x6E, 0x06, 0x5C,
- 0xC3, 0x59, 0x74, 0x05, 0x85, 0xC2, 0x5D, 0xB0, 0x91, 0x25,
- 0x15, 0x13, 0xEE, 0x32, 0x2F, 0x86, 0x5D, 0x4F, 0x93, 0x50,
- 0x80, 0x1F, 0x16, 0x8D, 0x35, 0xCC, 0x9F, 0xB5, 0xAB, 0xD3,
- 0x84, 0x56, 0xEF, 0x26, 0x56, 0x25, 0x9B, 0x6C, 0xAF, 0x62,
- 0xDE, 0xC2, 0x97, 0xF5, 0x51, 0x52, 0x97, 0x0A, 0x06, 0x90,
- 0xF8, 0xB7, 0xCE, 0x38, 0xD8, 0xE2, 0xBC, 0x4E, 0x36, 0x67,
- 0x50, 0xF9, 0xE7, 0x48, 0x84, 0x9B, 0x73, 0x98, 0x0C, 0xC4,
- 0xF8, 0xC8, 0x87, 0x9B, 0x04, 0xBC, 0x5F, 0x3E, 0x32, 0x00,
- 0x4E, 0x89, 0xF8, 0xCA, 0xFA, 0x88, 0x69, 0x63, 0xD6, 0x51,
- 0x62, 0x89, 0x5C, 0x83, 0x5B, 0xC0, 0x6C, 0xD1, 0x84, 0x77,
- 0x94, 0x9A, 0x91, 0xFE, 0x53, 0x4A, 0x53, 0x13, 0x4A, 0xF9,
- 0x8F, 0xB9, 0x84, 0x9A, 0xC8, 0xB6, 0x40, 0xEC, 0xA4, 0x22,
- 0xCE, 0x57, 0x52, 0x2B, 0x4F, 0x11, 0x79, 0x7C, 0x42, 0xE8,
- 0x37, 0x42, 0x84, 0xE6, 0x07, 0x94, 0xFA, 0x32, 0x14, 0x3E,
- 0x2C, 0x7B, 0x6D, 0xE4, 0xAC, 0x10, 0xBF, 0xF3, 0x57, 0x8A,
- 0x8E, 0x42, 0xBF, 0xEB, 0x17, 0x3B, 0xAC, 0x15, 0xA4, 0xAC,
- 0x8F, 0x0E, 0xDA, 0x83, 0xF2, 0x73, 0x39, 0x37, 0x11, 0x9B,
- 0x51, 0x96, 0x02, 0xA5, 0x11, 0xD3, 0xF6, 0xB6, 0x06, 0x72,
- 0xEB, 0xED, 0x8E, 0x28, 0x4E, 0x55, 0x37, 0xF0, 0x71, 0xF9,
- 0xAB, 0x26, 0x75, 0x00, 0x50, 0x78, 0x5A, 0x90, 0xCD, 0xCB,
- 0xE2, 0x42, 0x9C, 0xE4, 0xD3, 0x65, 0x48, 0x45, 0x14, 0xDD,
- 0xB2, 0x4A, 0x83, 0x64, 0x94, 0x6E, 0x96, 0x0B, 0xB1, 0x57,
- 0xFE, 0xBE, 0x51, 0x5C, 0x33, 0x77, 0x7C, 0x5D, 0xBF, 0xF3,
- 0xD1, 0x27, 0x25, 0x8A, 0x4B, 0x92, 0x8E, 0x53, 0x63, 0x68,
- 0xB8, 0xA1, 0x62, 0xAD, 0x7B, 0x86, 0x12, 0xF9, 0x24, 0xFD,
- 0x8F, 0x61, 0xEC, 0xE9, 0x5B, 0x5F, 0xA3, 0xA7, 0x2C, 0xC2,
- 0xFB, 0x0C, 0x25, 0x17, 0x8E, 0x82, 0x2B, 0x1B, 0xDA, 0x58,
- 0xEF, 0xB8, 0x6E, 0x64, 0xC3, 0x8D, 0xC7, 0x82, 0x26, 0x72,
- 0xED, 0xDC, 0x97, 0x89, 0xF2, 0xD4, 0x40, 0x7C, 0xA5, 0x1B,
- 0x04, 0x24, 0xFC, 0x2C, 0x36, 0x57, 0xA7, 0xB8, 0x1A, 0xA2,
- 0x28, 0xB3, 0x16, 0x56, 0x77, 0xF7, 0xA3, 0x50, 0x62, 0x5E,
- 0xFE, 0x72, 0x74, 0xB3, 0x76, 0xD9, 0xF4, 0xD5, 0xCA, 0x7E,
- 0x14, 0x80, 0x98, 0xB9, 0x50, 0xA8, 0x22, 0xB5, 0x5B, 0xD6,
- 0xB3, 0x1D, 0x8B, 0xFC, 0xA5, 0xD0, 0x0F, 0x65, 0x33, 0x3B,
- 0x21, 0x55, 0x19, 0x40, 0x2E, 0x9C, 0xCB, 0xB5, 0xE0, 0x0B,
- 0x68, 0x63, 0x95, 0x2F, 0x97, 0xCC, 0xB0, 0x5C, 0xF3, 0xA4,
- 0x5C, 0x05, 0x21, 0x55, 0x3F, 0xBF, 0x5F, 0xE6, 0xF1, 0x4D,
- 0x75, 0xAA, 0x69, 0xE0, 0x98, 0x0F, 0x39, 0x95, 0x33, 0x99,
- 0xCF, 0xEA, 0x53, 0x45, 0x9C, 0x08, 0xCF, 0x7F, 0x58, 0x27,
- 0x64, 0x71, 0x64, 0x20, 0x42, 0xBD, 0xA2, 0x07, 0x5C, 0xA6,
- 0xEB, 0x4C, 0x65, 0x69, 0x4F, 0x16, 0x46, 0x58, 0x80, 0xD3,
- 0xC3, 0x75, 0x91, 0x1F, 0x55, 0xD7, 0xF2, 0x87, 0xB3, 0x17,
- 0x82, 0xC8, 0x12, 0x59, 0x56, 0x1B, 0x9C, 0x3C, 0xDF, 0x3D,
- 0x6F, 0x4F, 0x6C, 0x02, 0x60, 0x28, 0x0D, 0xD1, 0x31, 0xF7,
- 0xA6, 0xAF, 0x05, 0x6E, 0xCE, 0x17, 0xBC, 0x6A, 0x1B, 0xF7,
- 0xCB, 0x0D, 0x3F, 0x06, 0x8A, 0x01, 0x9A, 0xF2, 0x40, 0xF9,
- 0x0D, 0x01, 0x8E, 0xCC, 0x24, 0x0C, 0xEC, 0x50, 0x44, 0xD5,
- 0x2F, 0xD5, 0x51, 0x10, 0xF5, 0x20, 0x3D, 0x87, 0x5A, 0x39,
- 0xEE, 0x55, 0x2B, 0x9C, 0x34, 0xD8, 0xDF, 0xF6, 0x12, 0xA7,
- 0xE0, 0xBC, 0xB2, 0x3D, 0x5D, 0x42, 0x1B, 0x2F, 0x9C, 0x96,
- 0xAD, 0x1F, 0x2F, 0x89, 0x8B, 0x26, 0x80, 0xF8, 0xA4, 0x07,
- 0xF9, 0x2E, 0xD4, 0xDE, 0xF5, 0x5A, 0x4D, 0xF0, 0x98, 0x7C,
- 0x78, 0xF1, 0x15, 0xBA, 0x16, 0xC7, 0x97, 0x37, 0xF5, 0x6B,
- 0x6A, 0x21, 0x66, 0x61, 0xD1, 0x0C, 0x9E, 0x6C, 0x31, 0x4E,
- 0x20, 0xCB, 0x93, 0x90, 0xD5, 0x3C, 0x2F, 0xCE, 0xF6, 0xEE,
- 0x9E, 0x8F, 0x10, 0xB9, 0xFD, 0x45, 0x32, 0x2D, 0x78, 0x8E,
- 0x1C, 0x19, 0xC5, 0x07, 0xD9, 0xE4, 0xC0, 0x07, 0xB3, 0x2F,
- 0xB6, 0x1E, 0xCE, 0x27, 0x0F, 0xF5, 0x97, 0x46, 0x95, 0xE4,
- 0xC0, 0xE9, 0x42, 0x4A, 0xF9, 0xED, 0x3D, 0xD5, 0x37, 0x1A,
- 0x2B, 0x63, 0x2A, 0xBA, 0x22, 0xD4, 0xC5, 0x67, 0x4B, 0x77,
- 0xB8, 0xD2, 0xEA, 0xE3, 0x42, 0xDE, 0x54, 0x3B, 0xE2, 0x42,
- 0xA4, 0x96, 0xDF, 0xAD, 0xEB, 0x34, 0xB5, 0xDA, 0x7E, 0xEF,
- 0xC9, 0xBF, 0xA2, 0x11, 0x01, 0xC2, 0xF2, 0x0C, 0x5D, 0x6C,
- 0xA8, 0x9A, 0x2F, 0xA9, 0x9A, 0x47, 0x17, 0x9D, 0xF8, 0x34,
- 0x01, 0xC0, 0x8F, 0xBA, 0xE2, 0xC9, 0xA5, 0xA3, 0x02, 0x6C,
- 0x18, 0x01, 0x4B, 0xEA, 0x44, 0xD4, 0x88, 0x9C, 0x36, 0x32,
- 0x55, 0xA2, 0x7E, 0xBF, 0x74, 0x0C, 0xEC, 0x8C, 0x16, 0x4F,
- 0x2E, 0xFB, 0xC2, 0xA9, 0xB6, 0x0E, 0xE6, 0x26, 0x59, 0x40,
- 0x21, 0xB2, 0x97, 0x4C, 0x99, 0xA8, 0xE4, 0xAE, 0xED, 0x66,
- 0x4C, 0x22, 0xAD, 0xD3, 0x62, 0x5A, 0x51, 0x23, 0x2F, 0x3C,
- 0x1D, 0x3A, 0xF5, 0x92, 0x00, 0x7B, 0x42, 0xFA, 0xC1, 0x49,
- 0x37, 0x42, 0xB7, 0x64, 0x8E, 0x1F, 0x5F, 0xA9, 0xB2, 0x03,
- 0xFA, 0xDA, 0xAC, 0x48, 0x3F, 0xF3, 0x80, 0xE0, 0xE1, 0x3D,
- 0x07, 0x99, 0x31, 0x9E, 0x7D, 0x2C, 0x9B, 0x19, 0x6F, 0x81,
- 0x0D, 0x1F, 0x95, 0x04, 0x44, 0x47, 0x80, 0xE0, 0xD6, 0x7C,
- 0x96, 0xF8, 0x6B, 0x1A, 0x2B, 0xAC, 0xC7, 0x6B, 0x6E, 0x12,
- 0xF8, 0x15, 0xA2, 0xB7, 0xFF, 0x2C, 0x94, 0x2E, 0xEF, 0xB0,
- 0xF9, 0xF7, 0x3F, 0x41, 0xF5, 0x8B, 0x17, 0x22, 0x58, 0x72,
- 0x00, 0xD1, 0xB8, 0x44, 0x5A, 0x75, 0xDC, 0x5D, 0xF5, 0x5F,
- 0x7F, 0x4C, 0xD6, 0xFD, 0x6E, 0xE5, 0xBD, 0x80, 0xD6, 0x5C,
- 0x59, 0x5F, 0x0E, 0x6A, 0xAA, 0x4A, 0x57, 0x40, 0x63, 0xB6,
- 0xBD, 0x4F, 0xDF, 0xD8, 0x40, 0x07, 0x17, 0x8D, 0x85, 0x79,
- 0xD2, 0x2F, 0x64, 0xC0, 0xC9, 0xA3, 0x73, 0x2F, 0xB2, 0xA9,
- 0x23, 0x78, 0xE3, 0xB9, 0x21, 0x85, 0x91, 0x34, 0x45, 0xCF,
- 0x0A, 0x1C, 0x55, 0x52, 0xF8, 0x5D, 0x2C, 0x42, 0x19, 0x10,
- 0xDB, 0x4E, 0x1E, 0x33, 0x5C, 0xED, 0x8F, 0xD7, 0x94, 0x6A,
- 0x43, 0x6A, 0xD2, 0xBF, 0x54, 0xB8, 0x8C, 0xFA, 0x6A, 0xEB,
- 0xD0, 0x12, 0x65, 0xA4, 0x2F, 0x14, 0x51, 0xAC, 0xE4, 0x83,
- 0x0F, 0xDC, 0x39, 0xB0, 0xCD, 0x31, 0xC4, 0x61, 0xEB, 0xE7,
- 0x26, 0x9A, 0x4C, 0xCE, 0x49, 0x99, 0xD0, 0xBB, 0x90, 0x8A,
- 0x30, 0xDF, 0x24, 0xA9, 0x50, 0x0B, 0xAA, 0xC8, 0xEB, 0x7D,
- 0xD9, 0x72, 0xF8, 0x93, 0xCF, 0x76, 0x6A, 0x6F, 0x38, 0xCC,
- 0x50, 0x88, 0x45, 0x2E, 0x78, 0xAD, 0xD4, 0xEC, 0xC1, 0xB8,
- 0xBE, 0x7C, 0x4B, 0x79, 0xA1, 0xA1, 0xA8, 0x25, 0xD9, 0x72,
- 0x20, 0x2D, 0x22, 0x20, 0x5E, 0x80, 0x92, 0x88, 0x08, 0x27,
- 0xE5, 0xB4, 0xF4, 0xAA, 0xCC, 0xB0, 0x42, 0x67, 0x61, 0xD6,
- 0x80, 0x31, 0x4A, 0xA8, 0xFF, 0xE4, 0xBA, 0x49, 0x7A, 0xF9,
- 0x85, 0xD3, 0xE4, 0x96, 0xB6, 0x42, 0x87, 0x23, 0xF6, 0x81,
- 0xBD, 0x1F, 0xB0, 0xC9, 0x02, 0xC2, 0x61, 0x9D, 0xA0, 0xCE,
- 0xF6, 0x28, 0xF5, 0xA8, 0x3E, 0x97, 0xBB, 0xB9, 0xE5, 0x0D,
- 0x2B, 0x8E, 0x32, 0x6A, 0x18, 0x06, 0xA5, 0xC4, 0xCF, 0xC0,
- 0xF7, 0xB8, 0x12, 0x76, 0x91, 0xDE, 0xD1, 0xD6, 0xA8, 0x3A,
- 0xF8, 0xEC, 0xCB, 0xD0, 0x26, 0x76, 0x31, 0xE3, 0xC9, 0x0A,
- 0xC5, 0xB3, 0xEF, 0x00, 0x10, 0xEA, 0xED, 0x1D, 0x95, 0x30,
- 0x6F, 0x0B, 0xA5, 0x44, 0xD9, 0xF1, 0x1E, 0x65, 0xE6, 0x0F,
- 0xD1, 0x85, 0xC7, 0x77, 0xE2, 0x30, 0x21, 0x1A, 0x94, 0x26,
- 0xF8, 0x4A, 0x54, 0x57, 0x48, 0x88, 0x03, 0x25, 0xF1, 0x67,
- 0x21, 0x8E, 0xA9, 0xFD, 0x2F, 0x4F, 0x49, 0x06, 0xC5, 0x83,
- 0x44, 0xC4, 0xC7, 0x33, 0x59, 0x59, 0x83, 0x59, 0x70, 0xA9,
- 0x2C, 0xF6, 0xE9, 0x02, 0xA5, 0xF8, 0x07, 0xAF, 0x7C, 0xFD,
- 0xCA, 0x6A, 0x53, 0x3B, 0xBF, 0x80, 0x15, 0x0C, 0xE8, 0xB7,
- 0x15, 0xF9, 0xC3, 0x5A, 0x32, 0xF4, 0x26, 0x78, 0x03, 0xE7,
- 0x7C, 0x1A, 0x0D, 0x52, 0x4A, 0x2B, 0x1F, 0xDE, 0x90, 0x30,
- 0x2C, 0x4A, 0x48, 0x94, 0x4E, 0xB9, 0x74, 0x85, 0x00, 0x37,
- 0xD9, 0xAF, 0xCE, 0x91, 0xC3, 0xEC, 0xC8, 0xDA, 0x64, 0x54,
- 0xAE, 0x44, 0x34, 0x4E, 0xAA, 0x22, 0x29, 0xEE, 0xD5, 0x2B,
- 0xAC, 0x40, 0x7F, 0x2E, 0x05, 0x98, 0x31, 0x85, 0xD1, 0x9E,
- 0x3E, 0xE8, 0xDB, 0xFC, 0x18, 0x5C, 0x29, 0x61, 0x18, 0x9A,
- 0x68, 0x56, 0x0E, 0x66, 0x78, 0x1B, 0x0A, 0x85, 0x7F, 0xD2,
- 0x70, 0xD8, 0x67, 0xFC, 0x57, 0xB6, 0x60, 0x75, 0x8A, 0xF3,
- 0xAE, 0x91, 0x4E, 0xEC, 0xC9, 0x14, 0x22, 0x3E, 0x8C, 0x08,
- 0x84, 0x1B, 0x58, 0x3C, 0x95, 0x03, 0x7D, 0x33, 0x1A, 0x31,
- 0x01, 0x26, 0xC8, 0x4B, 0x9D, 0x4D, 0x2A, 0x53, 0xAE, 0xB8,
- 0xA3, 0xCF, 0x8C, 0x4F, 0xE6, 0x5C, 0x9A, 0x1A, 0xFD, 0xBC,
- 0xE0, 0x03, 0x45, 0xB0, 0x96, 0xE7, 0xC5, 0x3B, 0xA3, 0x09,
- 0x93, 0x08, 0x13, 0x6B, 0xF0, 0x68, 0x12, 0x13, 0x10, 0xE6,
- 0x9B, 0xAF, 0x5D, 0x68, 0xEE, 0x31, 0x09, 0xD8, 0xC9, 0x5E,
- 0xC8, 0xE3, 0x85, 0x0B, 0xE7, 0x1A, 0x3A, 0x2B, 0xFE, 0x80,
- 0xAF, 0x13, 0x13, 0xED, 0xB3, 0xA4, 0xE7, 0x23, 0xE7, 0xA9,
- 0x8E, 0xA3, 0x9E, 0xC5, 0x73, 0x1A, 0x47, 0x4E, 0x0A, 0xFB,
- 0xDD, 0x17, 0x19, 0x9E, 0xCB, 0x29, 0x6D, 0x2D, 0x94, 0xB2,
- 0xF8, 0x3E, 0x1B, 0x5F, 0x5C, 0xB1, 0x6E, 0x0A, 0x6B, 0x7B,
- 0xEE, 0x9F, 0x35, 0x2C, 0xD8, 0x81, 0xDF, 0x25, 0xFA, 0x9B,
- 0xCD, 0x28, 0xA6, 0x7D, 0x08, 0x3D, 0x54, 0xF3, 0x67, 0x30,
- 0x36, 0xD2, 0xEE, 0x22, 0x13, 0xB9, 0xB2, 0x71, 0x07, 0xBF,
- 0xB3, 0x81, 0x25, 0xB7, 0xFA, 0xDA, 0xEE, 0xCF, 0x04, 0xA9,
- 0xC0, 0xF0, 0xC1, 0xC2, 0xFE, 0x77, 0x19, 0xA6, 0x3B, 0xCC,
- 0x7C, 0xE1, 0x9A, 0x99, 0xDA, 0x11, 0xEF, 0x7B, 0x9D, 0x89,
- 0xE0, 0x9F, 0x22, 0x8E, 0x93, 0x6D, 0x86, 0x60, 0x7E, 0x61,
- 0xD4, 0xD9, 0xC9, 0x6B, 0x74, 0x6E, 0x17, 0xDC, 0x7A, 0xB5,
- 0xF3, 0xFF, 0xD2, 0xDB, 0xFC, 0xCD, 0x34, 0x05, 0x96, 0xDE,
- 0x62, 0xDF, 0x60, 0x8F, 0xBA, 0x29, 0x7C, 0xE2, 0x5A, 0xDB,
- 0x21, 0x39, 0x3D, 0x27, 0x6B, 0x7B, 0x9E, 0xFC, 0x3F, 0x78,
- 0xAA, 0xFA, 0xE7, 0x07, 0x64, 0xAB, 0xA0, 0x20, 0x72, 0x31,
- 0xE5, 0x25, 0x53, 0x65, 0x91, 0x8A, 0x33, 0x4E, 0x0B, 0x84,
- 0x30, 0xB4, 0x15, 0xD3, 0x28, 0x4D, 0xB5, 0x28, 0xF5, 0x20,
- 0xF0, 0x4C, 0x8B, 0x7A, 0xC4, 0x74, 0x64, 0x54, 0xF0, 0x52,
- 0x6D, 0x45, 0xF1, 0x79, 0xD4, 0xBB, 0xE0, 0xB6, 0xA7, 0x2C,
- 0x38, 0x1A, 0x7B, 0xF3, 0x17, 0x6B, 0x53, 0x73, 0x3F, 0xC3,
- 0x22, 0x55, 0x34, 0x92, 0x5D, 0xB5, 0x80, 0x5F, 0x37, 0xB8,
- 0xAF, 0x2C, 0x12, 0xA1, 0xA1, 0x29, 0x1A, 0xDC, 0x31, 0xA5,
- 0xA3, 0xE6, 0xED, 0xD9, 0x4C, 0x34, 0x53, 0x01, 0x79, 0xDE,
- 0xF1, 0x48, 0x31, 0x80, 0x5D, 0x0D, 0x4C, 0x62, 0x70, 0xC1,
- 0x3C, 0xB1, 0x0E, 0x4D, 0x72, 0x45, 0x25, 0x33, 0x0B, 0x38,
- 0xB2, 0x3E, 0x95, 0xC0, 0xA8, 0x42, 0x51, 0xD9, 0x35, 0x75,
- 0xFE, 0x10, 0x4A, 0x48, 0x11, 0x82, 0xE8, 0x87, 0x04, 0x6B,
- 0x06, 0x60, 0xA8, 0x0E, 0xAC, 0x8B, 0xFA, 0x40, 0xB1, 0x63,
- 0x63, 0x91, 0x17, 0x2A, 0x4F, 0x2A, 0xD8, 0x6C, 0x43, 0xAF,
- 0xDC, 0xE2, 0x72, 0x76, 0xBE, 0x46, 0xCB, 0x12, 0xA4, 0x73,
- 0x03, 0xAB, 0x11, 0x9E, 0x0D, 0x41, 0x27, 0x8C, 0x18, 0xEF,
- 0xE6, 0xC2, 0xB3, 0x09, 0xF0, 0x36, 0xA6, 0xE4, 0xFF, 0xE5,
- 0x91, 0xD8, 0xD7, 0xF5, 0x1E, 0x6D, 0x34, 0x19, 0xF1, 0xAF,
- 0x9B, 0x9A, 0xF8, 0x10, 0x92, 0x11, 0x85, 0xEA, 0x38, 0xF6,
- 0x89, 0x40, 0x6D, 0xB0, 0x84, 0xEB, 0xBA, 0xAD, 0xB1, 0x55,
- 0xB0, 0x73, 0x52, 0xF6, 0xB8, 0xD2, 0xCF, 0xED, 0x6B, 0xF5,
- 0xFA, 0x01, 0x2A, 0x8E, 0xC7, 0x06, 0x77, 0xEB, 0xF3, 0x84,
- 0xFD, 0x9B, 0x17, 0x54, 0x31, 0x73, 0xFE, 0xC3, 0x71, 0xF8,
- 0x41, 0xFF, 0xA4, 0xD3, 0x7D, 0xB2, 0xBD, 0xBA, 0xD6, 0xE9,
- 0x1E, 0x8F, 0x5B, 0x8D, 0x3A, 0x3C, 0x0C, 0xB4, 0xFE, 0x9B,
- 0x49, 0x69, 0x8C, 0x3D, 0xA7, 0xF5, 0x79, 0x46, 0xE9, 0x5E,
- 0xE1, 0x07, 0x52, 0xB7, 0x24, 0x51, 0x6C, 0x59, 0x74, 0x2C,
- 0xEC, 0x7C, 0x88, 0x41, 0x2E, 0x45, 0x91, 0x23, 0xA4, 0x81,
- 0xC9, 0x37, 0xC0, 0xDE, 0xC0, 0x09, 0x5A, 0x00, 0xFD, 0x2D,
- 0x97, 0x71, 0x6A, 0xAF, 0x6E, 0x5D, 0x03, 0x67, 0xAA, 0xFD
-
-};
-static const int sizeof_bench_dilithium_aes_level2_key = sizeof(bench_dilithium_aes_level2_key);
-
-/* certs/dilithium/bench_dilithium_aes_level3_key.der */
-static const unsigned char bench_dilithium_aes_level3_key[] =
-{
- 0x30, 0x82, 0x17, 0x5A, 0x02, 0x01, 0x00, 0x30, 0x0D, 0x06,
- 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x0B,
- 0x06, 0x05, 0x04, 0x82, 0x17, 0x44, 0x04, 0x82, 0x17, 0x40,
- 0x62, 0x93, 0x71, 0x4C, 0xCD, 0x7A, 0xD1, 0x75, 0xD1, 0xBB,
- 0x2A, 0xC9, 0x54, 0xBF, 0xDA, 0xF1, 0x70, 0xE9, 0xEF, 0x8D,
- 0x08, 0x66, 0xE9, 0xD6, 0xE3, 0x6F, 0x4B, 0x99, 0xEB, 0x44,
- 0x51, 0x12, 0x64, 0x80, 0x0D, 0x29, 0x4B, 0x24, 0x6B, 0x6A,
- 0xAC, 0xD9, 0x87, 0x9A, 0x2D, 0x49, 0xF6, 0xCC, 0x69, 0xC0,
- 0xAE, 0xD9, 0xB2, 0xE1, 0xF5, 0xB8, 0xC1, 0x98, 0x77, 0x73,
- 0x1F, 0x1E, 0xE6, 0x11, 0x0A, 0x1F, 0x51, 0xDF, 0xD1, 0x4A,
- 0x32, 0x8D, 0xC2, 0x36, 0xA6, 0xAF, 0x6F, 0x01, 0x57, 0xA3,
- 0x56, 0x17, 0x5F, 0x5E, 0xDC, 0x39, 0xD8, 0xC8, 0xB7, 0xE1,
- 0x1B, 0x2F, 0x51, 0xC6, 0xAF, 0xC4, 0x65, 0x53, 0x34, 0x21,
- 0x81, 0x28, 0x44, 0x82, 0x23, 0x80, 0x21, 0x17, 0x08, 0x42,
- 0x88, 0x48, 0x17, 0x22, 0x31, 0x01, 0x42, 0x36, 0x83, 0x76,
- 0x00, 0x45, 0x40, 0x23, 0x54, 0x85, 0x74, 0x11, 0x22, 0x85,
- 0x31, 0x38, 0x81, 0x26, 0x38, 0x55, 0x15, 0x51, 0x42, 0x44,
- 0x53, 0x81, 0x81, 0x47, 0x76, 0x70, 0x84, 0x15, 0x78, 0x70,
- 0x34, 0x34, 0x02, 0x54, 0x65, 0x07, 0x35, 0x66, 0x51, 0x10,
- 0x84, 0x03, 0x45, 0x33, 0x02, 0x51, 0x55, 0x20, 0x37, 0x76,
- 0x00, 0x24, 0x58, 0x33, 0x24, 0x18, 0x67, 0x77, 0x31, 0x83,
- 0x45, 0x17, 0x55, 0x12, 0x64, 0x07, 0x31, 0x08, 0x42, 0x56,
- 0x45, 0x80, 0x32, 0x28, 0x61, 0x04, 0x83, 0x17, 0x10, 0x58,
- 0x00, 0x18, 0x80, 0x85, 0x24, 0x15, 0x73, 0x38, 0x67, 0x84,
- 0x68, 0x64, 0x85, 0x21, 0x32, 0x18, 0x41, 0x22, 0x34, 0x10,
- 0x76, 0x05, 0x84, 0x47, 0x86, 0x26, 0x50, 0x86, 0x76, 0x72,
- 0x25, 0x01, 0x36, 0x36, 0x67, 0x57, 0x42, 0x62, 0x10, 0x77,
- 0x15, 0x66, 0x52, 0x20, 0x81, 0x86, 0x28, 0x42, 0x52, 0x73,
- 0x44, 0x22, 0x04, 0x34, 0x15, 0x68, 0x65, 0x52, 0x30, 0x83,
- 0x60, 0x20, 0x00, 0x57, 0x56, 0x28, 0x14, 0x16, 0x51, 0x87,
- 0x57, 0x72, 0x01, 0x31, 0x31, 0x41, 0x58, 0x85, 0x80, 0x51,
- 0x72, 0x27, 0x86, 0x11, 0x80, 0x76, 0x13, 0x66, 0x50, 0x18,
- 0x75, 0x21, 0x06, 0x83, 0x20, 0x54, 0x44, 0x64, 0x44, 0x38,
- 0x50, 0x56, 0x12, 0x78, 0x80, 0x71, 0x66, 0x20, 0x28, 0x83,
- 0x50, 0x02, 0x46, 0x51, 0x86, 0x43, 0x55, 0x73, 0x38, 0x06,
- 0x70, 0x06, 0x63, 0x43, 0x70, 0x81, 0x68, 0x21, 0x27, 0x14,
- 0x75, 0x68, 0x68, 0x34, 0x03, 0x71, 0x34, 0x02, 0x28, 0x44,
- 0x48, 0x46, 0x27, 0x16, 0x73, 0x60, 0x86, 0x86, 0x18, 0x80,
- 0x05, 0x71, 0x88, 0x22, 0x13, 0x78, 0x50, 0x01, 0x60, 0x11,
- 0x60, 0x77, 0x14, 0x66, 0x67, 0x66, 0x55, 0x56, 0x33, 0x53,
- 0x28, 0x25, 0x54, 0x52, 0x31, 0x23, 0x56, 0x24, 0x44, 0x55,
- 0x48, 0x67, 0x37, 0x64, 0x82, 0x02, 0x65, 0x88, 0x63, 0x41,
- 0x83, 0x34, 0x30, 0x54, 0x63, 0x80, 0x07, 0x60, 0x81, 0x05,
- 0x70, 0x83, 0x14, 0x60, 0x74, 0x04, 0x82, 0x38, 0x28, 0x24,
- 0x84, 0x20, 0x68, 0x78, 0x81, 0x53, 0x71, 0x34, 0x81, 0x62,
- 0x07, 0x63, 0x22, 0x45, 0x81, 0x74, 0x75, 0x03, 0x27, 0x26,
- 0x50, 0x34, 0x47, 0x36, 0x86, 0x38, 0x17, 0x13, 0x10, 0x06,
- 0x68, 0x43, 0x62, 0x33, 0x32, 0x53, 0x44, 0x48, 0x46, 0x08,
- 0x87, 0x40, 0x27, 0x17, 0x68, 0x52, 0x38, 0x11, 0x57, 0x58,
- 0x70, 0x83, 0x32, 0x70, 0x60, 0x45, 0x67, 0x64, 0x88, 0x73,
- 0x01, 0x40, 0x71, 0x60, 0x60, 0x20, 0x13, 0x71, 0x23, 0x75,
- 0x14, 0x32, 0x78, 0x60, 0x55, 0x84, 0x63, 0x11, 0x47, 0x82,
- 0x64, 0x68, 0x48, 0x63, 0x04, 0x14, 0x64, 0x85, 0x64, 0x58,
- 0x10, 0x62, 0x70, 0x07, 0x02, 0x88, 0x57, 0x67, 0x42, 0x35,
- 0x30, 0x02, 0x56, 0x17, 0x41, 0x57, 0x54, 0x77, 0x06, 0x43,
- 0x71, 0x48, 0x64, 0x34, 0x18, 0x42, 0x08, 0x12, 0x47, 0x70,
- 0x78, 0x24, 0x85, 0x34, 0x68, 0x30, 0x02, 0x01, 0x24, 0x01,
- 0x53, 0x17, 0x67, 0x58, 0x72, 0x68, 0x53, 0x61, 0x63, 0x30,
- 0x36, 0x87, 0x60, 0x77, 0x35, 0x14, 0x31, 0x17, 0x47, 0x60,
- 0x25, 0x47, 0x64, 0x06, 0x77, 0x13, 0x63, 0x48, 0x43, 0x85,
- 0x40, 0x88, 0x62, 0x01, 0x07, 0x83, 0x03, 0x21, 0x86, 0x34,
- 0x48, 0x44, 0x71, 0x72, 0x85, 0x77, 0x64, 0x82, 0x78, 0x66,
- 0x73, 0x28, 0x30, 0x71, 0x74, 0x76, 0x21, 0x12, 0x26, 0x24,
- 0x72, 0x24, 0x66, 0x58, 0x27, 0x66, 0x71, 0x20, 0x26, 0x30,
- 0x07, 0x60, 0x26, 0x62, 0x05, 0x21, 0x83, 0x77, 0x61, 0x60,
- 0x24, 0x55, 0x64, 0x73, 0x00, 0x52, 0x35, 0x21, 0x27, 0x01,
- 0x78, 0x78, 0x45, 0x38, 0x87, 0x23, 0x51, 0x88, 0x31, 0x62,
- 0x36, 0x20, 0x10, 0x67, 0x23, 0x53, 0x38, 0x18, 0x76, 0x71,
- 0x40, 0x68, 0x08, 0x86, 0x80, 0x46, 0x25, 0x27, 0x84, 0x76,
- 0x81, 0x00, 0x20, 0x06, 0x50, 0x85, 0x15, 0x32, 0x27, 0x77,
- 0x30, 0x77, 0x21, 0x52, 0x05, 0x76, 0x24, 0x51, 0x18, 0x06,
- 0x50, 0x26, 0x52, 0x86, 0x30, 0x27, 0x31, 0x11, 0x12, 0x31,
- 0x34, 0x75, 0x48, 0x62, 0x45, 0x64, 0x08, 0x26, 0x23, 0x48,
- 0x66, 0x41, 0x78, 0x26, 0x26, 0x40, 0x36, 0x44, 0x36, 0x34,
- 0x00, 0x61, 0x34, 0x67, 0x31, 0x03, 0x11, 0x24, 0x32, 0x80,
- 0x06, 0x44, 0x34, 0x48, 0x42, 0x27, 0x52, 0x48, 0x76, 0x04,
- 0x83, 0x07, 0x36, 0x86, 0x40, 0x84, 0x72, 0x56, 0x50, 0x37,
- 0x23, 0x51, 0x52, 0x64, 0x20, 0x16, 0x05, 0x17, 0x57, 0x26,
- 0x22, 0x58, 0x32, 0x65, 0x47, 0x35, 0x51, 0x32, 0x04, 0x74,
- 0x37, 0x00, 0x11, 0x01, 0x66, 0x17, 0x12, 0x14, 0x81, 0x02,
- 0x07, 0x53, 0x72, 0x48, 0x43, 0x73, 0x20, 0x60, 0x70, 0x73,
- 0x47, 0x56, 0x07, 0x76, 0x36, 0x66, 0x72, 0x40, 0x83, 0x66,
- 0x07, 0x11, 0x13, 0x16, 0x40, 0x45, 0x53, 0x58, 0x75, 0x21,
- 0x83, 0x15, 0x36, 0x67, 0x65, 0x83, 0x32, 0x82, 0x54, 0x41,
- 0x71, 0x61, 0x60, 0x74, 0x30, 0x16, 0x35, 0x81, 0x33, 0x35,
- 0x16, 0x06, 0x13, 0x37, 0x36, 0x24, 0x57, 0x54, 0x43, 0x44,
- 0x85, 0x74, 0x38, 0x11, 0x27, 0x23, 0x33, 0x41, 0x70, 0x36,
- 0x52, 0x87, 0x42, 0x23, 0x31, 0x08, 0x01, 0x50, 0x17, 0x80,
- 0x64, 0x46, 0x06, 0x50, 0x23, 0x20, 0x88, 0x85, 0x05, 0x24,
- 0x68, 0x44, 0x36, 0x32, 0x20, 0x84, 0x55, 0x07, 0x23, 0x70,
- 0x52, 0x14, 0x61, 0x17, 0x20, 0x03, 0x25, 0x58, 0x74, 0x24,
- 0x71, 0x48, 0x20, 0x51, 0x25, 0x24, 0x53, 0x28, 0x15, 0x37,
- 0x57, 0x00, 0x76, 0x05, 0x13, 0x52, 0x82, 0x43, 0x64, 0x10,
- 0x51, 0x15, 0x37, 0x57, 0x41, 0x50, 0x64, 0x60, 0x08, 0x60,
- 0x83, 0x83, 0x27, 0x22, 0x77, 0x54, 0x88, 0x26, 0x12, 0x10,
- 0x00, 0x27, 0x65, 0x86, 0x04, 0x67, 0x82, 0x65, 0x42, 0x30,
- 0x50, 0x10, 0x15, 0x35, 0x03, 0x12, 0x50, 0x00, 0x63, 0x50,
- 0x53, 0x65, 0x21, 0x48, 0x03, 0x52, 0x36, 0x78, 0x06, 0x01,
- 0x20, 0x80, 0x01, 0x52, 0x68, 0x26, 0x80, 0x67, 0x06, 0x08,
- 0x11, 0x80, 0x80, 0x74, 0x68, 0x75, 0x13, 0x00, 0x80, 0x12,
- 0x28, 0x28, 0x02, 0x53, 0x06, 0x04, 0x54, 0x70, 0x46, 0x00,
- 0x62, 0x82, 0x44, 0x71, 0x45, 0x67, 0x82, 0x37, 0x17, 0x58,
- 0x32, 0x04, 0x17, 0x34, 0x52, 0x08, 0x83, 0x25, 0x32, 0x23,
- 0x46, 0x61, 0x37, 0x53, 0x12, 0x35, 0x14, 0x35, 0x82, 0x17,
- 0x76, 0x82, 0x74, 0x51, 0x32, 0x85, 0x71, 0x01, 0x62, 0x28,
- 0x28, 0x22, 0x23, 0x27, 0x54, 0x00, 0x86, 0x16, 0x88, 0x27,
- 0x62, 0x38, 0x87, 0x67, 0x84, 0x74, 0x45, 0x45, 0x33, 0x06,
- 0x21, 0x67, 0x81, 0x63, 0x07, 0x87, 0x55, 0x43, 0x08, 0x32,
- 0x36, 0x66, 0x48, 0x00, 0x48, 0x75, 0x14, 0x14, 0x68, 0x43,
- 0x57, 0x10, 0x46, 0x15, 0x87, 0x84, 0x15, 0x87, 0x18, 0x34,
- 0x24, 0x10, 0x41, 0x77, 0x87, 0x01, 0x64, 0x33, 0x10, 0x83,
- 0x10, 0x15, 0x43, 0x40, 0x00, 0x26, 0x72, 0x76, 0x01, 0x12,
- 0x68, 0x33, 0x05, 0x42, 0x14, 0x70, 0x75, 0x65, 0x64, 0x03,
- 0x03, 0x31, 0x66, 0x38, 0x14, 0x20, 0x42, 0x74, 0x02, 0x40,
- 0x84, 0x64, 0x65, 0x45, 0x00, 0x41, 0x86, 0x66, 0x27, 0x06,
- 0x56, 0x02, 0x17, 0x41, 0x76, 0x45, 0x66, 0x85, 0x25, 0x43,
- 0x28, 0x21, 0x01, 0x62, 0x70, 0x50, 0x75, 0x00, 0x24, 0x21,
- 0x65, 0x70, 0x54, 0x16, 0x33, 0x62, 0x14, 0x28, 0x64, 0x86,
- 0x24, 0x70, 0x36, 0x46, 0x50, 0x60, 0x11, 0x32, 0x46, 0x86,
- 0x07, 0x23, 0x70, 0x53, 0x01, 0x43, 0x80, 0x84, 0x41, 0x61,
- 0x34, 0x10, 0x24, 0x57, 0x06, 0x51, 0x60, 0x22, 0x66, 0x88,
- 0x25, 0x74, 0x72, 0x74, 0x64, 0x44, 0x27, 0x03, 0x10, 0x23,
- 0x20, 0x16, 0x22, 0x35, 0x28, 0x32, 0x10, 0x73, 0x22, 0x26,
- 0x31, 0x20, 0x57, 0x65, 0x71, 0x58, 0x14, 0x14, 0x08, 0x87,
- 0x85, 0x80, 0x45, 0x83, 0x77, 0x55, 0x20, 0x34, 0x86, 0x72,
- 0x10, 0x76, 0x76, 0x01, 0x16, 0x33, 0x40, 0x83, 0x32, 0x86,
- 0x04, 0x03, 0x12, 0x78, 0x46, 0x10, 0x88, 0x10, 0x33, 0x76,
- 0x83, 0x14, 0x01, 0x37, 0x62, 0x78, 0x43, 0x21, 0x27, 0x22,
- 0x16, 0x22, 0x55, 0x00, 0x11, 0x74, 0x81, 0x28, 0x60, 0x78,
- 0x74, 0x80, 0x81, 0x80, 0x63, 0x05, 0x51, 0x35, 0x34, 0x70,
- 0x61, 0x02, 0x77, 0x47, 0x40, 0x47, 0x40, 0x87, 0x75, 0x06,
- 0x26, 0x46, 0x53, 0x36, 0x14, 0x66, 0x10, 0x20, 0x43, 0x52,
- 0x47, 0x08, 0x55, 0x26, 0x65, 0x53, 0x28, 0x41, 0x43, 0x11,
- 0x61, 0x27, 0x16, 0x46, 0x31, 0x08, 0x71, 0x26, 0x27, 0x15,
- 0x05, 0x06, 0x66, 0x57, 0x41, 0x31, 0x37, 0x03, 0x15, 0x68,
- 0x08, 0x88, 0x63, 0x34, 0x01, 0x61, 0x01, 0x11, 0x58, 0x66,
- 0x14, 0x22, 0x44, 0x40, 0x02, 0x66, 0x35, 0x37, 0x54, 0x44,
- 0x67, 0x44, 0x08, 0x43, 0x70, 0x20, 0x45, 0x70, 0x38, 0x04,
- 0x65, 0x61, 0x57, 0x32, 0x15, 0x12, 0x83, 0x31, 0x58, 0x46,
- 0x28, 0x08, 0x86, 0x55, 0x12, 0x16, 0x21, 0x70, 0x50, 0x88,
- 0x07, 0x34, 0x32, 0x61, 0x18, 0x50, 0x86, 0x03, 0x58, 0x41,
- 0x43, 0x40, 0x76, 0x63, 0x37, 0x43, 0x71, 0x18, 0x23, 0x25,
- 0x06, 0x71, 0x62, 0x47, 0x16, 0x12, 0x77, 0x84, 0x01, 0x70,
- 0x85, 0x41, 0x07, 0x42, 0x80, 0x71, 0x26, 0x05, 0x85, 0x73,
- 0x14, 0x38, 0x66, 0x31, 0x25, 0x67, 0x82, 0x07, 0x22, 0x73,
- 0x23, 0x34, 0x61, 0x65, 0x45, 0x46, 0x74, 0x64, 0x34, 0x57,
- 0x47, 0x72, 0x75, 0x34, 0x76, 0x11, 0x31, 0x61, 0x77, 0x57,
- 0x68, 0x42, 0x18, 0x18, 0x37, 0x80, 0x06, 0x77, 0x71, 0x30,
- 0x85, 0x42, 0x67, 0x56, 0x42, 0x70, 0x32, 0x53, 0x55, 0x48,
- 0x40, 0x32, 0x37, 0x21, 0x35, 0x15, 0x45, 0x27, 0x85, 0x36,
- 0x61, 0x73, 0x21, 0x26, 0x81, 0x83, 0x64, 0x84, 0x75, 0x75,
- 0x54, 0x68, 0x84, 0x54, 0x75, 0x17, 0x10, 0x35, 0x13, 0x37,
- 0x55, 0x11, 0x62, 0x44, 0x38, 0x38, 0x70, 0x45, 0x84, 0x73,
- 0x78, 0x75, 0x22, 0x42, 0x34, 0x0C, 0x86, 0xF0, 0x92, 0x29,
- 0xBC, 0x51, 0xBB, 0x69, 0x5E, 0x8A, 0x57, 0x55, 0x1E, 0xE8,
- 0x00, 0xF7, 0x97, 0xC7, 0xF5, 0x35, 0xEA, 0xDC, 0x86, 0xD5,
- 0x95, 0x70, 0x09, 0x28, 0x44, 0x93, 0x8B, 0xE1, 0xE2, 0xCE,
- 0xA6, 0x37, 0xAC, 0x68, 0x94, 0x2E, 0xC5, 0xD3, 0xC9, 0x6D,
- 0xAA, 0xF0, 0x46, 0x12, 0xC6, 0xA2, 0xC9, 0x84, 0xD1, 0xB2,
- 0x80, 0x32, 0xC5, 0xBD, 0x41, 0x6D, 0x7C, 0xF8, 0x9C, 0xCA,
- 0x1F, 0xE6, 0x25, 0xBA, 0xDD, 0x18, 0x3F, 0xAE, 0xC3, 0x12,
- 0x39, 0xA6, 0xF5, 0xF1, 0xA0, 0x5A, 0xF7, 0x67, 0x4F, 0x5C,
- 0xF1, 0x72, 0x60, 0x7D, 0xB5, 0xC1, 0x63, 0x9E, 0x4F, 0x96,
- 0x93, 0x6F, 0x56, 0xD3, 0xE1, 0x98, 0xED, 0xA0, 0x3A, 0x5D,
- 0x85, 0x3C, 0x65, 0x57, 0x12, 0x28, 0x17, 0x54, 0x4D, 0x50,
- 0x1B, 0x3C, 0x93, 0x81, 0x05, 0x53, 0x79, 0xFD, 0x1C, 0xC0,
- 0x55, 0x1E, 0xC2, 0xC3, 0x5B, 0xE8, 0x10, 0xF3, 0x4D, 0x89,
- 0x1C, 0x0A, 0xC9, 0xF9, 0x4E, 0x3D, 0x30, 0xF1, 0x52, 0xC3,
- 0xE7, 0xE1, 0xF6, 0x59, 0xEC, 0xCF, 0xF6, 0x87, 0xA6, 0xAD,
- 0xAD, 0x0A, 0x8A, 0x35, 0x84, 0xCB, 0x53, 0x7F, 0x4C, 0x5D,
- 0xD2, 0xAD, 0xB4, 0xBE, 0x28, 0xC6, 0xCC, 0x35, 0xA8, 0x48,
- 0x0A, 0xEA, 0xE9, 0x85, 0x89, 0xE6, 0xC1, 0xA2, 0x7E, 0x72,
- 0x0F, 0xAF, 0xDC, 0xEA, 0x54, 0x4C, 0xF8, 0xA0, 0xB4, 0x4F,
- 0x82, 0x6B, 0xEF, 0x7E, 0xC5, 0xFF, 0x82, 0x9D, 0xE7, 0x6D,
- 0x7A, 0x64, 0x3E, 0xF8, 0x9F, 0x67, 0x34, 0x3D, 0x72, 0xC4,
- 0x6B, 0x5B, 0xE8, 0xE9, 0xBF, 0x7E, 0x3C, 0xC8, 0xB6, 0xF5,
- 0xCA, 0x0D, 0x9A, 0x2E, 0x76, 0xDE, 0xC6, 0x34, 0xCA, 0xEC,
- 0xBC, 0x07, 0x0D, 0x5A, 0x0C, 0xD3, 0x3C, 0xCE, 0xB0, 0x31,
- 0x20, 0xD4, 0x7C, 0x4C, 0x49, 0x52, 0xBA, 0xD2, 0x3C, 0x25,
- 0x36, 0xF1, 0x8A, 0x7F, 0x51, 0x0B, 0x3C, 0xAA, 0xE4, 0xD0,
- 0xA8, 0x07, 0x6B, 0x7E, 0x2C, 0xE0, 0xF0, 0x4B, 0xDE, 0x00,
- 0xD8, 0xD0, 0xD0, 0xA0, 0x2A, 0x2C, 0x5A, 0xB5, 0x84, 0x9A,
- 0x8A, 0x7C, 0x40, 0x41, 0x0B, 0xF3, 0x78, 0x33, 0xBC, 0xC9,
- 0x84, 0xCE, 0x0B, 0xA3, 0x2E, 0x53, 0x43, 0xA5, 0x04, 0x2E,
- 0xD4, 0xA0, 0x88, 0x9B, 0x7C, 0xA1, 0xDD, 0xF4, 0xE9, 0x64,
- 0xCB, 0x13, 0x72, 0x0F, 0xE6, 0x9D, 0x52, 0xDD, 0x17, 0xC3,
- 0x80, 0xEE, 0xD0, 0xB2, 0xD3, 0x34, 0xDF, 0xEC, 0xDE, 0x52,
- 0x5A, 0xFE, 0x0A, 0x1F, 0x51, 0x14, 0x92, 0x56, 0xEC, 0xA4,
- 0x89, 0x8C, 0x4C, 0x0F, 0xAB, 0xB3, 0x67, 0x65, 0x24, 0xAF,
- 0x68, 0x68, 0x01, 0xBD, 0xF7, 0x51, 0x6F, 0x58, 0x59, 0x47,
- 0x04, 0xE1, 0x12, 0xD1, 0x51, 0x42, 0x98, 0x88, 0xFA, 0xFF,
- 0x2D, 0xE3, 0xB8, 0xB1, 0xAE, 0xE3, 0x82, 0xDC, 0xB2, 0x3A,
- 0x4F, 0x2F, 0xBC, 0x99, 0xCD, 0x47, 0xD9, 0xF0, 0x81, 0xAB,
- 0xCE, 0x61, 0x0A, 0x03, 0xC2, 0xF4, 0x7A, 0x09, 0x2F, 0xD3,
- 0x2C, 0xE2, 0x3E, 0xBE, 0xFA, 0xB7, 0x0C, 0xA7, 0x3D, 0xF3,
- 0x1C, 0x46, 0x4C, 0xDC, 0x87, 0xCF, 0x11, 0x47, 0xB2, 0xDE,
- 0x2E, 0x05, 0x2F, 0x9C, 0x40, 0x87, 0x67, 0xF6, 0xE1, 0x49,
- 0x89, 0x9B, 0x3C, 0x52, 0x86, 0x4D, 0x6C, 0xC8, 0x45, 0x90,
- 0xC9, 0x30, 0x09, 0x79, 0xB7, 0x5D, 0xFA, 0x74, 0x4C, 0x9D,
- 0x3C, 0x8B, 0x3C, 0x90, 0xD0, 0x96, 0x59, 0xBD, 0x3E, 0x61,
- 0xD5, 0xC6, 0xCF, 0x05, 0xD7, 0xD3, 0x0F, 0x8A, 0x6E, 0x79,
- 0xBA, 0x85, 0x9C, 0x53, 0x83, 0x28, 0xDC, 0x2C, 0x06, 0xE3,
- 0x10, 0x4B, 0xD9, 0xED, 0x4C, 0xEA, 0x28, 0x9C, 0x3B, 0xF9,
- 0xB1, 0x6B, 0x91, 0xEA, 0xF5, 0x1B, 0x14, 0x6E, 0x6E, 0xBF,
- 0xBC, 0xF4, 0x61, 0x5D, 0x0A, 0x9A, 0xC4, 0x29, 0xC7, 0x50,
- 0x91, 0x6D, 0x6C, 0x5F, 0x5D, 0xB0, 0xBB, 0x5C, 0x2B, 0x40,
- 0xFF, 0x75, 0x73, 0xE3, 0xB6, 0x52, 0x78, 0x32, 0x33, 0x91,
- 0x00, 0x3B, 0xF1, 0x11, 0xA6, 0xBF, 0x9A, 0x1A, 0xD2, 0x0E,
- 0xE2, 0xBB, 0xDF, 0x4F, 0x55, 0x7E, 0x45, 0x4A, 0x1E, 0x45,
- 0x22, 0x42, 0xCA, 0x87, 0x63, 0x9E, 0x82, 0xB7, 0x67, 0xE8,
- 0x2A, 0xDE, 0x3A, 0x2E, 0x61, 0xF1, 0x56, 0xA4, 0x63, 0x9F,
- 0x32, 0xD8, 0xD0, 0xA4, 0xFB, 0xAE, 0xCF, 0x6C, 0xEC, 0x66,
- 0x4D, 0xA7, 0xA4, 0xE1, 0x8C, 0x39, 0xFF, 0x2E, 0xA3, 0xDB,
- 0x01, 0x67, 0xA4, 0x80, 0x03, 0x73, 0xA7, 0x9C, 0x6B, 0x51,
- 0x57, 0x35, 0x0D, 0x1A, 0x44, 0xCD, 0x80, 0x06, 0xA5, 0x2F,
- 0xA0, 0xF3, 0x65, 0x7A, 0xCB, 0x34, 0x58, 0xD3, 0xCF, 0xF7,
- 0x28, 0xBC, 0xB9, 0x1C, 0xE2, 0x22, 0x6C, 0x1E, 0xE5, 0x0D,
- 0x73, 0x1F, 0x8C, 0xA6, 0xF2, 0x94, 0x9B, 0xE5, 0xDA, 0xE3,
- 0x9B, 0x1A, 0xE1, 0x5E, 0x9D, 0xE3, 0x6F, 0x0F, 0x29, 0x57,
- 0xE4, 0x12, 0x32, 0xC1, 0x5C, 0xD3, 0xE8, 0xDE, 0xC1, 0x44,
- 0x40, 0x9B, 0x59, 0x4F, 0xDD, 0x7E, 0xA4, 0x32, 0x8E, 0xE0,
- 0x0D, 0xDC, 0x3F, 0x67, 0x7A, 0xA7, 0x52, 0x67, 0xF1, 0xA1,
- 0xF5, 0x8C, 0xEF, 0xB5, 0xFC, 0x9E, 0x48, 0x39, 0xAC, 0xEF,
- 0xE6, 0x7A, 0x58, 0xFB, 0xEF, 0x2B, 0xBE, 0x80, 0x09, 0x85,
- 0x53, 0x5E, 0x9D, 0x9B, 0x07, 0x18, 0xE8, 0x44, 0x5A, 0xE3,
- 0xDD, 0xE5, 0x17, 0xE7, 0x8C, 0x9A, 0x55, 0x51, 0x14, 0xD9,
- 0x1C, 0x2D, 0x41, 0x00, 0xBC, 0x1F, 0x78, 0x85, 0x44, 0x38,
- 0xC7, 0x59, 0x71, 0x69, 0x81, 0x2D, 0x7A, 0x27, 0x3B, 0xC2,
- 0x65, 0x00, 0xAC, 0x47, 0x0D, 0x81, 0xF7, 0x81, 0x50, 0x97,
- 0x69, 0x98, 0xE7, 0x55, 0x2E, 0x77, 0xA4, 0x43, 0x7B, 0xF0,
- 0x27, 0xCC, 0xB5, 0xC9, 0x9E, 0xEB, 0x8E, 0x7F, 0xE0, 0x7F,
- 0xE7, 0x0A, 0x3B, 0xDF, 0x40, 0x3D, 0x5F, 0x43, 0xA4, 0x20,
- 0x11, 0x06, 0x8C, 0xC9, 0x8D, 0xCA, 0xAD, 0xDD, 0xED, 0xD4,
- 0x0F, 0xCA, 0xA2, 0xA5, 0x04, 0x8B, 0x59, 0x13, 0xBE, 0xE9,
- 0xC2, 0x38, 0x23, 0x26, 0x64, 0x29, 0x08, 0xF6, 0xC2, 0xD0,
- 0x92, 0x02, 0x6B, 0x45, 0x05, 0x53, 0xF0, 0xC6, 0xC6, 0x6C,
- 0xB7, 0xDE, 0x94, 0xDE, 0x74, 0x5F, 0x24, 0x43, 0x85, 0x94,
- 0x6F, 0x5B, 0xFC, 0xD8, 0x12, 0xC6, 0xF7, 0xA8, 0xF0, 0x15,
- 0x4B, 0x05, 0x08, 0xD0, 0x49, 0xD0, 0xB5, 0xEB, 0x39, 0x67,
- 0xCC, 0xD0, 0x28, 0xD7, 0xF3, 0x13, 0xC7, 0xDA, 0x93, 0xEE,
- 0x93, 0x33, 0xAB, 0x7C, 0x7F, 0x92, 0xBD, 0x23, 0xC1, 0x35,
- 0x3B, 0x59, 0xEE, 0x55, 0xE7, 0x25, 0xAC, 0x79, 0x61, 0xEF,
- 0xE7, 0x19, 0xEF, 0x26, 0xDF, 0x67, 0x04, 0xD0, 0x57, 0xBF,
- 0x8A, 0x34, 0x66, 0x8A, 0xD0, 0xFF, 0x04, 0x76, 0xF4, 0x52,
- 0x4F, 0xC1, 0xA0, 0xE5, 0x18, 0x13, 0x14, 0x9B, 0xC7, 0x93,
- 0x14, 0xAA, 0xCE, 0x12, 0x1A, 0x28, 0x04, 0x4A, 0xC4, 0xC6,
- 0x32, 0x13, 0x38, 0xDA, 0x7D, 0x2A, 0x03, 0x00, 0x12, 0xB9,
- 0x76, 0x33, 0x44, 0xFF, 0xEC, 0xC8, 0x7D, 0xFF, 0x01, 0x35,
- 0xCF, 0xD0, 0x13, 0xEA, 0x7B, 0x54, 0x53, 0x44, 0x76, 0x8B,
- 0xCB, 0x7E, 0xF1, 0xF5, 0x78, 0xEB, 0xEC, 0xE3, 0x11, 0xD8,
- 0x29, 0xBB, 0x86, 0x1D, 0x98, 0xFB, 0xE6, 0x5E, 0x6E, 0xC2,
- 0x29, 0xD6, 0x42, 0x8E, 0xE5, 0x8B, 0x1F, 0x11, 0x7E, 0x31,
- 0x86, 0x4C, 0x21, 0x3E, 0x15, 0xD8, 0xE9, 0x3B, 0x32, 0x3D,
- 0x1E, 0x59, 0xC5, 0x90, 0xF9, 0xFE, 0x8A, 0xF1, 0xCF, 0x51,
- 0x26, 0x6A, 0xBD, 0xEB, 0xDC, 0x61, 0x4F, 0x39, 0x82, 0x17,
- 0xB6, 0x48, 0x36, 0x01, 0xD7, 0xFE, 0x84, 0x28, 0x7A, 0x4E,
- 0xC7, 0x85, 0x5A, 0x67, 0xDF, 0xAC, 0xD2, 0xC3, 0xFD, 0x43,
- 0x5A, 0x5E, 0xFB, 0x27, 0x94, 0x86, 0x39, 0x57, 0xC1, 0xC3,
- 0xB8, 0xB9, 0x6C, 0x42, 0x76, 0xCC, 0xF7, 0x92, 0xCC, 0xB4,
- 0x66, 0xD7, 0x96, 0x36, 0xE6, 0x00, 0xCA, 0xE9, 0x1D, 0xDF,
- 0xBB, 0x50, 0xF5, 0xCF, 0x19, 0xCF, 0x5D, 0x51, 0x79, 0xE2,
- 0xE5, 0x97, 0xEC, 0xB0, 0x31, 0xC6, 0xE7, 0x85, 0xB2, 0x5F,
- 0x2D, 0xB2, 0x19, 0x41, 0x9A, 0x2F, 0xB3, 0x77, 0xB9, 0x55,
- 0xFE, 0x58, 0x66, 0xE9, 0x36, 0x28, 0x07, 0x02, 0xEC, 0xAA,
- 0xD7, 0xC6, 0x7F, 0x86, 0x22, 0xF6, 0x4A, 0x99, 0x42, 0xD8,
- 0x4E, 0xFC, 0x39, 0x18, 0xCE, 0x97, 0xF2, 0xE7, 0xCE, 0x58,
- 0xB2, 0x4B, 0x4C, 0x84, 0x74, 0x60, 0xC1, 0xF8, 0x6C, 0xDD,
- 0x81, 0x4D, 0x42, 0x8D, 0x3C, 0x90, 0x25, 0x3D, 0xF8, 0xCE,
- 0x86, 0xEA, 0x44, 0x54, 0xE1, 0xB0, 0x62, 0x37, 0x6C, 0xE0,
- 0x9B, 0xFC, 0x55, 0x7D, 0x71, 0x9E, 0x94, 0x82, 0xD4, 0x62,
- 0x6B, 0x8A, 0x1C, 0xA4, 0xF1, 0x1E, 0x07, 0x3D, 0xF8, 0xB8,
- 0x57, 0xAF, 0x40, 0x35, 0xDF, 0x8B, 0x37, 0x24, 0xDC, 0x67,
- 0x35, 0x5B, 0x65, 0x66, 0x2C, 0x0D, 0x41, 0x40, 0x8A, 0xB1,
- 0xE2, 0xFA, 0x8D, 0x3D, 0x23, 0xA6, 0x15, 0xDF, 0x5C, 0x88,
- 0xA2, 0x40, 0xE0, 0x7C, 0xF1, 0x33, 0x39, 0x9B, 0xC7, 0x7E,
- 0xD5, 0xC1, 0xA8, 0x21, 0x6B, 0xB4, 0x9C, 0x9E, 0xE1, 0x7A,
- 0xAE, 0xDC, 0x30, 0x40, 0x54, 0x66, 0xA0, 0x60, 0xA0, 0x73,
- 0xF9, 0x7D, 0xA1, 0xCC, 0x51, 0x33, 0x2C, 0x2E, 0x16, 0xA2,
- 0x87, 0x98, 0x70, 0x43, 0xCF, 0x40, 0x09, 0x0D, 0xC2, 0x6E,
- 0x20, 0xEF, 0xED, 0xE3, 0xDE, 0xF3, 0x35, 0x01, 0xB3, 0x21,
- 0xC0, 0x37, 0x44, 0xB9, 0xE8, 0xDB, 0x4A, 0xD1, 0x7E, 0x7E,
- 0x9F, 0x3D, 0xFE, 0x3A, 0xEF, 0x86, 0xD5, 0x4C, 0x4A, 0x03,
- 0x6C, 0xFE, 0x0F, 0x76, 0x7B, 0xB2, 0xE5, 0x99, 0xAE, 0x34,
- 0x34, 0xF9, 0x47, 0x97, 0x0F, 0x59, 0x24, 0xCD, 0xB1, 0x74,
- 0x8D, 0xC8, 0x8A, 0x5D, 0x0A, 0xD6, 0x78, 0xA4, 0x9D, 0x10,
- 0x87, 0xA7, 0xD4, 0x2B, 0x19, 0xA4, 0x45, 0x1F, 0xE9, 0x5D,
- 0x6D, 0x14, 0x4D, 0xA0, 0x5E, 0x01, 0x64, 0xEE, 0x12, 0x89,
- 0xD0, 0x77, 0xCC, 0x88, 0x5B, 0x00, 0x77, 0xE1, 0x09, 0xE6,
- 0x32, 0x6A, 0xDF, 0x14, 0xE3, 0x2F, 0xF7, 0x14, 0x2A, 0x89,
- 0x54, 0x4B, 0x07, 0xD9, 0x04, 0x3A, 0xFE, 0x22, 0xF2, 0x81,
- 0x19, 0x92, 0x69, 0x70, 0xF7, 0x29, 0x2B, 0x5C, 0x74, 0x99,
- 0x20, 0xF9, 0xEE, 0x69, 0x1C, 0xA5, 0x7E, 0x44, 0xBC, 0xEC,
- 0x88, 0xBB, 0x0D, 0xC8, 0xAD, 0xE5, 0x47, 0x82, 0x9D, 0x9E,
- 0xCF, 0xAD, 0x3B, 0x7F, 0xDD, 0xE8, 0x4C, 0x79, 0xDB, 0x1A,
- 0xA5, 0x39, 0x76, 0x6F, 0x99, 0x6B, 0x32, 0x24, 0xAC, 0x39,
- 0xEA, 0x98, 0x81, 0xA7, 0x9F, 0xD0, 0x10, 0x4C, 0xA7, 0xA5,
- 0x39, 0x1D, 0x30, 0x05, 0xFA, 0xB7, 0xF7, 0x0A, 0x0D, 0xBA,
- 0x8C, 0xA0, 0x90, 0xB1, 0x4A, 0x75, 0x17, 0x2C, 0x87, 0xBA,
- 0x27, 0x41, 0x7F, 0xA5, 0xCF, 0x0B, 0xA4, 0x3B, 0x5F, 0xB6,
- 0xCC, 0x6F, 0x0A, 0x0A, 0x25, 0x04, 0x67, 0xF5, 0x92, 0x7F,
- 0xD2, 0xF6, 0x6A, 0xAF, 0xB2, 0x43, 0x93, 0xCB, 0x92, 0x7D,
- 0xA6, 0xB4, 0x52, 0xBF, 0x76, 0x5A, 0xC2, 0xFB, 0xC1, 0x12,
- 0xEB, 0x94, 0xC2, 0x49, 0x4C, 0x9C, 0x0B, 0x93, 0x0E, 0x68,
- 0x83, 0x78, 0xA3, 0x72, 0xFE, 0xE9, 0x00, 0x65, 0x57, 0x55,
- 0x07, 0xFA, 0xB8, 0xCF, 0x8E, 0xCF, 0x8E, 0xCF, 0x44, 0x01,
- 0x4D, 0xDF, 0x66, 0x7E, 0x64, 0xE1, 0x1B, 0x19, 0x5C, 0x12,
- 0xDD, 0x8E, 0x23, 0x68, 0x2B, 0xF0, 0xD3, 0xF5, 0x7A, 0x91,
- 0x47, 0x5C, 0xE3, 0xF0, 0x85, 0x41, 0xD8, 0x9A, 0xFF, 0x24,
- 0x26, 0x21, 0x6B, 0xA1, 0x6E, 0x62, 0x12, 0xFD, 0xD3, 0xD8,
- 0x36, 0x5B, 0xCC, 0xB0, 0x59, 0x4F, 0x0C, 0x5A, 0xD6, 0x5B,
- 0x11, 0xA6, 0x65, 0xB1, 0x3F, 0x0A, 0x96, 0xD2, 0x31, 0x00,
- 0x9D, 0xD5, 0x73, 0x86, 0xE8, 0x82, 0x11, 0xFB, 0x71, 0x4B,
- 0x92, 0xA1, 0x3E, 0x39, 0x6C, 0x42, 0x51, 0x2F, 0x69, 0x69,
- 0x56, 0xC2, 0xED, 0xE3, 0x2E, 0x9F, 0xFD, 0x88, 0xC6, 0xA9,
- 0xAC, 0xDC, 0xB9, 0xA6, 0x36, 0x57, 0xBD, 0x15, 0xF0, 0xE1,
- 0x36, 0xEE, 0x90, 0xB0, 0xBD, 0x27, 0xED, 0xCB, 0x29, 0xBB,
- 0x0C, 0x83, 0xB0, 0x18, 0x42, 0x36, 0x18, 0x98, 0x28, 0x0F,
- 0xFC, 0xB0, 0x2A, 0xD5, 0x72, 0x10, 0x5A, 0x1A, 0x58, 0xE5,
- 0x95, 0xA7, 0x86, 0x19, 0xAC, 0x92, 0xAD, 0x21, 0x53, 0x67,
- 0x2E, 0x66, 0x59, 0xB0, 0x03, 0xF4, 0xE1, 0x29, 0x79, 0x0A,
- 0xAA, 0x9D, 0x2D, 0x61, 0xC2, 0xE7, 0x36, 0x2D, 0x8B, 0x22,
- 0x3E, 0x3D, 0x9F, 0xD8, 0xE3, 0x34, 0xD9, 0x47, 0x3C, 0x2E,
- 0x9A, 0x97, 0x4F, 0x9F, 0x8E, 0x9A, 0xEA, 0x18, 0x2A, 0x8C,
- 0xD5, 0x0D, 0x1A, 0xA1, 0x27, 0xBB, 0x95, 0xF2, 0xDF, 0xA5,
- 0xB2, 0x7F, 0xFD, 0x8D, 0xC4, 0xB1, 0xA7, 0xFD, 0xA5, 0x82,
- 0x78, 0x04, 0xFA, 0x92, 0xD1, 0x54, 0x0A, 0x40, 0x0D, 0x59,
- 0x36, 0xC3, 0x16, 0x1D, 0xE7, 0xF8, 0x88, 0xBF, 0xE6, 0x74,
- 0xD8, 0x26, 0xFC, 0x77, 0x4D, 0x3D, 0x68, 0xD6, 0x37, 0x0C,
- 0x0F, 0x5A, 0xC5, 0x47, 0x02, 0x90, 0x7A, 0x5A, 0x96, 0x79,
- 0x69, 0x30, 0x4F, 0xD5, 0xAA, 0x60, 0x3D, 0xE7, 0x5D, 0x09,
- 0x41, 0x54, 0x06, 0xC2, 0xCA, 0xD5, 0xB8, 0xFB, 0x12, 0x15,
- 0x22, 0x0E, 0x49, 0x8C, 0xD9, 0xB4, 0x3C, 0x36, 0x7C, 0xCB,
- 0x3C, 0xFA, 0x97, 0xF4, 0x1C, 0xCF, 0x49, 0x81, 0x96, 0xF3,
- 0x5E, 0xC8, 0x43, 0xB9, 0x28, 0xD6, 0xE9, 0x3D, 0x9E, 0xB3,
- 0x4C, 0xE5, 0x87, 0x23, 0xDD, 0xC9, 0x93, 0x69, 0x3E, 0x5F,
- 0x3B, 0xB6, 0xA8, 0x11, 0x3F, 0x70, 0x10, 0x3E, 0x13, 0xCF,
- 0x69, 0x89, 0xAB, 0x58, 0xB0, 0x68, 0x74, 0x68, 0x4A, 0x61,
- 0x0A, 0x6E, 0xFE, 0xF0, 0xDA, 0xA1, 0x11, 0x67, 0xC1, 0x90,
- 0xAB, 0xE7, 0x23, 0x69, 0x73, 0xD2, 0xF0, 0xD8, 0x6F, 0x09,
- 0x22, 0x35, 0xA3, 0xBA, 0x3A, 0x80, 0x6B, 0x45, 0x90, 0x2F,
- 0x17, 0x68, 0xF6, 0x0D, 0x52, 0x32, 0x51, 0x67, 0xDE, 0x70,
- 0x88, 0x7B, 0x33, 0xF9, 0x2C, 0xE0, 0xE1, 0x0C, 0x56, 0x26,
- 0xE6, 0x86, 0xD9, 0x80, 0x6E, 0xD0, 0x86, 0xF1, 0xC9, 0x1A,
- 0x08, 0x94, 0x1E, 0x01, 0x72, 0x51, 0x04, 0x73, 0x47, 0xAE,
- 0x6C, 0xFC, 0x16, 0x48, 0x73, 0x30, 0xCF, 0xC6, 0xBD, 0x6E,
- 0x26, 0xF6, 0x9F, 0xAE, 0xF3, 0x3D, 0x39, 0x12, 0xF3, 0x39,
- 0x00, 0x87, 0x10, 0x30, 0x83, 0xDC, 0x75, 0x38, 0x2B, 0x83,
- 0x43, 0xAB, 0xC0, 0x56, 0x08, 0x6F, 0x54, 0x9E, 0xCD, 0x78,
- 0x05, 0x86, 0x38, 0xFC, 0x95, 0x18, 0x76, 0xC0, 0x19, 0x5A,
- 0xCA, 0xAF, 0xEB, 0x1E, 0x07, 0x1A, 0x35, 0x12, 0x63, 0xF8,
- 0x3F, 0xC8, 0x7F, 0xCE, 0x0A, 0x13, 0xBD, 0x9A, 0x6D, 0x03,
- 0x77, 0xE3, 0xB9, 0x04, 0x84, 0xCD, 0x37, 0x95, 0x39, 0x25,
- 0xA8, 0x73, 0x06, 0x1F, 0x99, 0x15, 0xBA, 0xA8, 0xFA, 0x97,
- 0x8B, 0x44, 0x69, 0x01, 0xB2, 0xE5, 0xD1, 0x0B, 0xD6, 0x09,
- 0x37, 0x3D, 0x2E, 0x06, 0x51, 0xEC, 0x62, 0x4B, 0x34, 0x50,
- 0x80, 0xB6, 0xA4, 0xA6, 0x16, 0x3B, 0x2A, 0xE7, 0x97, 0x1D,
- 0xA9, 0x8D, 0xE1, 0x11, 0xCB, 0x7C, 0xD4, 0xF0, 0x85, 0x61,
- 0x80, 0xC9, 0x6C, 0x4C, 0x9F, 0x85, 0x6F, 0xA7, 0xA5, 0x23,
- 0x5D, 0x7B, 0xB5, 0x47, 0xA2, 0xCA, 0xDC, 0x5D, 0x0B, 0x62,
- 0xBA, 0x61, 0x0E, 0xD4, 0xE2, 0xD6, 0x96, 0xDF, 0xE7, 0x5C,
- 0x7F, 0xED, 0x4B, 0x9A, 0x7F, 0xDB, 0x7A, 0x6F, 0x4F, 0x4C,
- 0x88, 0x94, 0x26, 0x86, 0xA9, 0x58, 0x09, 0xB0, 0xB3, 0x49,
- 0x40, 0xD2, 0xF4, 0x35, 0xDB, 0x90, 0x32, 0x5D, 0xCB, 0x9D,
- 0xE5, 0x03, 0x8D, 0x97, 0x13, 0x8C, 0x2C, 0xEF, 0x16, 0x5B,
- 0x47, 0x3E, 0xDD, 0x9D, 0x00, 0x45, 0x9D, 0x43, 0xB1, 0xC0,
- 0x65, 0x36, 0x87, 0xE2, 0x72, 0x84, 0x70, 0xE4, 0x40, 0x2E,
- 0xD3, 0x47, 0x19, 0xCD, 0x13, 0x57, 0x4D, 0x1F, 0xD6, 0x64,
- 0x38, 0x5A, 0x14, 0xFA, 0xCE, 0xF0, 0x9E, 0x23, 0xF6, 0xA7,
- 0x3E, 0x24, 0xBD, 0x03, 0xD4, 0x94, 0xFD, 0x9F, 0x91, 0x6F,
- 0x04, 0x99, 0x57, 0xBA, 0x04, 0x6B, 0x7D, 0xFA, 0xB8, 0x69,
- 0xC0, 0xCF, 0x95, 0x42, 0x29, 0xD7, 0x2A, 0x6D, 0x63, 0xC4,
- 0x45, 0x14, 0x7B, 0xE9, 0x5E, 0x0B, 0x55, 0x54, 0x9C, 0x8D,
- 0x7C, 0x65, 0x62, 0x33, 0xD2, 0x3B, 0xC6, 0xD1, 0xD3, 0xEB,
- 0xBA, 0xA8, 0xE3, 0xEA, 0xBB, 0x73, 0xAF, 0x52, 0xFE, 0xB9,
- 0x91, 0xD2, 0x34, 0xEA, 0xE9, 0x87, 0x62, 0x90, 0xA0, 0x7C,
- 0x96, 0x73, 0x59, 0x0D, 0x7C, 0x25, 0x68, 0x34, 0xAF, 0x4B,
- 0xCF, 0xE4, 0x78, 0xC0, 0xFF, 0x26, 0x6A, 0x42, 0xE0, 0xF4,
- 0xEC, 0x1E, 0xA5, 0x05, 0xEE, 0xED, 0x4E, 0x68, 0xA4, 0x0B,
- 0x3C, 0xF6, 0x7A, 0x41, 0x53, 0xE6, 0xCA, 0x1B, 0x1F, 0x8B,
- 0xE4, 0xEA, 0xD2, 0x66, 0x40, 0xEF, 0x83, 0x74, 0xB3, 0x0C,
- 0x6E, 0x66, 0x00, 0xF3, 0xE6, 0x94, 0xC3, 0x0B, 0x60, 0xFB,
- 0x15, 0x7F, 0x39, 0x85, 0x60, 0x5F, 0xBF, 0xA8, 0x94, 0x45,
- 0x86, 0x3F, 0xD4, 0x54, 0xC5, 0xA3, 0xE9, 0x51, 0x18, 0x51,
- 0x40, 0x64, 0xFD, 0xEB, 0x9B, 0x11, 0x33, 0x8C, 0xDD, 0x9B,
- 0xC8, 0xB2, 0xD7, 0x44, 0x2C, 0x56, 0xB0, 0x81, 0xEA, 0x0C,
- 0x0B, 0x9F, 0xF7, 0x1D, 0x9C, 0x27, 0xD6, 0x76, 0x80, 0x01,
- 0x68, 0xC2, 0xA8, 0x69, 0x80, 0x5E, 0xE8, 0x93, 0x32, 0xA0,
- 0xB1, 0x43, 0x35, 0xE6, 0x73, 0x9E, 0x69, 0x60, 0xC8, 0x31,
- 0x69, 0xE0, 0xAF, 0xFD, 0xD2, 0xE9, 0x25, 0x9E, 0x3D, 0xDA,
- 0x66, 0xE6, 0xD7, 0x8E, 0xDB, 0x68, 0x04, 0xB0, 0xFE, 0x04,
- 0xF8, 0x72, 0x01, 0x0B, 0xE1, 0x66, 0xC4, 0xA0, 0xE4, 0xF7,
- 0xF3, 0x6E, 0x91, 0x60, 0xAD, 0x53, 0xE7, 0x9D, 0xBC, 0x6A,
- 0xDF, 0x47, 0x8D, 0x25, 0x9F, 0xB3, 0x60, 0x6C, 0x87, 0x5C,
- 0x60, 0x00, 0x98, 0xE3, 0x4A, 0x96, 0xA5, 0xAF, 0x1F, 0x96,
- 0x0B, 0x96, 0x4F, 0xC6, 0x54, 0x1F, 0x48, 0x67, 0xC7, 0xA4,
- 0x6E, 0xC0, 0x82, 0x8C, 0x43, 0x0D, 0x8D, 0x10, 0x84, 0x48,
- 0xEA, 0x46, 0xF2, 0x15, 0x85, 0x70, 0x5A, 0x8F, 0x76, 0xD7,
- 0x37, 0x82, 0xE4, 0x07, 0x09, 0x4D, 0xB7, 0xCF, 0xA3, 0xAA,
- 0xE8, 0xD7, 0x3C, 0x8B, 0xE4, 0x86, 0xD4, 0xA9, 0xC9, 0x30,
- 0x9A, 0xCE, 0xE4, 0x7B, 0x0C, 0x17, 0xC6, 0x2E, 0x4E, 0x4A,
- 0x7C, 0x4E, 0xB3, 0xAD, 0xE3, 0x93, 0x8A, 0x31, 0x11, 0x2D,
- 0x43, 0xBE, 0x02, 0x8D, 0x5C, 0xEA, 0x7D, 0x9A, 0x08, 0xAB,
- 0x3D, 0x70, 0x84, 0x4F, 0x8F, 0xB0, 0x77, 0x02, 0x99, 0x85,
- 0x62, 0x93, 0x71, 0x4C, 0xCD, 0x7A, 0xD1, 0x75, 0xD1, 0xBB,
- 0x2A, 0xC9, 0x54, 0xBF, 0xDA, 0xF1, 0x70, 0xE9, 0xEF, 0x8D,
- 0x08, 0x66, 0xE9, 0xD6, 0xE3, 0x6F, 0x4B, 0x99, 0xEB, 0x44,
- 0x51, 0x12, 0xEE, 0x21, 0x34, 0xE1, 0xD1, 0x3A, 0x4D, 0x17,
- 0xEF, 0xE7, 0x7F, 0x48, 0xD7, 0x35, 0x45, 0x05, 0xF0, 0x0E,
- 0xFF, 0x32, 0xB5, 0x20, 0xF5, 0x19, 0xCF, 0x5A, 0x0E, 0xD8,
- 0x2C, 0x85, 0x42, 0xF2, 0x60, 0xD0, 0xA1, 0x49, 0xD6, 0xEE,
- 0x14, 0x3B, 0x2F, 0xCD, 0x0B, 0x2D, 0x8F, 0x11, 0x68, 0xF2,
- 0x97, 0x22, 0xFF, 0x88, 0x76, 0x48, 0xF8, 0x3A, 0x10, 0x0F,
- 0x66, 0x26, 0x73, 0x60, 0x68, 0x91, 0xEE, 0x54, 0xE2, 0xC8,
- 0x04, 0xFB, 0xCD, 0x3E, 0xEB, 0x07, 0x84, 0xA1, 0x7A, 0x93,
- 0x1B, 0x4A, 0xD7, 0xB6, 0xB2, 0x0E, 0xE4, 0x79, 0x1C, 0xB0,
- 0x77, 0x1D, 0x86, 0x1D, 0x99, 0x9A, 0x40, 0x6F, 0x3E, 0x30,
- 0xCD, 0xA1, 0xC2, 0x74, 0x55, 0x56, 0x1E, 0xE2, 0x05, 0x04,
- 0x10, 0xDB, 0x88, 0xF6, 0xE3, 0x2E, 0x58, 0xF3, 0x35, 0x6E,
- 0x05, 0x6B, 0xA9, 0x4F, 0x42, 0x9E, 0x8D, 0xA8, 0x99, 0x7F,
- 0x15, 0x63, 0x41, 0x27, 0x81, 0xE7, 0x73, 0xDE, 0x1F, 0x0B,
- 0x9B, 0xFE, 0xDF, 0x5E, 0xC7, 0x06, 0x8E, 0x33, 0x20, 0x19,
- 0xA3, 0xFB, 0x9B, 0xD9, 0xA0, 0xBE, 0x5F, 0x44, 0x45, 0x1A,
- 0x9C, 0x11, 0xAA, 0x6A, 0x8F, 0xA0, 0x20, 0x02, 0xCC, 0xBC,
- 0xC9, 0xD9, 0x09, 0x46, 0x00, 0xF3, 0x50, 0xDC, 0x21, 0xEF,
- 0xBB, 0x35, 0x18, 0xD7, 0x2A, 0x3A, 0x0F, 0x0D, 0x7D, 0x5F,
- 0x1B, 0x57, 0xB0, 0x34, 0xFB, 0x55, 0xBD, 0xE9, 0x72, 0xBD,
- 0x46, 0xBF, 0x90, 0x0D, 0xB0, 0xEE, 0x7D, 0x57, 0xB6, 0x4D,
- 0x82, 0xB0, 0xD8, 0x27, 0xCC, 0xFC, 0xEB, 0xE9, 0x3C, 0x7B,
- 0x98, 0xF3, 0x95, 0x15, 0xA6, 0xBE, 0x64, 0x77, 0x7D, 0x50,
- 0xC0, 0x68, 0x09, 0x7D, 0x8F, 0x18, 0xEE, 0xB6, 0x76, 0xFF,
- 0x0E, 0x87, 0xE3, 0xAE, 0x59, 0xD2, 0x27, 0xBA, 0x0A, 0xC2,
- 0x96, 0x96, 0x5C, 0x2B, 0x93, 0x30, 0x36, 0x36, 0x7F, 0x70,
- 0x82, 0xB3, 0x5C, 0x2C, 0x42, 0xD5, 0xFE, 0xDB, 0xC5, 0x58,
- 0xA0, 0x71, 0xAB, 0x17, 0x06, 0x10, 0x0F, 0x49, 0x19, 0x42,
- 0x65, 0x29, 0x22, 0xC4, 0x69, 0x58, 0xA8, 0xE1, 0xA9, 0xB3,
- 0x51, 0xBA, 0x9B, 0xAD, 0x03, 0xE8, 0xCB, 0x34, 0xFF, 0x24,
- 0x47, 0x9A, 0x1E, 0x0F, 0xFC, 0x1F, 0xE7, 0xDE, 0x68, 0x33,
- 0xA4, 0x54, 0xBE, 0xF0, 0x7D, 0x16, 0x3C, 0x27, 0x79, 0x1F,
- 0x24, 0x24, 0xEF, 0x41, 0xB8, 0xA7, 0x25, 0xC3, 0xE8, 0x93,
- 0xF5, 0x9F, 0xC3, 0x3B, 0x08, 0xDE, 0xF0, 0x54, 0xF5, 0xE7,
- 0x79, 0x71, 0x1F, 0x89, 0x7A, 0xA9, 0xB0, 0x47, 0xCA, 0x53,
- 0x3C, 0xD2, 0xA8, 0xB7, 0x5C, 0xF5, 0xDD, 0xD4, 0x07, 0x6E,
- 0xA5, 0xAB, 0x66, 0x91, 0x5B, 0x44, 0x91, 0xA7, 0x1F, 0x05,
- 0xB1, 0x3D, 0x79, 0xEC, 0x9D, 0x12, 0x14, 0xF7, 0xEC, 0x46,
- 0xEA, 0x51, 0x2A, 0xC8, 0xBD, 0x3C, 0xCB, 0xAE, 0x1D, 0x07,
- 0x6D, 0xE2, 0x85, 0xB0, 0xC4, 0xAB, 0x42, 0x52, 0xD4, 0x1C,
- 0x89, 0x1D, 0xDE, 0x5A, 0x5A, 0x20, 0x21, 0x19, 0x8C, 0xF8,
- 0xD2, 0xF1, 0x25, 0x88, 0x79, 0xAF, 0x8F, 0x8E, 0xF0, 0xC5,
- 0x35, 0x05, 0x15, 0x88, 0x04, 0x5C, 0x2F, 0xB3, 0xD2, 0x07,
- 0x2F, 0x1B, 0x5D, 0x68, 0x71, 0x91, 0x94, 0x8C, 0xCE, 0x11,
- 0x30, 0xA6, 0x48, 0x21, 0x2E, 0xE8, 0x52, 0xBE, 0xD0, 0xB3,
- 0x8E, 0x4C, 0x16, 0xEB, 0x04, 0x6C, 0x45, 0x92, 0x08, 0xD4,
- 0x45, 0x97, 0x60, 0xC6, 0xC5, 0x07, 0x4D, 0x3D, 0xAA, 0x90,
- 0xD7, 0xE8, 0xBF, 0xA1, 0x17, 0xDC, 0xBF, 0x5E, 0x18, 0x44,
- 0xE5, 0x97, 0xBB, 0x33, 0x23, 0x87, 0x71, 0x05, 0x83, 0x17,
- 0x00, 0x69, 0x9E, 0x8B, 0x59, 0x3A, 0x30, 0x1F, 0x8B, 0x11,
- 0xBC, 0xB8, 0xF2, 0x1A, 0x3E, 0x5F, 0xDB, 0x02, 0xE8, 0x05,
- 0x73, 0xF9, 0x58, 0xE9, 0x8E, 0xB8, 0x62, 0xF4, 0x63, 0x70,
- 0x7E, 0x46, 0xED, 0x51, 0xAB, 0x92, 0x66, 0x81, 0x06, 0xAC,
- 0xC9, 0x3F, 0xCC, 0xB1, 0xF9, 0x38, 0x7C, 0xCB, 0x75, 0x85,
- 0x65, 0x1D, 0x2B, 0x09, 0xF0, 0xB8, 0x10, 0x4B, 0xA7, 0xF1,
- 0x2D, 0x99, 0xFB, 0xC5, 0xEA, 0xEA, 0xCE, 0x25, 0x5A, 0xFA,
- 0x97, 0xF1, 0x1E, 0x70, 0x23, 0xB9, 0xA6, 0x79, 0x98, 0xEC,
- 0x0D, 0xCE, 0x96, 0x0C, 0xB0, 0xF5, 0x50, 0x21, 0xB9, 0xF7,
- 0x88, 0xAB, 0x40, 0x7E, 0xE8, 0x4A, 0xA4, 0x2C, 0x02, 0xED,
- 0x83, 0xAB, 0x68, 0xDA, 0x21, 0x4D, 0x1C, 0x2A, 0xEB, 0xF9,
- 0xD5, 0x5F, 0xB1, 0xDC, 0xFA, 0x75, 0xA3, 0x7D, 0xC6, 0x84,
- 0x80, 0x73, 0xE8, 0xCE, 0x64, 0x11, 0xDE, 0x1B, 0x75, 0x9F,
- 0xDD, 0xFB, 0xFE, 0x82, 0xA2, 0xE0, 0x45, 0xA3, 0xD4, 0x2C,
- 0x46, 0xD0, 0xC6, 0x45, 0x5F, 0x1B, 0xD6, 0x93, 0x20, 0xAE,
- 0xA4, 0x62, 0xDE, 0xB4, 0x24, 0xAD, 0x73, 0xD9, 0x46, 0x8D,
- 0x4B, 0x6D, 0xF9, 0x49, 0xA9, 0xB5, 0x43, 0xDA, 0x34, 0xDD,
- 0x72, 0x68, 0xB4, 0x82, 0x1B, 0x54, 0xA9, 0xC6, 0x0E, 0xB4,
- 0x25, 0x0C, 0xDC, 0x97, 0x5F, 0xAB, 0x20, 0xFB, 0x4D, 0x33,
- 0x15, 0xD1, 0xC3, 0x15, 0x27, 0xC4, 0x3A, 0x06, 0xE3, 0x72,
- 0xD4, 0xF8, 0xFD, 0xB3, 0xE8, 0x04, 0x59, 0xBC, 0xAB, 0xA3,
- 0x43, 0xBE, 0x60, 0x34, 0x09, 0x53, 0x78, 0x64, 0x9C, 0x8C,
- 0x72, 0xE4, 0x74, 0x62, 0x83, 0x2D, 0xB1, 0xA9, 0x67, 0xEC,
- 0x80, 0x92, 0x43, 0x94, 0x2E, 0x4B, 0xCE, 0x40, 0x16, 0xA5,
- 0xD4, 0x1C, 0xE9, 0x5B, 0xF6, 0x47, 0x70, 0x55, 0x7B, 0x16,
- 0xF1, 0x96, 0x29, 0x4F, 0x77, 0x83, 0x39, 0x80, 0x46, 0xD0,
- 0x67, 0x96, 0x32, 0x22, 0xBC, 0x8A, 0x9E, 0x3B, 0xC3, 0xC1,
- 0xD6, 0x8D, 0x0B, 0x35, 0xE3, 0x61, 0x27, 0x54, 0xEA, 0x6C,
- 0x9B, 0x75, 0x8C, 0x58, 0x2A, 0x90, 0x9E, 0x28, 0xBC, 0xD8,
- 0xAE, 0xBD, 0xDD, 0xA0, 0x7A, 0xE4, 0x2A, 0x11, 0xFE, 0xAA,
- 0x7C, 0x64, 0x53, 0x69, 0x7B, 0xC9, 0xBB, 0xBB, 0xF3, 0x0A,
- 0xE9, 0xAD, 0x44, 0x14, 0xD0, 0x2D, 0x82, 0x20, 0x3C, 0x82,
- 0xBB, 0x03, 0x54, 0x54, 0x97, 0xEF, 0x86, 0xD3, 0xC8, 0xEB,
- 0x37, 0x7D, 0x3A, 0xF4, 0x2E, 0xDE, 0x5F, 0x80, 0xB1, 0xBE,
- 0xCC, 0x27, 0xA8, 0xD5, 0x0C, 0xB6, 0x69, 0xEF, 0xAC, 0x6A,
- 0x50, 0x19, 0x68, 0xCA, 0xB2, 0x9F, 0x8E, 0x1E, 0x2B, 0x64,
- 0x94, 0xA2, 0x8A, 0x32, 0x82, 0x4B, 0x6B, 0x4A, 0xB8, 0xF3,
- 0x7D, 0xF0, 0xAC, 0xF0, 0x33, 0xFC, 0x2A, 0x3A, 0x93, 0x2B,
- 0xF0, 0xE7, 0xB2, 0x73, 0x75, 0xB8, 0x89, 0xD9, 0x25, 0xA5,
- 0xD1, 0x8C, 0x8E, 0x57, 0x49, 0x86, 0x58, 0x36, 0x76, 0xAA,
- 0xE7, 0x4C, 0x76, 0x08, 0x7F, 0xFC, 0x9E, 0xF2, 0xC5, 0xB5,
- 0xF3, 0xFD, 0xF2, 0xB3, 0x3B, 0x76, 0x29, 0xDB, 0x9B, 0x3B,
- 0xA1, 0x09, 0xA9, 0x38, 0x5E, 0xE8, 0xC4, 0x9F, 0x88, 0x53,
- 0x2E, 0xFB, 0x52, 0xBB, 0x3B, 0x2B, 0xE1, 0xE1, 0x28, 0x26,
- 0x88, 0x14, 0x09, 0xF1, 0xCC, 0x98, 0xD9, 0xA4, 0x0C, 0xA0,
- 0x54, 0xD0, 0xB7, 0x3C, 0x8C, 0xE9, 0x4F, 0x64, 0xCB, 0xBE,
- 0xA5, 0x06, 0xAE, 0x27, 0xF0, 0x37, 0xB2, 0x60, 0x27, 0x9A,
- 0x93, 0x67, 0xB2, 0x39, 0x54, 0x95, 0xA8, 0x6E, 0x93, 0x6C,
- 0x09, 0x6C, 0xFF, 0xA1, 0xC2, 0x99, 0x66, 0x0A, 0x01, 0x2A,
- 0x8C, 0x2D, 0x9C, 0x23, 0x0B, 0x19, 0x4E, 0xA1, 0x3E, 0x43,
- 0x42, 0x1A, 0x72, 0x11, 0xAC, 0x92, 0x56, 0x32, 0xD4, 0xFE,
- 0x5A, 0x0E, 0xDF, 0xEB, 0x7B, 0x1F, 0x61, 0x9B, 0xDA, 0x3C,
- 0x2E, 0xAE, 0xFF, 0x12, 0x11, 0x3E, 0xB2, 0xC3, 0xAE, 0xD1,
- 0xD9, 0xB2, 0xE8, 0xD5, 0x9E, 0x85, 0xA4, 0xF1, 0x49, 0x06,
- 0x16, 0x73, 0xCA, 0x65, 0x3A, 0x2D, 0x51, 0x38, 0xBA, 0x37,
- 0xF3, 0xCF, 0xDC, 0xDF, 0x40, 0xF5, 0x5D, 0x39, 0x74, 0x60,
- 0x15, 0xF5, 0xDC, 0x73, 0xE2, 0x48, 0xF2, 0x2A, 0x2C, 0x4F,
- 0x26, 0xD2, 0x61, 0x5B, 0x31, 0xA0, 0xF4, 0xEA, 0x80, 0xAE,
- 0xB2, 0x57, 0x81, 0x64, 0xD1, 0xFB, 0xE9, 0xA0, 0x3B, 0xB7,
- 0xDE, 0x17, 0x42, 0x7B, 0xCD, 0xDE, 0xE4, 0xA3, 0x45, 0x5E,
- 0x88, 0x29, 0x85, 0x26, 0xB7, 0xD6, 0xA4, 0xE9, 0x73, 0x9E,
- 0x1D, 0x73, 0x92, 0xF4, 0xFF, 0x66, 0xA8, 0xB9, 0x1D, 0x25,
- 0x1B, 0x12, 0xB2, 0x9E, 0x6E, 0xE1, 0xA8, 0xB5, 0x73, 0x64,
- 0x0B, 0x8D, 0xDC, 0xE3, 0x2C, 0x60, 0x32, 0x82, 0x4E, 0x9C,
- 0x47, 0x0B, 0x5E, 0x92, 0xF0, 0x21, 0x62, 0x50, 0x8E, 0x1A,
- 0xE4, 0x2B, 0x4B, 0x6F, 0xB5, 0xDA, 0xAB, 0xAB, 0x4A, 0xBE,
- 0xB6, 0x6F, 0x09, 0x3A, 0xF4, 0x67, 0x75, 0x07, 0xB1, 0xB1,
- 0xAA, 0xAD, 0x16, 0x3F, 0x5B, 0xD1, 0xA3, 0x9F, 0xF5, 0x7F,
- 0xA8, 0xEA, 0xC8, 0x8D, 0x5A, 0xA9, 0xF3, 0x7B, 0xE8, 0x83,
- 0xDB, 0xB0, 0xA7, 0xFD, 0x2C, 0xA1, 0xD6, 0x39, 0xDE, 0x65,
- 0x2C, 0xE3, 0x4F, 0xA5, 0x0E, 0x2D, 0x47, 0xA0, 0x32, 0x8A,
- 0x1F, 0x55, 0x3B, 0x92, 0x3D, 0x4A, 0x84, 0x67, 0xE2, 0x5A,
- 0x10, 0x80, 0x1B, 0xA2, 0xFE, 0x4B, 0x8F, 0x73, 0xB5, 0xA5,
- 0x6B, 0xFA, 0x5B, 0x86, 0x95, 0xB8, 0x89, 0x9B, 0x8E, 0xBF,
- 0x39, 0xAF, 0x4F, 0x2B, 0x1A, 0xC6, 0x4E, 0xAC, 0xD6, 0xDA,
- 0x34, 0xDA, 0x6B, 0xD6, 0x1A, 0x49, 0x99, 0xD0, 0x87, 0x4F,
- 0x1A, 0x51, 0xA0, 0x46, 0x89, 0x0E, 0x0B, 0x81, 0x4C, 0x63,
- 0xE2, 0xCA, 0x7C, 0xED, 0x81, 0x53, 0x11, 0x11, 0x5F, 0x8D,
- 0xFD, 0xDD, 0x08, 0xEE, 0x6B, 0x8E, 0xF0, 0x8B, 0x39, 0x59,
- 0x24, 0x13, 0xA4, 0x23, 0xF2, 0xFE, 0xDC, 0x0C, 0xEE, 0xDF,
- 0xD7, 0xAA, 0x9D, 0x4E, 0x54, 0x1A, 0x27, 0xA3, 0xE5, 0x20,
- 0xDE, 0x55, 0x37, 0xE2, 0xBF, 0x8E, 0x2F, 0xB9, 0x9C, 0x98,
- 0xFE, 0x8F, 0x8D, 0xBD, 0x09, 0x91, 0x2D, 0xBF, 0x1E, 0x0B,
- 0x26, 0x90, 0xDE, 0xE2, 0xB1, 0x5E, 0x81, 0x0A, 0x07, 0x5F,
- 0xF1, 0x54, 0xFC, 0x31, 0xB0, 0x94, 0x2A, 0x13, 0x93, 0xA3,
- 0x00, 0xEA, 0x43, 0xBE, 0xD7, 0x26, 0x15, 0x8A, 0x15, 0xA3,
- 0x46, 0x84, 0xD5, 0x6A, 0x24, 0x9D, 0x8D, 0x1A, 0x07, 0xB2,
- 0x87, 0x99, 0x6F, 0xFD, 0xF6, 0x1D, 0xD7, 0x88, 0xF2, 0x94,
- 0xAA, 0xD1, 0x73, 0x7F, 0x69, 0x2F, 0x0A, 0x2A, 0x66, 0xDC,
- 0x56, 0x1D, 0xFA, 0xF6, 0xC3, 0x47, 0xDF, 0x7A, 0x77, 0x0E,
- 0xF2, 0x22, 0xA8, 0xDD, 0xE5, 0x6D, 0x04, 0xDA, 0x06, 0x1C,
- 0xDB, 0x15, 0x07, 0xF9, 0x04, 0xD4, 0x56, 0xFF, 0x3E, 0x63,
- 0x98, 0x08, 0xEB, 0xF3, 0x63, 0xC1, 0x29, 0x8E, 0xA5, 0xC7,
- 0x40, 0x39, 0xD1, 0xE6, 0xFA, 0xA9, 0xF5, 0x0F, 0x63, 0x6D,
- 0x85, 0x35, 0xC9, 0x0C, 0x9A, 0xA3, 0x02, 0xC3, 0x4A, 0x70,
- 0x11, 0x5C, 0x9B, 0x9A, 0x7F, 0x81, 0xE2, 0x44, 0x91, 0x4E,
- 0x7A, 0x6A, 0x14, 0x15, 0x2C, 0xCB, 0xC9, 0x1C, 0x69, 0x91,
- 0x8C, 0x41, 0xE0, 0xBB, 0x85, 0xC8, 0x6E, 0xCC, 0x4A, 0x75,
- 0x3B, 0xBB, 0x33, 0x1B, 0x6A, 0x2B, 0x95, 0xF9, 0x5E, 0x03,
- 0xF2, 0x25, 0xD5, 0xD9, 0xFB, 0x9D, 0x38, 0x14, 0x1A, 0x31,
- 0xB9, 0xE7, 0xE6, 0x9B, 0x4B, 0x0D, 0xE9, 0x7C, 0x59, 0x12,
- 0xD2, 0x6B, 0x98, 0x0C, 0x41, 0x07, 0xDB, 0xC1, 0xA9, 0x95,
- 0x53, 0xAE, 0xAD, 0xBB, 0x92, 0x36, 0xC1, 0x93, 0xF6, 0xBB,
- 0x43, 0xFD, 0x16, 0xAC, 0x63, 0x27, 0x27, 0xC5, 0xF0, 0xC6,
- 0x4E, 0x56, 0xE6, 0x39, 0x75, 0xC8, 0xF5, 0xDE, 0x79, 0xCE,
- 0x11, 0x0F, 0x6F, 0x45, 0x70, 0xAB, 0xB4, 0x45, 0x75, 0x14,
- 0xD7, 0x91, 0xD5, 0x97, 0x3F, 0xC0, 0xB9, 0x19, 0x25, 0xE6,
- 0x35, 0x72, 0xB9, 0xB5, 0x8A, 0xFD, 0x24, 0x73, 0x9F, 0x1B,
- 0x73, 0xE7, 0x6E, 0xE0, 0x3E, 0x9F, 0x55, 0x55, 0x29, 0x5C,
- 0x6F, 0xDB, 0x6B, 0x95, 0x0C, 0x60, 0xB7, 0x52, 0xC4, 0x7E,
- 0x8F, 0xDD, 0x0E, 0x8F, 0x5D, 0x7B, 0xEE, 0x17, 0x3E, 0xA1,
- 0x1D, 0x84, 0xA5, 0xD8, 0x16, 0x61, 0x75, 0x88, 0xDA, 0xF3,
- 0x27, 0x45, 0x0B, 0xB8, 0xDA, 0x8E, 0x96, 0xFC, 0x27, 0xFC,
- 0xAA, 0x35, 0x6B, 0xAD, 0x0B, 0x0F, 0x0E, 0x8B, 0x92, 0x99,
- 0x2F, 0xBF, 0x6F, 0x53, 0xC4, 0x2C, 0x84, 0x23, 0x57, 0xED,
- 0xA9, 0x32, 0xCE, 0x06, 0x16, 0x4B, 0xEE, 0xF6, 0x1E, 0xA2,
- 0x31, 0x39, 0x49, 0xCC, 0x65, 0xBC, 0x70, 0x6D, 0xBE, 0x69,
- 0x0D, 0x24, 0x25, 0xBB, 0x63, 0x09, 0xCC, 0x11, 0x0B, 0x49,
- 0x5F, 0xD5, 0xFB, 0x93, 0xF7, 0x48, 0x04, 0x09, 0xE0, 0x5D,
- 0x4F, 0x7A, 0x20, 0x6C, 0x42, 0x29, 0x5C, 0x21, 0x83, 0x06,
- 0x88, 0xB5, 0xEF, 0x4C, 0xAC, 0x00, 0x01, 0xC6, 0xA4, 0x48,
- 0x24, 0xFC, 0x77, 0xFE, 0xEE, 0xBF, 0xF0, 0x4E, 0x0C, 0xC5,
- 0x6B, 0x89, 0x57, 0xC7, 0xB9, 0xF5, 0x61, 0x27, 0x24, 0x09,
- 0xDA, 0x45, 0x00, 0x0B, 0x10, 0xB8, 0x7D, 0xF3, 0xE9, 0x56,
- 0x59, 0x62, 0x65, 0x8C, 0x5E, 0x03, 0xB4, 0xB1, 0x85, 0x20,
- 0x60, 0x25, 0x1D, 0xA7, 0xF4, 0x28, 0xF6, 0xB0, 0x32, 0x7B,
- 0xEB, 0x76, 0x85, 0x7B, 0xD4, 0xE2, 0x15, 0x1C, 0xCB, 0xF2,
- 0x31, 0xBA, 0x00, 0xBB, 0xD0, 0x90, 0x16, 0xB6, 0x48, 0x1F,
- 0x2F, 0x4F, 0xE4, 0x1C, 0x1D, 0xD7, 0x09, 0xB6, 0x54, 0x70,
- 0x2D, 0x7F, 0x68, 0xB9, 0x87, 0xE7, 0xCB, 0xD4, 0xD5, 0xE6,
- 0xB4, 0xFD, 0x0C, 0x68, 0x5C, 0x96, 0xF4, 0x06, 0x64, 0x3B,
- 0x74, 0x6B, 0xD1, 0xAC, 0xB5, 0x41, 0xEE, 0xBD, 0x55, 0x07,
- 0xBF, 0x29, 0x51, 0x2B, 0xC5, 0x4A, 0xCF, 0x2A, 0xF1, 0xEE,
- 0x5A, 0x64, 0x2F, 0x0B, 0x80, 0x7E, 0xF4, 0x50, 0x14, 0x28,
- 0xF4, 0x39, 0x04, 0xB5, 0xC7, 0xCF, 0x53, 0xEA, 0x6C, 0xBD,
- 0x76, 0x6C, 0x67, 0x6E, 0x3E, 0x9F, 0xEF, 0x60, 0xD0, 0xF6,
- 0x73, 0x90, 0xDD, 0x1E, 0xE9, 0x75, 0x8B, 0x34, 0x6A, 0xB2,
- 0xCC, 0xD1, 0x0B, 0x51, 0x6E, 0x44, 0x55, 0x55, 0x22, 0xBB,
- 0x3F, 0xD1, 0x9F, 0xF4, 0x1E, 0xB5, 0xD6, 0x89, 0x3C, 0xDB,
- 0xB7, 0x07, 0x83, 0x5C, 0x63, 0x45, 0x78, 0x4B, 0xFA, 0x1E,
- 0x7D, 0x3D, 0x44, 0x91, 0xD3, 0xDD, 0x57, 0x07, 0xD9, 0x0F,
- 0x58, 0xC3, 0x20, 0x5E, 0xF0, 0x42, 0x05, 0x61, 0xE5, 0x03,
- 0xB3, 0xB8, 0x1B, 0xBB, 0x05, 0xC2, 0x1B, 0x7A, 0x7E, 0x8B,
- 0xC9, 0x06
-};
-static const int sizeof_bench_dilithium_aes_level3_key = sizeof(bench_dilithium_aes_level3_key);
-
-/* certs/dilithium/bench_dilithium_aes_level5_key.der */
-static const unsigned char bench_dilithium_aes_level5_key[] =
-{
- 0x30, 0x82, 0x1D, 0x3A, 0x02, 0x01, 0x00, 0x30, 0x0D, 0x06,
- 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x0B,
- 0x08, 0x07, 0x04, 0x82, 0x1D, 0x24, 0x04, 0x82, 0x1D, 0x20,
- 0x90, 0xBC, 0x63, 0x0F, 0xD4, 0xC2, 0x6D, 0x49, 0x01, 0xCD,
- 0x1F, 0x92, 0xEC, 0xEE, 0xDB, 0x3B, 0x19, 0x0C, 0xFA, 0x4D,
- 0x6C, 0x57, 0x16, 0xE0, 0x6E, 0x48, 0xB5, 0x5D, 0xB3, 0xE5,
- 0xEA, 0xE6, 0xCA, 0x23, 0xD3, 0xE6, 0xE9, 0xEA, 0x3B, 0x1B,
- 0x0C, 0x80, 0xD9, 0xFD, 0x2E, 0x9C, 0xD9, 0x1C, 0x44, 0x56,
- 0xDD, 0xCC, 0x7C, 0x9F, 0x98, 0x1C, 0xEC, 0x7A, 0x3D, 0xB4,
- 0x66, 0xCE, 0x91, 0x9F, 0x1E, 0x34, 0x96, 0xFB, 0xC6, 0x1D,
- 0x3D, 0x93, 0x4A, 0x05, 0x43, 0xF8, 0xD7, 0x95, 0x10, 0x21,
- 0x6C, 0xD4, 0x6F, 0xA6, 0x7B, 0x69, 0x3A, 0x1B, 0x9F, 0x0C,
- 0x26, 0x84, 0x34, 0x39, 0xE6, 0xB5, 0x19, 0x83, 0x10, 0x92,
- 0x30, 0x85, 0x19, 0x38, 0x31, 0x81, 0xB2, 0x51, 0x09, 0xB1,
- 0x11, 0x19, 0xA6, 0x30, 0x9B, 0x80, 0x2D, 0x63, 0x26, 0x29,
- 0x18, 0x93, 0x65, 0x84, 0x48, 0x72, 0x8C, 0x38, 0x81, 0xA3,
- 0x18, 0x04, 0x19, 0x84, 0x20, 0x49, 0x40, 0x68, 0xA2, 0x82,
- 0x80, 0x08, 0x19, 0x84, 0x4C, 0xC6, 0x90, 0x89, 0xA4, 0x80,
- 0xC8, 0xA2, 0x85, 0xD2, 0x40, 0x04, 0x50, 0xA6, 0x81, 0x50,
- 0xB4, 0x00, 0x18, 0x46, 0x30, 0x24, 0xC5, 0x80, 0x00, 0x93,
- 0x84, 0x54, 0x22, 0x89, 0x21, 0x00, 0x88, 0xC8, 0x06, 0x64,
- 0x8B, 0x20, 0x69, 0x9A, 0xB8, 0x6D, 0x58, 0x30, 0x02, 0x53,
- 0x28, 0x6A, 0x20, 0xC9, 0x0C, 0x03, 0xC5, 0x60, 0x20, 0xA5,
- 0x24, 0x5A, 0xC4, 0x29, 0x44, 0x38, 0x89, 0xD2, 0xB6, 0x11,
- 0x24, 0x44, 0x6E, 0x12, 0x23, 0x2C, 0x99, 0x40, 0x26, 0x94,
- 0x36, 0x20, 0xA2, 0x94, 0x6D, 0x49, 0x06, 0x2A, 0x52, 0x28,
- 0x90, 0x09, 0x24, 0x25, 0x91, 0x20, 0x92, 0x49, 0x84, 0x0D,
- 0x24, 0x83, 0x84, 0x61, 0xA4, 0x6C, 0x59, 0x32, 0x81, 0x21,
- 0x34, 0x46, 0x09, 0x07, 0x05, 0xC0, 0x84, 0x8C, 0x62, 0x16,
- 0x4D, 0x11, 0x90, 0x68, 0x11, 0xC8, 0x04, 0x40, 0x24, 0x41,
- 0xC4, 0x14, 0x08, 0xCA, 0x38, 0x8A, 0x12, 0xB0, 0x25, 0x04,
- 0xB5, 0x05, 0x22, 0x00, 0x2A, 0x48, 0x12, 0x2C, 0x1A, 0x29,
- 0x20, 0xC8, 0x46, 0x4C, 0x22, 0x31, 0x60, 0xA3, 0x22, 0x6E,
- 0x43, 0x12, 0x4C, 0x9B, 0xA8, 0x10, 0xD0, 0x32, 0x29, 0xE1,
- 0x34, 0x82, 0x13, 0xA5, 0x31, 0x08, 0x45, 0x71, 0x01, 0x21,
- 0x68, 0x12, 0xC4, 0x21, 0x0C, 0x82, 0x51, 0x40, 0x26, 0x11,
- 0xDA, 0xA6, 0x09, 0x52, 0x92, 0x44, 0xC9, 0xB4, 0x51, 0x00,
- 0x28, 0x8E, 0x24, 0x26, 0x42, 0xCB, 0xC4, 0x81, 0x09, 0x48,
- 0x65, 0x23, 0xB9, 0x85, 0x01, 0xB2, 0x71, 0xC2, 0xC0, 0x2D,
- 0x42, 0x06, 0x0D, 0x14, 0x93, 0x8C, 0x8B, 0xC0, 0x48, 0x60,
- 0x82, 0x50, 0x18, 0x39, 0x50, 0x64, 0x12, 0x08, 0x11, 0x15,
- 0x45, 0x02, 0x04, 0x8A, 0x0A, 0x21, 0x0D, 0x22, 0x35, 0x04,
- 0xD0, 0x02, 0x41, 0x40, 0x14, 0x26, 0xCA, 0x20, 0x49, 0xA1,
- 0xB0, 0x21, 0x18, 0x22, 0x64, 0xE0, 0x38, 0x11, 0x20, 0x87,
- 0x8D, 0x50, 0x20, 0x6D, 0x11, 0x27, 0x42, 0x5C, 0x04, 0x41,
- 0x09, 0x97, 0x88, 0xDA, 0x06, 0x91, 0x8A, 0x94, 0x0D, 0x9A,
- 0x36, 0x42, 0xDC, 0x94, 0x2C, 0xCA, 0x32, 0x44, 0x52, 0x00,
- 0x26, 0x02, 0x33, 0x92, 0xDA, 0x40, 0x30, 0x4A, 0xB0, 0x64,
- 0xCC, 0xB2, 0x91, 0x24, 0x19, 0x08, 0x0A, 0x17, 0x88, 0xD8,
- 0xB6, 0x01, 0xE4, 0x82, 0x09, 0xE4, 0xB0, 0x49, 0x12, 0x01,
- 0x84, 0x09, 0xA0, 0x0D, 0xC8, 0x86, 0x8D, 0x0C, 0xA6, 0x31,
- 0x1C, 0x07, 0x68, 0x43, 0x18, 0x04, 0xD8, 0x88, 0x69, 0x02,
- 0x44, 0x41, 0x19, 0x23, 0x48, 0xA1, 0x18, 0x4D, 0xE0, 0xA4,
- 0x68, 0x63, 0x38, 0x2A, 0x88, 0x18, 0x25, 0xE3, 0x90, 0x6D,
- 0xD1, 0xB8, 0x04, 0x09, 0x44, 0x50, 0x14, 0xB4, 0x70, 0x0B,
- 0x47, 0x8C, 0x1C, 0xC8, 0x6C, 0x43, 0xC0, 0x6C, 0xD0, 0x14,
- 0x02, 0x22, 0xC2, 0x70, 0x04, 0x38, 0x49, 0x14, 0x33, 0x2C,
- 0xCB, 0x16, 0x71, 0x1C, 0x05, 0x2C, 0x0A, 0x33, 0x81, 0xC0,
- 0x90, 0x89, 0xA1, 0x38, 0x11, 0x1B, 0x36, 0x09, 0x62, 0x08,
- 0x62, 0x24, 0xC1, 0x44, 0xCB, 0xC6, 0x01, 0xD4, 0x06, 0x31,
- 0x44, 0x36, 0x2C, 0x54, 0xA0, 0x89, 0x1A, 0x80, 0x51, 0x0B,
- 0x34, 0x91, 0x0B, 0xB1, 0x45, 0xA4, 0x24, 0x92, 0xA1, 0xC0,
- 0x01, 0x09, 0xB2, 0x89, 0x8B, 0x40, 0x48, 0x09, 0xB0, 0x2C,
- 0x1A, 0x33, 0x48, 0xA4, 0x04, 0x06, 0xD8, 0x00, 0x08, 0xA2,
- 0xA2, 0x61, 0x04, 0x04, 0x64, 0x9A, 0xB2, 0x11, 0x11, 0x21,
- 0x4E, 0x63, 0xC2, 0x20, 0x22, 0x31, 0x8E, 0xA2, 0xB2, 0x69,
- 0x10, 0x10, 0x88, 0x88, 0x42, 0x4E, 0x41, 0xA2, 0x0D, 0x99,
- 0x32, 0x44, 0x8C, 0xA6, 0x4D, 0x00, 0x16, 0x69, 0x13, 0x90,
- 0x8C, 0xD4, 0x16, 0x51, 0x08, 0x29, 0x70, 0x83, 0x88, 0x68,
- 0x90, 0x44, 0x28, 0x84, 0x10, 0x05, 0x1C, 0xA8, 0x01, 0x11,
- 0xA6, 0x0D, 0x90, 0x06, 0x30, 0x4C, 0x44, 0x31, 0x14, 0x03,
- 0x00, 0x54, 0xB2, 0x08, 0x5B, 0x20, 0x01, 0x10, 0x40, 0x0E,
- 0x14, 0x86, 0x85, 0x60, 0x24, 0x71, 0xC3, 0xC0, 0x85, 0xE0,
- 0x42, 0x0D, 0xE0, 0x46, 0x80, 0x5A, 0xC6, 0x45, 0x59, 0x98,
- 0x28, 0xA4, 0x30, 0x8A, 0xDB, 0x06, 0x88, 0x43, 0x16, 0x04,
- 0x1A, 0xA1, 0x31, 0xA2, 0x08, 0x02, 0x5A, 0x22, 0x41, 0x4A,
- 0x42, 0x89, 0xA2, 0x82, 0x09, 0x90, 0xC2, 0x09, 0x03, 0x31,
- 0x8A, 0xC4, 0xC8, 0x44, 0x21, 0xC5, 0x6C, 0x01, 0xB9, 0x10,
- 0x09, 0x41, 0x29, 0x64, 0x30, 0x30, 0x44, 0x02, 0x65, 0x82,
- 0x24, 0x68, 0xC2, 0x28, 0x0C, 0x0B, 0x90, 0x45, 0x11, 0xC2,
- 0x70, 0x53, 0x86, 0x44, 0x10, 0x91, 0x81, 0x10, 0x21, 0x2E,
- 0x99, 0x44, 0x04, 0xE0, 0xB0, 0x88, 0x18, 0x28, 0x4E, 0x64,
- 0x22, 0x4D, 0x0B, 0x30, 0x71, 0xC2, 0x96, 0x80, 0x80, 0x08,
- 0x89, 0x03, 0x46, 0x2C, 0x53, 0x96, 0x28, 0x10, 0x24, 0x89,
- 0x09, 0x03, 0x2E, 0xC2, 0x04, 0x0C, 0x4B, 0xB6, 0x41, 0x89,
- 0x84, 0x31, 0x0C, 0x08, 0x2C, 0xA4, 0x36, 0x04, 0x08, 0x85,
- 0x05, 0x04, 0xC8, 0x2C, 0x03, 0xB8, 0x29, 0x0A, 0xB0, 0x45,
- 0x93, 0x80, 0x20, 0x94, 0xC6, 0x30, 0x8A, 0x22, 0x09, 0xA2,
- 0xC6, 0x60, 0x4A, 0x08, 0x8A, 0xC3, 0x42, 0x4C, 0x4B, 0x38,
- 0x40, 0x02, 0xC3, 0x68, 0x0A, 0x09, 0x4E, 0x18, 0xC8, 0x44,
- 0x12, 0x14, 0x6D, 0x53, 0x44, 0x25, 0x09, 0x27, 0x12, 0x11,
- 0xB4, 0x91, 0xD2, 0x30, 0x8C, 0x0C, 0x10, 0x8C, 0x99, 0x38,
- 0x05, 0x1A, 0xC8, 0x41, 0xA2, 0x10, 0x31, 0x0A, 0x33, 0x6C,
- 0x9C, 0x42, 0x60, 0xA0, 0x38, 0x6D, 0x5A, 0x90, 0x89, 0x91,
- 0x08, 0x46, 0x52, 0x10, 0x6C, 0x23, 0x02, 0x48, 0x0C, 0x36,
- 0x4A, 0x59, 0x92, 0x41, 0x24, 0xA4, 0x21, 0x1B, 0x13, 0x62,
- 0x02, 0xB1, 0x80, 0xC0, 0x86, 0x84, 0xC2, 0x28, 0x00, 0x4A,
- 0x48, 0x0A, 0x61, 0x34, 0x62, 0x5A, 0xA6, 0x45, 0x08, 0x47,
- 0x08, 0x21, 0x00, 0x6C, 0x20, 0x24, 0x90, 0xA1, 0x34, 0x91,
- 0x09, 0x15, 0x28, 0x0A, 0x42, 0x6E, 0x21, 0x29, 0x49, 0x0B,
- 0x24, 0x84, 0x1C, 0x86, 0x69, 0x59, 0x16, 0x10, 0x04, 0x12,
- 0x70, 0xCB, 0x90, 0x08, 0x18, 0x24, 0x64, 0x02, 0x13, 0x8D,
- 0x23, 0x38, 0x61, 0x1B, 0x34, 0x61, 0x0C, 0x80, 0x68, 0xCC,
- 0xB8, 0x11, 0xC8, 0x24, 0x92, 0xC0, 0x88, 0x81, 0xC9, 0x48,
- 0x6E, 0x09, 0x32, 0x2D, 0xA1, 0x08, 0x81, 0x0B, 0x30, 0x02,
- 0x19, 0xA8, 0x84, 0xD2, 0x84, 0x11, 0x50, 0x86, 0x09, 0x04,
- 0xA0, 0x20, 0x81, 0xA2, 0x41, 0x93, 0x24, 0x49, 0x03, 0x07,
- 0x41, 0xC8, 0xA8, 0x60, 0x0A, 0x11, 0x61, 0x64, 0x08, 0x81,
- 0x1B, 0x36, 0x62, 0xD4, 0x00, 0x4E, 0x44, 0xC6, 0x10, 0xDB,
- 0x20, 0x4A, 0xA0, 0xB4, 0x29, 0x84, 0x00, 0x6E, 0x20, 0x47,
- 0x4E, 0x23, 0x45, 0x51, 0xE2, 0xB6, 0x45, 0x18, 0xB5, 0x09,
- 0x51, 0xC6, 0x2D, 0x99, 0x92, 0x89, 0x0A, 0x84, 0x51, 0x94,
- 0x32, 0x24, 0x42, 0x24, 0x29, 0xD3, 0x94, 0x01, 0xC2, 0x80,
- 0x24, 0xA2, 0x92, 0x6D, 0x09, 0x46, 0x11, 0x83, 0x12, 0x0D,
- 0x03, 0x39, 0x84, 0xA1, 0xA2, 0x04, 0xC0, 0x24, 0x0D, 0x48,
- 0x98, 0x30, 0x88, 0x10, 0x20, 0x9B, 0xA6, 0x21, 0x82, 0x46,
- 0x6D, 0x0A, 0x96, 0x01, 0xA0, 0x14, 0x46, 0xE4, 0x08, 0x42,
- 0x08, 0x43, 0x8D, 0x0A, 0x12, 0x0D, 0x13, 0x37, 0x20, 0x22,
- 0x49, 0x21, 0x9C, 0x10, 0x66, 0xC0, 0x20, 0x31, 0x11, 0xB3,
- 0x81, 0x1C, 0x29, 0x09, 0x03, 0xB0, 0x08, 0x5C, 0x18, 0x82,
- 0x5C, 0xC2, 0x90, 0xD9, 0x44, 0x8C, 0xE2, 0x18, 0x85, 0x9A,
- 0x08, 0x29, 0x21, 0x25, 0x48, 0x90, 0x10, 0x8D, 0x19, 0x17,
- 0x60, 0x24, 0x39, 0x28, 0x19, 0x81, 0x45, 0x49, 0x32, 0x2D,
- 0xCC, 0xB6, 0x81, 0x03, 0x81, 0x25, 0x99, 0x08, 0x11, 0x0C,
- 0xA2, 0x81, 0x41, 0x18, 0x29, 0x91, 0x38, 0x12, 0x09, 0xB6,
- 0x71, 0x02, 0x26, 0x81, 0x82, 0x48, 0x85, 0x19, 0x44, 0x6C,
- 0x02, 0xC0, 0x49, 0x18, 0xA4, 0x65, 0x1B, 0x14, 0x6E, 0xA1,
- 0x42, 0x11, 0x12, 0x30, 0x25, 0x61, 0xA6, 0x4C, 0xDC, 0x10,
- 0x04, 0x88, 0x04, 0x30, 0x93, 0xB8, 0x2D, 0x23, 0x26, 0x52,
- 0x14, 0xB3, 0x00, 0xCA, 0x32, 0x44, 0x52, 0x14, 0x90, 0xE4,
- 0x26, 0x85, 0x24, 0xB7, 0x70, 0xDB, 0x28, 0x72, 0xE4, 0x96,
- 0x25, 0x99, 0x00, 0x65, 0x23, 0x29, 0x2C, 0xA1, 0x98, 0x08,
- 0x62, 0x16, 0x32, 0x09, 0x29, 0x52, 0x24, 0x19, 0x2A, 0x4A,
- 0x90, 0x89, 0x1C, 0x88, 0x65, 0x98, 0x16, 0x52, 0x0C, 0x95,
- 0x11, 0x11, 0x32, 0x4D, 0xD2, 0x86, 0x31, 0x92, 0x10, 0x6D,
- 0x82, 0xC0, 0x04, 0xE3, 0x14, 0x0A, 0x04, 0x24, 0x61, 0x0C,
- 0x93, 0x44, 0xC1, 0xC4, 0x2D, 0x4C, 0x16, 0x0A, 0x1A, 0x44,
- 0x0A, 0x5A, 0x42, 0x46, 0x10, 0xC8, 0x8C, 0x5B, 0xC4, 0x4D,
- 0xE2, 0xB4, 0x71, 0x61, 0xA8, 0x10, 0xC2, 0x02, 0x4E, 0xC4,
- 0x08, 0x4E, 0x52, 0x94, 0x70, 0x20, 0x19, 0x84, 0xA4, 0x18,
- 0x71, 0xC9, 0x10, 0x52, 0x9B, 0x40, 0x21, 0x4C, 0x80, 0x28,
- 0x40, 0x44, 0x89, 0x20, 0x25, 0x11, 0x13, 0x91, 0x29, 0x1A,
- 0x84, 0x10, 0x49, 0x14, 0x6E, 0x03, 0x27, 0x2D, 0x4C, 0x12,
- 0x42, 0x04, 0x03, 0x04, 0x1C, 0x43, 0x72, 0x44, 0x16, 0x82,
- 0x1B, 0x12, 0x46, 0x90, 0x94, 0x05, 0x93, 0xB8, 0x10, 0x64,
- 0x00, 0x22, 0x83, 0x38, 0x69, 0x0B, 0x43, 0x52, 0x0C, 0xA9,
- 0x6D, 0x19, 0xB3, 0x09, 0xD2, 0x32, 0x25, 0x9B, 0x46, 0x21,
- 0x5B, 0xA8, 0x89, 0xE3, 0xC8, 0x65, 0x12, 0xA0, 0x28, 0x9A,
- 0x18, 0x30, 0x54, 0xA8, 0x69, 0x88, 0x32, 0x10, 0x23, 0xB3,
- 0x21, 0x22, 0x92, 0x48, 0x92, 0x38, 0x12, 0x9B, 0x24, 0x86,
- 0xCB, 0x18, 0x02, 0x08, 0x25, 0x71, 0x9C, 0xC6, 0x69, 0x08,
- 0x30, 0x11, 0x42, 0x36, 0x62, 0xCB, 0x30, 0x0C, 0x02, 0x12,
- 0x90, 0xE1, 0x40, 0x8A, 0x90, 0x10, 0x42, 0x19, 0x83, 0x48,
- 0xD4, 0x48, 0x32, 0xD9, 0x04, 0x46, 0x00, 0x05, 0x52, 0x1C,
- 0x16, 0x92, 0x13, 0x23, 0x22, 0x08, 0xB6, 0x05, 0x1B, 0xC3,
- 0x41, 0x18, 0x98, 0x50, 0xDC, 0x96, 0x00, 0xE4, 0x32, 0x2A,
- 0x8B, 0x10, 0x25, 0x40, 0x14, 0x8A, 0xEC, 0x96, 0x58, 0x14,
- 0xF8, 0xEE, 0xD7, 0x19, 0x19, 0x51, 0x76, 0xA9, 0xAD, 0xB7,
- 0x18, 0x12, 0x37, 0x3C, 0xC2, 0xC8, 0x07, 0x57, 0x8B, 0xBE,
- 0x1C, 0x27, 0x62, 0xE4, 0x68, 0xF6, 0x88, 0x23, 0xD2, 0x89,
- 0xC0, 0x02, 0x09, 0xBE, 0x8D, 0x64, 0x93, 0x7B, 0xB3, 0x04,
- 0xD4, 0x5C, 0x3C, 0xAE, 0xF1, 0xC5, 0x67, 0x34, 0x52, 0x34,
- 0x1E, 0xEB, 0x72, 0x02, 0x09, 0x27, 0x5B, 0x39, 0xD0, 0x67,
- 0xEE, 0x1E, 0x02, 0xC3, 0x7F, 0x98, 0x9A, 0xA8, 0x66, 0x7D,
- 0x2B, 0x5B, 0xA7, 0x89, 0x74, 0xC7, 0xB6, 0x98, 0xC9, 0xFE,
- 0x9B, 0x18, 0xCA, 0x8F, 0x21, 0xCB, 0x32, 0x01, 0x55, 0xD1,
- 0x99, 0x53, 0x91, 0x31, 0x8E, 0x92, 0xFD, 0xD1, 0xCC, 0x25,
- 0xDF, 0xCC, 0x68, 0x29, 0x2B, 0x91, 0x74, 0x18, 0x2F, 0x54,
- 0xBC, 0x70, 0xD4, 0x06, 0xDA, 0xC2, 0x00, 0xA6, 0x6D, 0xE1,
- 0x01, 0xDE, 0xD3, 0x55, 0x4A, 0x28, 0x21, 0x40, 0x72, 0x59,
- 0x1A, 0x94, 0x10, 0xCD, 0xF4, 0xBB, 0x63, 0x2C, 0x01, 0xEA,
- 0xCF, 0x42, 0x53, 0x54, 0x7C, 0xF4, 0x06, 0xE0, 0x89, 0x88,
- 0xC4, 0x60, 0x9A, 0xDB, 0x72, 0x50, 0x81, 0x8C, 0x02, 0x57,
- 0x7D, 0x14, 0x6E, 0x39, 0x64, 0x38, 0xF7, 0xB0, 0xB2, 0x4C,
- 0x80, 0x70, 0x3A, 0x91, 0xDB, 0x31, 0xA5, 0x2A, 0x17, 0x02,
- 0xC9, 0x2D, 0x41, 0x73, 0x22, 0x6C, 0x4F, 0xAA, 0xF3, 0x32,
- 0x4B, 0xF3, 0x34, 0x2E, 0xB1, 0x0F, 0x86, 0x5F, 0xE1, 0x3D,
- 0x2F, 0x42, 0x61, 0x6D, 0x75, 0x07, 0xB2, 0xDB, 0x4B, 0x0E,
- 0x28, 0x41, 0x66, 0x15, 0xFE, 0xD9, 0x79, 0x7F, 0x2F, 0xEE,
- 0xD2, 0xDC, 0xE5, 0x53, 0x32, 0x8E, 0x81, 0xA7, 0x06, 0x99,
- 0xDC, 0x20, 0xEB, 0xCD, 0xD5, 0xDE, 0xCB, 0x39, 0x48, 0xA4,
- 0xB6, 0x66, 0x47, 0xD5, 0xD5, 0x46, 0xE6, 0x5D, 0xEA, 0xFF,
- 0xC1, 0x1E, 0xE7, 0xAB, 0x99, 0xAD, 0xE1, 0xD9, 0x47, 0x71,
- 0x3A, 0x6D, 0xC6, 0x66, 0xCC, 0x7E, 0x5C, 0x9D, 0x25, 0xB0,
- 0x2C, 0x3A, 0x72, 0x16, 0xE2, 0x67, 0x2F, 0xB2, 0xC5, 0x37,
- 0x3C, 0xBF, 0xDF, 0xC7, 0xE9, 0x48, 0xB6, 0x2C, 0x3B, 0x2B,
- 0x89, 0x76, 0xCB, 0x33, 0xCC, 0xCF, 0xF0, 0xE6, 0x32, 0x06,
- 0xE7, 0x3C, 0x6A, 0xDF, 0x24, 0x50, 0x6E, 0xEA, 0xEF, 0x31,
- 0xF7, 0x2C, 0xC3, 0xFA, 0x94, 0xBF, 0x4D, 0xF7, 0x1D, 0x03,
- 0xEB, 0x70, 0x14, 0x0D, 0x25, 0x87, 0x95, 0x1D, 0x8C, 0x61,
- 0x21, 0xC7, 0x05, 0x21, 0x2E, 0x2B, 0x6F, 0x9E, 0x87, 0x0D,
- 0xF3, 0x0C, 0x62, 0x27, 0x65, 0x74, 0x6E, 0xEB, 0x1C, 0x07,
- 0xDE, 0x62, 0x9B, 0xBA, 0x4F, 0xF0, 0x46, 0xD6, 0x6A, 0x18,
- 0x03, 0x4B, 0x24, 0xEB, 0x07, 0x78, 0xD0, 0x81, 0x3D, 0x00,
- 0xD6, 0xCB, 0x16, 0x60, 0x77, 0x91, 0xCC, 0xEE, 0xA5, 0x32,
- 0x02, 0x7C, 0x36, 0xE4, 0x60, 0xDC, 0xED, 0xBC, 0x47, 0x48,
- 0x59, 0xA5, 0x28, 0x02, 0x57, 0x75, 0xCE, 0xA0, 0x83, 0x45,
- 0x9A, 0xBD, 0xB9, 0x48, 0xFB, 0x0F, 0x45, 0xD9, 0x95, 0xE8,
- 0x2B, 0xFF, 0xAD, 0x32, 0xEF, 0x9D, 0x1D, 0x54, 0x4E, 0xCE,
- 0xA1, 0x2D, 0x0A, 0x41, 0xCB, 0xD1, 0x08, 0xB9, 0x45, 0x17,
- 0x97, 0xC1, 0x5C, 0x0D, 0x21, 0x5E, 0x27, 0xB8, 0x19, 0xB5,
- 0x1E, 0x89, 0x80, 0xE3, 0xBA, 0x0B, 0x66, 0xCE, 0xEF, 0x5B,
- 0x35, 0x38, 0xC2, 0xFB, 0x6E, 0xD9, 0x23, 0x18, 0xE1, 0x45,
- 0x98, 0x64, 0x60, 0xF1, 0xD0, 0xE1, 0xAA, 0x50, 0xD3, 0xB1,
- 0x8E, 0xEB, 0x08, 0x34, 0xC5, 0x99, 0x3F, 0xB4, 0x7F, 0x5A,
- 0xE2, 0x80, 0xF6, 0x22, 0x06, 0x1F, 0xB7, 0x3D, 0x58, 0xE6,
- 0xF6, 0x82, 0x3C, 0x15, 0x34, 0x2E, 0xC0, 0xE3, 0x80, 0x54,
- 0xB3, 0x55, 0xE8, 0x37, 0xC5, 0x1D, 0x3A, 0x36, 0x26, 0x05,
- 0x24, 0xFB, 0x65, 0xDE, 0x95, 0x63, 0xF0, 0xC3, 0xFA, 0x43,
- 0x1D, 0xCE, 0x7B, 0x21, 0x0E, 0x52, 0x6F, 0xA7, 0x27, 0xBD,
- 0x3E, 0x7A, 0xE7, 0x59, 0xD0, 0xC3, 0xFB, 0x4C, 0x56, 0xCB,
- 0x2A, 0x20, 0x7F, 0xCC, 0x94, 0xFE, 0xC0, 0x58, 0xD0, 0xFC,
- 0x99, 0xB9, 0x97, 0x1A, 0x37, 0xF0, 0xB1, 0x83, 0xF3, 0x52,
- 0x1E, 0x50, 0x2C, 0x74, 0x67, 0xFF, 0x62, 0x83, 0xB0, 0x79,
- 0xE4, 0xF3, 0x92, 0x45, 0xFA, 0x94, 0x73, 0xC4, 0x24, 0xD8,
- 0xDE, 0x88, 0x8C, 0x85, 0xE2, 0xA7, 0x84, 0xD9, 0xB4, 0x58,
- 0x02, 0xFF, 0x64, 0xDE, 0x2A, 0x9D, 0x41, 0xEB, 0xE7, 0xEE,
- 0x2B, 0x0A, 0x4D, 0x8E, 0xDC, 0x39, 0x56, 0xE2, 0x00, 0xF0,
- 0x9D, 0xE1, 0x4F, 0x33, 0xD1, 0x6C, 0xF9, 0xF5, 0x89, 0x45,
- 0x78, 0xA4, 0x15, 0x86, 0xFD, 0x70, 0x7A, 0xEC, 0xA5, 0xDB,
- 0x6B, 0x7A, 0x28, 0x2D, 0x81, 0x63, 0xD2, 0x04, 0xF6, 0xC6,
- 0x95, 0x14, 0xD0, 0x6B, 0x22, 0x7C, 0x87, 0x63, 0x13, 0x93,
- 0x43, 0x04, 0xB7, 0x85, 0x4C, 0x9F, 0xF3, 0xE1, 0x96, 0x23,
- 0x0E, 0xC9, 0x9E, 0x2C, 0x86, 0xF0, 0x9A, 0xC1, 0xF9, 0x65,
- 0x69, 0x40, 0x6D, 0x6E, 0x7C, 0xA1, 0x68, 0x72, 0x44, 0xEF,
- 0x46, 0x7F, 0xFB, 0x18, 0x40, 0x17, 0xFC, 0x0B, 0x30, 0xEF,
- 0x13, 0xFF, 0xAE, 0x92, 0x97, 0x52, 0xEB, 0x9F, 0xEE, 0x88,
- 0x51, 0xDC, 0x8C, 0x93, 0xAD, 0xB8, 0x5E, 0x8A, 0xF8, 0x4A,
- 0x57, 0x2C, 0xAD, 0x23, 0xA4, 0x06, 0x26, 0x80, 0x2F, 0xF7,
- 0x4D, 0x7C, 0xE0, 0xF2, 0xE7, 0x0E, 0x60, 0xBE, 0x96, 0xE9,
- 0x89, 0xCF, 0x73, 0x62, 0x40, 0xB5, 0x12, 0x8C, 0x5D, 0x91,
- 0x29, 0x7E, 0x30, 0x91, 0x7E, 0xA5, 0x91, 0xF5, 0x5B, 0xA0,
- 0x94, 0x96, 0x0C, 0x6A, 0x2A, 0x01, 0x87, 0x44, 0x05, 0xE4,
- 0xFB, 0x81, 0x19, 0x3A, 0x96, 0x8B, 0xE8, 0x80, 0xF3, 0xA4,
- 0x45, 0xD7, 0xF9, 0x29, 0x3F, 0xBB, 0x9F, 0x34, 0x35, 0x64,
- 0xA9, 0x9A, 0xD4, 0x8D, 0xFE, 0xF8, 0xC1, 0x13, 0xF7, 0xDE,
- 0x98, 0x9B, 0x31, 0xB4, 0x8F, 0x57, 0xBB, 0x93, 0x1B, 0xC2,
- 0x64, 0x33, 0x8D, 0x97, 0x8C, 0x57, 0xB3, 0x23, 0x70, 0x72,
- 0x14, 0xC2, 0x45, 0x7F, 0xF7, 0x16, 0xB2, 0xD5, 0x7D, 0xA2,
- 0xB7, 0xAD, 0xC9, 0x86, 0x92, 0xD7, 0xF9, 0x2E, 0x20, 0x35,
- 0x64, 0xC7, 0x74, 0x64, 0xFF, 0xC2, 0x85, 0x84, 0xBC, 0xBF,
- 0xB0, 0x96, 0xC2, 0x37, 0x66, 0x56, 0x21, 0x8E, 0xDC, 0x0F,
- 0x98, 0xEC, 0x9F, 0x78, 0xB2, 0x71, 0xA5, 0x88, 0xEE, 0xFD,
- 0x03, 0xA8, 0xBA, 0xF6, 0x39, 0x77, 0xA0, 0x69, 0x99, 0x34,
- 0x9B, 0x32, 0x3C, 0x69, 0x88, 0xBF, 0xB5, 0xB5, 0x50, 0x4D,
- 0xB2, 0xA1, 0xE6, 0xDD, 0x1E, 0xA4, 0xA8, 0xF1, 0xA6, 0x9B,
- 0xAF, 0x6A, 0xAE, 0x72, 0x92, 0x73, 0x33, 0x39, 0xDD, 0xC6,
- 0xCE, 0xA0, 0x72, 0xFA, 0x66, 0x75, 0x3D, 0x9B, 0xA0, 0x04,
- 0x88, 0x37, 0x2A, 0x88, 0x36, 0xE5, 0x43, 0x96, 0x68, 0x41,
- 0x6D, 0x3B, 0x0E, 0xB8, 0xE9, 0x51, 0x92, 0x28, 0x72, 0x7D,
- 0xC4, 0x27, 0x95, 0x7F, 0xBF, 0x66, 0x7B, 0x47, 0x77, 0xB7,
- 0xA4, 0x75, 0x02, 0x43, 0x0B, 0x34, 0x2B, 0x2D, 0x6E, 0xD5,
- 0xCD, 0x1C, 0x78, 0x56, 0x0B, 0x15, 0x4E, 0x80, 0xF2, 0x4D,
- 0xB2, 0x1F, 0xAC, 0x82, 0x3B, 0xE7, 0x09, 0xC8, 0x41, 0x22,
- 0xDD, 0xEA, 0xB1, 0xA8, 0x6B, 0xE8, 0x21, 0x12, 0x09, 0x19,
- 0x19, 0xA2, 0x04, 0xDB, 0xFA, 0x59, 0x87, 0x85, 0x10, 0x44,
- 0x1B, 0xE6, 0xA8, 0xD9, 0x33, 0x27, 0xF7, 0x05, 0x0D, 0x2D,
- 0x98, 0xE2, 0x2A, 0x96, 0xD6, 0xEB, 0x32, 0x9D, 0x75, 0x8A,
- 0xC5, 0x78, 0x30, 0x49, 0x19, 0x94, 0x7C, 0x33, 0xC4, 0xEF,
- 0xA9, 0xA3, 0xD1, 0xB4, 0xF4, 0xB7, 0x6D, 0x13, 0x1E, 0x7D,
- 0xE3, 0x60, 0x7C, 0x9F, 0x10, 0x93, 0x8C, 0xE4, 0x52, 0x07,
- 0x58, 0x03, 0x57, 0xA1, 0x6A, 0x94, 0x66, 0xD3, 0xEC, 0xF0,
- 0x14, 0x96, 0xBE, 0x2F, 0xA5, 0xB1, 0xA9, 0xEE, 0xC8, 0x25,
- 0x39, 0xA5, 0xA0, 0x82, 0xFC, 0x40, 0xA5, 0x7D, 0x87, 0x48,
- 0xD1, 0x1C, 0x88, 0xA5, 0x34, 0x29, 0xC9, 0x73, 0xC6, 0x5A,
- 0xDC, 0x89, 0xDF, 0xCB, 0x0F, 0x67, 0xA8, 0x72, 0xB4, 0xF2,
- 0x99, 0xDE, 0x9E, 0xBE, 0x1B, 0x76, 0xAB, 0x23, 0x9C, 0x5E,
- 0xE3, 0xEC, 0xD9, 0x34, 0x70, 0x63, 0x32, 0x03, 0x74, 0xCB,
- 0x1C, 0x76, 0x0D, 0x5B, 0xEB, 0xDD, 0x7E, 0xF5, 0x78, 0x9F,
- 0xE6, 0xC8, 0x9F, 0x63, 0x47, 0x05, 0xAD, 0xD0, 0x21, 0xA8,
- 0x44, 0xAA, 0x70, 0x93, 0xD3, 0xCE, 0x21, 0x79, 0xE9, 0x5B,
- 0x2F, 0x07, 0x32, 0xE5, 0x42, 0xF9, 0xE8, 0x61, 0x33, 0x39,
- 0xFA, 0x13, 0x03, 0x0C, 0x44, 0x80, 0x1D, 0x70, 0x70, 0xFE,
- 0xF8, 0x3A, 0x46, 0x18, 0x15, 0x68, 0x01, 0xA7, 0x90, 0xDB,
- 0x8E, 0xDF, 0xB9, 0x1B, 0x06, 0xE0, 0xD4, 0x2D, 0x68, 0x9B,
- 0x72, 0xEA, 0xA9, 0xEA, 0x74, 0x67, 0x18, 0x62, 0x8E, 0x2D,
- 0x21, 0x0D, 0x6F, 0xED, 0xA2, 0x64, 0x0C, 0x4F, 0x9D, 0xA3,
- 0xD4, 0x3F, 0x28, 0xF5, 0xDA, 0x41, 0x80, 0xB0, 0x71, 0x5C,
- 0xDE, 0xF3, 0xA4, 0xC1, 0x55, 0x46, 0x57, 0x9E, 0x6B, 0xA3,
- 0xD1, 0x40, 0xED, 0x29, 0x37, 0x00, 0xB5, 0xF2, 0x88, 0x0A,
- 0x85, 0xDE, 0x2B, 0x64, 0xBC, 0x07, 0x21, 0x43, 0xDF, 0x36,
- 0xAA, 0xFD, 0x7B, 0x65, 0x2D, 0x1A, 0xA5, 0xB7, 0x06, 0xEE,
- 0x18, 0xC6, 0x26, 0xB9, 0x47, 0x24, 0x21, 0xB1, 0x67, 0x6F,
- 0xC8, 0x51, 0xA6, 0x6D, 0x8F, 0xF4, 0x4B, 0xCA, 0x26, 0x9D,
- 0xA7, 0xED, 0xAF, 0x0B, 0x8A, 0x02, 0x1F, 0xDA, 0x93, 0x12,
- 0xFE, 0x25, 0x02, 0xFE, 0x23, 0x06, 0x4F, 0x22, 0x2D, 0x61,
- 0x52, 0xD6, 0xFC, 0x1E, 0x36, 0x50, 0x43, 0x30, 0x45, 0x31,
- 0x38, 0x7D, 0xCF, 0xA4, 0xBF, 0xB2, 0xA7, 0xCA, 0x5D, 0x80,
- 0xBB, 0xD3, 0xD0, 0x47, 0x14, 0xC3, 0x87, 0xA8, 0x7D, 0x0F,
- 0x0D, 0x16, 0xCD, 0x4D, 0x54, 0xB5, 0x1F, 0x04, 0x2D, 0xC1,
- 0x5E, 0x20, 0x5C, 0x8F, 0x52, 0x3F, 0x9A, 0x17, 0xE1, 0x9E,
- 0x5E, 0xBB, 0x64, 0x5B, 0x2C, 0x80, 0x7D, 0x80, 0x3A, 0xE1,
- 0x0D, 0xE1, 0x83, 0xEB, 0x70, 0xF2, 0xE0, 0x12, 0x94, 0x48,
- 0xDF, 0x44, 0xFF, 0x5B, 0x1B, 0x27, 0xEE, 0x94, 0x01, 0x38,
- 0xE2, 0x91, 0x8A, 0x5D, 0x1C, 0xEA, 0xC9, 0x5A, 0x42, 0xF8,
- 0x62, 0x41, 0x8E, 0xCB, 0x86, 0x4D, 0x81, 0x10, 0xCD, 0x4B,
- 0x0F, 0x2E, 0xBE, 0x80, 0x1B, 0xA6, 0x17, 0xB6, 0x13, 0xE6,
- 0x85, 0xA6, 0x3D, 0x95, 0xE2, 0xFC, 0x69, 0xD8, 0x90, 0xFA,
- 0x8B, 0x51, 0xE5, 0x56, 0xCA, 0x7A, 0xA4, 0x92, 0x83, 0x43,
- 0xA1, 0x3D, 0xA4, 0xC5, 0xD6, 0x56, 0xAC, 0x6A, 0xEE, 0x37,
- 0x73, 0x63, 0x71, 0xF1, 0x76, 0xBD, 0x70, 0x20, 0x0C, 0xE4,
- 0xD7, 0xC9, 0x44, 0x47, 0x7E, 0xA6, 0x8B, 0xD3, 0x7F, 0x64,
- 0x9F, 0xF0, 0x7F, 0x25, 0xAF, 0xF3, 0x0C, 0x9B, 0x03, 0x05,
- 0x91, 0x9A, 0xCE, 0x7E, 0xA7, 0x26, 0x0F, 0x52, 0xA8, 0xDA,
- 0xBE, 0x2D, 0x80, 0x31, 0xE7, 0x6D, 0x3C, 0xAE, 0xEF, 0xC6,
- 0x64, 0x44, 0x84, 0x6B, 0xF1, 0xE0, 0x4B, 0x75, 0xF2, 0x76,
- 0x6F, 0x58, 0x03, 0x45, 0xAC, 0x47, 0xBD, 0x66, 0xA3, 0x31,
- 0x29, 0x87, 0xF7, 0xD2, 0x88, 0x63, 0xA3, 0x2B, 0x16, 0x1A,
- 0xC2, 0x71, 0xEE, 0x9A, 0x09, 0x40, 0x3E, 0xC9, 0x5F, 0x49,
- 0xFE, 0x18, 0xF0, 0x4E, 0x2C, 0x64, 0xEB, 0x11, 0xFB, 0x28,
- 0xA1, 0xAD, 0xCE, 0x36, 0x6A, 0xC7, 0x38, 0xDD, 0x48, 0x34,
- 0xC0, 0x69, 0x49, 0x25, 0x12, 0xDF, 0x6C, 0x46, 0x97, 0xF0,
- 0xB5, 0x55, 0x97, 0x36, 0x66, 0x40, 0x4C, 0x4D, 0x36, 0xC4,
- 0xD5, 0xFB, 0x3A, 0x22, 0x35, 0xCB, 0xDC, 0xA4, 0x50, 0xF6,
- 0xBD, 0x40, 0x20, 0xB8, 0x24, 0xA3, 0xBA, 0x42, 0x27, 0x29,
- 0x16, 0xB8, 0x41, 0xAD, 0xE0, 0x14, 0x01, 0x9A, 0x1C, 0x44,
- 0xEE, 0x1C, 0xC1, 0x59, 0xEE, 0x0D, 0x13, 0xC4, 0x27, 0x4D,
- 0x18, 0x7E, 0x28, 0x03, 0xAB, 0xF9, 0xEC, 0xFC, 0x9B, 0x00,
- 0xAC, 0xFF, 0xA6, 0x0B, 0xB1, 0x15, 0x4B, 0xC8, 0x89, 0xF9,
- 0x56, 0xA5, 0xB2, 0x8D, 0x24, 0x93, 0xB8, 0xA0, 0x51, 0xE2,
- 0xF9, 0xE7, 0xEF, 0xBD, 0x67, 0x06, 0x15, 0x85, 0xB4, 0xB3,
- 0xD3, 0x0A, 0x1F, 0xBA, 0xCD, 0x53, 0xB8, 0xB8, 0xD0, 0xE1,
- 0x00, 0x2E, 0x3C, 0xC0, 0xD7, 0xFA, 0xB2, 0xAB, 0x40, 0xA2,
- 0xFE, 0x63, 0x92, 0x5F, 0x97, 0xBF, 0x6F, 0xD6, 0xEA, 0x18,
- 0x69, 0xE4, 0x2D, 0xE0, 0x50, 0x34, 0x74, 0x00, 0xE8, 0xB5,
- 0xD1, 0xBC, 0x67, 0x0E, 0xAA, 0xCC, 0x0C, 0x6A, 0xCF, 0x02,
- 0x4D, 0x86, 0x7D, 0x76, 0xE8, 0xD6, 0x60, 0xF0, 0xD3, 0x4F,
- 0x37, 0x85, 0xAF, 0x3B, 0x68, 0xEB, 0xE6, 0x0F, 0x47, 0xA3,
- 0xEA, 0xAE, 0xDE, 0xFA, 0xF8, 0x88, 0xFF, 0x90, 0xA8, 0x5C,
- 0x33, 0x6F, 0x69, 0x90, 0x44, 0x84, 0x13, 0x1B, 0xE9, 0x69,
- 0x5E, 0x37, 0x32, 0xFD, 0xD0, 0x13, 0xD8, 0xEA, 0x91, 0x42,
- 0x24, 0x7E, 0xF1, 0x5A, 0xFD, 0xB7, 0xEB, 0x45, 0xBB, 0x1C,
- 0xAA, 0xAA, 0xD1, 0x0B, 0xE0, 0xDB, 0x6D, 0xFF, 0xE5, 0xC0,
- 0xF9, 0x63, 0x12, 0x8B, 0x1B, 0x66, 0x3B, 0x5E, 0x73, 0xC5,
- 0x90, 0x67, 0xC8, 0xAE, 0x13, 0xAE, 0xBE, 0xBE, 0x37, 0x6F,
- 0x12, 0xBE, 0x0F, 0x3E, 0x1B, 0xB7, 0x69, 0xD0, 0x29, 0x20,
- 0xFD, 0x3D, 0x6D, 0x2F, 0x4D, 0xCF, 0xB9, 0x8F, 0x30, 0x4C,
- 0x4F, 0x7E, 0x72, 0x83, 0x59, 0xB8, 0xD3, 0xF4, 0x01, 0x78,
- 0x3E, 0x1B, 0xF7, 0xF9, 0x41, 0xCC, 0xAD, 0xC0, 0x5C, 0x9B,
- 0x9A, 0xDE, 0xDD, 0xDF, 0x36, 0x07, 0xA0, 0x77, 0x16, 0x3F,
- 0x6F, 0xC9, 0x44, 0x21, 0xAE, 0xA0, 0xD7, 0x84, 0x97, 0x26,
- 0xCB, 0x7F, 0x84, 0xF1, 0x01, 0x18, 0xC0, 0x7C, 0xA1, 0x54,
- 0x34, 0x91, 0xBE, 0xA7, 0x52, 0xC9, 0x8E, 0x23, 0xCE, 0x4D,
- 0xE2, 0xF1, 0x72, 0xDD, 0x95, 0x43, 0xD4, 0x66, 0xBF, 0x1A,
- 0xBF, 0x44, 0x68, 0xD0, 0xFC, 0xAE, 0xD9, 0x16, 0x12, 0x51,
- 0x34, 0x86, 0x85, 0xB8, 0x0D, 0xF9, 0x68, 0x1C, 0x75, 0x3A,
- 0x9B, 0x12, 0x27, 0xF8, 0x66, 0xF2, 0x1C, 0x89, 0xA8, 0xC0,
- 0xC7, 0x91, 0x16, 0xD3, 0xDD, 0x52, 0xFB, 0xF8, 0x73, 0xA4,
- 0xDE, 0x0F, 0xB1, 0x1F, 0x8E, 0xF8, 0x09, 0x28, 0x59, 0xD1,
- 0x11, 0xD2, 0x22, 0xA1, 0x1E, 0x83, 0x82, 0x7A, 0xCA, 0xBE,
- 0x56, 0xF2, 0x77, 0x4A, 0xFE, 0x2C, 0xD6, 0x37, 0x9E, 0x94,
- 0x48, 0xF0, 0x19, 0x82, 0x88, 0x96, 0x7C, 0xDB, 0x9B, 0x42,
- 0xC5, 0xD9, 0xC5, 0xBC, 0x80, 0x09, 0x49, 0xAA, 0xA4, 0x1F,
- 0xB1, 0x1C, 0x52, 0xEE, 0x20, 0x58, 0xB3, 0x1F, 0x48, 0xF1,
- 0xBD, 0x8F, 0x52, 0xCE, 0x65, 0x2F, 0xC2, 0x1C, 0x64, 0x39,
- 0xE9, 0xDB, 0xF2, 0x4C, 0xEA, 0xED, 0x6C, 0x67, 0x6D, 0x3C,
- 0x94, 0x79, 0x00, 0xA7, 0x05, 0x8F, 0x66, 0x0F, 0xE4, 0x5D,
- 0xEB, 0x23, 0xFF, 0xCC, 0xFE, 0x98, 0x8B, 0xA4, 0x4F, 0x2A,
- 0x2D, 0xC2, 0x8F, 0xB6, 0x2B, 0xAB, 0x06, 0xC0, 0x5B, 0xD5,
- 0x24, 0x1F, 0x20, 0xE1, 0xCC, 0x12, 0x86, 0xD8, 0x94, 0xFC,
- 0x2D, 0xDF, 0x42, 0xF8, 0x70, 0x53, 0xF2, 0xD5, 0x8F, 0x66,
- 0xD3, 0x8B, 0x2C, 0xA7, 0x85, 0xAA, 0x74, 0x44, 0x14, 0x32,
- 0x87, 0x9A, 0x8E, 0x92, 0x05, 0x31, 0x2F, 0xE0, 0x49, 0xFC,
- 0xBC, 0x04, 0x1C, 0x57, 0x25, 0x8D, 0x56, 0x54, 0x0D, 0xA7,
- 0x6D, 0xAD, 0x1E, 0x5A, 0x68, 0x48, 0x9D, 0xAD, 0xE0, 0x52,
- 0xF5, 0xC0, 0x76, 0x9C, 0x5A, 0xAC, 0x17, 0xD6, 0x37, 0x16,
- 0x89, 0xE6, 0x97, 0x75, 0x0E, 0x88, 0x3C, 0x53, 0xFC, 0x73,
- 0x16, 0x14, 0xCA, 0x62, 0x07, 0x84, 0x95, 0xA6, 0x21, 0x20,
- 0xDA, 0xAA, 0xC2, 0x26, 0x72, 0xEA, 0x6B, 0x5E, 0xE1, 0x17,
- 0x01, 0xB6, 0x46, 0xA6, 0x55, 0x36, 0xFB, 0x25, 0xFD, 0xF0,
- 0x37, 0xC6, 0xC6, 0x30, 0x29, 0xC7, 0x19, 0xEA, 0x32, 0xE1,
- 0xFB, 0x92, 0x31, 0x87, 0x6D, 0xC7, 0x94, 0xC6, 0xB2, 0x89,
- 0x20, 0xC4, 0x2F, 0x6C, 0x14, 0xB8, 0xAB, 0x1A, 0x3A, 0xD0,
- 0x1F, 0x59, 0x55, 0x76, 0x70, 0x44, 0xC8, 0x5F, 0x33, 0x9F,
- 0xA3, 0xE3, 0x2D, 0xF1, 0x0C, 0xCA, 0x33, 0xB9, 0xC3, 0xFD,
- 0x66, 0xE8, 0xD9, 0x9A, 0xE9, 0x4A, 0xCD, 0xB9, 0x09, 0x04,
- 0xDB, 0x6B, 0x39, 0x71, 0xA3, 0x04, 0x68, 0xE3, 0x20, 0xDD,
- 0x3C, 0x59, 0xF8, 0x36, 0xD2, 0x5C, 0xE4, 0x8F, 0x5D, 0xBF,
- 0x39, 0xDC, 0xB6, 0x23, 0x01, 0x0C, 0xDF, 0x2D, 0x83, 0xAE,
- 0x2C, 0x27, 0xCE, 0xAE, 0x2A, 0x9D, 0x40, 0xC2, 0x55, 0x58,
- 0x48, 0x3C, 0x9B, 0x5D, 0x9F, 0xC6, 0xA6, 0x54, 0x29, 0x5E,
- 0x36, 0xAC, 0xDC, 0xDA, 0xED, 0x8C, 0x1D, 0x73, 0x7B, 0x62,
- 0x7F, 0x8F, 0xF6, 0xCC, 0x8A, 0xF2, 0x9B, 0x43, 0x8E, 0x6C,
- 0x46, 0xF2, 0x9B, 0x59, 0x38, 0xD4, 0x57, 0x0A, 0x83, 0x6C,
- 0x9A, 0x78, 0x72, 0x31, 0x42, 0x53, 0x6A, 0x91, 0xE1, 0xE2,
- 0xAF, 0x77, 0xE0, 0x86, 0x0C, 0x37, 0x12, 0xD7, 0xEC, 0x10,
- 0x5C, 0x05, 0x29, 0x1A, 0x27, 0x0E, 0x48, 0x25, 0xF7, 0x5F,
- 0x57, 0x50, 0x15, 0x4F, 0x41, 0x8B, 0xAB, 0x25, 0x0F, 0xDE,
- 0x5F, 0x12, 0x64, 0xA3, 0xF0, 0x35, 0x38, 0x7C, 0xD8, 0xD8,
- 0xC1, 0x88, 0x9A, 0x34, 0xB6, 0xAF, 0xA9, 0x22, 0x87, 0x62,
- 0x1C, 0xE8, 0xF2, 0xD3, 0x25, 0x50, 0x92, 0x91, 0xFF, 0x32,
- 0x07, 0xF7, 0xC5, 0x7B, 0xB4, 0x69, 0xB7, 0x00, 0x36, 0x8A,
- 0x12, 0x7E, 0x4B, 0x35, 0xC2, 0x39, 0x9E, 0x90, 0x77, 0xBC,
- 0x50, 0x33, 0x46, 0x02, 0x12, 0x09, 0xF2, 0xEC, 0x4C, 0x3D,
- 0xBF, 0x7A, 0xBB, 0x7D, 0x99, 0x1A, 0x70, 0x55, 0x24, 0x34,
- 0x68, 0xD2, 0xD6, 0x27, 0xEA, 0xED, 0x87, 0x3A, 0x04, 0xDF,
- 0xC5, 0xE6, 0x4E, 0x88, 0xFE, 0x8B, 0xED, 0xE0, 0x4C, 0xFF,
- 0x6E, 0x97, 0x42, 0x3C, 0x0F, 0x60, 0x1F, 0xDC, 0x62, 0x69,
- 0xB2, 0xBC, 0xB4, 0x18, 0x3C, 0x6D, 0x69, 0x8B, 0xD8, 0xA5,
- 0x15, 0x2F, 0xA4, 0xD8, 0x1C, 0x62, 0x3F, 0x9A, 0x8B, 0x15,
- 0x22, 0xAE, 0x37, 0xB6, 0xB8, 0x4D, 0xC4, 0xA5, 0x65, 0x65,
- 0x6D, 0x22, 0x59, 0x61, 0xE1, 0x08, 0xD5, 0xE2, 0x86, 0xB8,
- 0xBA, 0xD5, 0x68, 0x53, 0xEE, 0x62, 0xD7, 0xF9, 0x46, 0x8C,
- 0x51, 0x01, 0xC5, 0x55, 0x22, 0xE5, 0xFE, 0xA0, 0xAA, 0x6A,
- 0x4D, 0xCA, 0xC3, 0x20, 0x64, 0x12, 0xDB, 0x6F, 0x63, 0xAE,
- 0xDC, 0xF6, 0x8C, 0xEA, 0x24, 0x43, 0xCD, 0x61, 0x74, 0xDF,
- 0x61, 0x19, 0x56, 0x8A, 0x55, 0x1C, 0x16, 0x67, 0x15, 0x68,
- 0x78, 0xE3, 0x51, 0x63, 0x4F, 0x97, 0x9A, 0xC0, 0xE5, 0xC2,
- 0xD4, 0xD3, 0x8C, 0xA0, 0x80, 0x3B, 0xFE, 0x07, 0x14, 0xAF,
- 0x1C, 0x16, 0x0B, 0x2C, 0x52, 0x87, 0xFB, 0x8E, 0x91, 0xB4,
- 0x30, 0x00, 0x22, 0xD1, 0x4D, 0xAE, 0x8A, 0x1F, 0x19, 0x3E,
- 0xD8, 0x75, 0x83, 0x85, 0x84, 0x3E, 0xEA, 0xC5, 0x87, 0xB9,
- 0x70, 0x53, 0x25, 0xB2, 0xAB, 0xD0, 0x9C, 0x17, 0x5E, 0xA0,
- 0x3C, 0xB0, 0x95, 0x5C, 0xDF, 0x86, 0x02, 0x82, 0xEA, 0x7B,
- 0xB2, 0xF1, 0x9B, 0x56, 0xAE, 0x47, 0xA0, 0xB6, 0x65, 0x96,
- 0xF0, 0x40, 0x6D, 0x60, 0xE7, 0x57, 0xC7, 0xE4, 0x1B, 0x63,
- 0x91, 0x0F, 0x1B, 0xA8, 0x1D, 0x05, 0xDA, 0x43, 0x7C, 0x94,
- 0x9A, 0x02, 0x4D, 0xA4, 0x70, 0xFC, 0x6E, 0xFE, 0x5D, 0xA0,
- 0x55, 0x5D, 0xE9, 0x90, 0x07, 0x6B, 0x58, 0x9A, 0xA2, 0x5C,
- 0x79, 0xE3, 0x27, 0x90, 0x8C, 0x97, 0x2D, 0xAB, 0x9E, 0x6E,
- 0x54, 0x66, 0x51, 0xAD, 0x76, 0x7D, 0x83, 0xDD, 0x26, 0x5B,
- 0x68, 0x7D, 0x94, 0x7E, 0x34, 0xEC, 0x25, 0x8E, 0x91, 0x4D,
- 0xB9, 0x38, 0xD2, 0xFE, 0xDD, 0x03, 0x92, 0xA3, 0x88, 0x5B,
- 0xBD, 0xE4, 0xDB, 0xE4, 0x32, 0x8A, 0x30, 0xAA, 0x72, 0x83,
- 0x3F, 0xBC, 0x9A, 0xC4, 0x47, 0x42, 0xD4, 0x1E, 0x4D, 0x4D,
- 0xA1, 0x4D, 0x10, 0x61, 0x7D, 0x69, 0x65, 0xEC, 0x3E, 0xBE,
- 0x57, 0x54, 0x5E, 0x97, 0x28, 0x1E, 0xAE, 0xFA, 0x33, 0x4F,
- 0xD0, 0x55, 0x42, 0x1A, 0xA7, 0x02, 0xC1, 0xCC, 0x25, 0x45,
- 0x5A, 0x95, 0x7A, 0x29, 0x95, 0x27, 0x1B, 0xF2, 0xE2, 0x6F,
- 0x45, 0xDA, 0x48, 0x6E, 0x39, 0x26, 0xF7, 0xDD, 0x2A, 0x83,
- 0x23, 0xDD, 0xA7, 0xEC, 0x3E, 0xC0, 0x27, 0xC0, 0xCF, 0x38,
- 0xDD, 0x61, 0x71, 0xCC, 0xE0, 0xB6, 0x80, 0x84, 0x2E, 0x7C,
- 0x82, 0x7F, 0x21, 0x17, 0xB4, 0xDC, 0x35, 0xC8, 0xAA, 0x23,
- 0x58, 0xD0, 0x1E, 0x6B, 0xD0, 0xAB, 0x82, 0xCF, 0x49, 0xCB,
- 0x91, 0x95, 0x64, 0x32, 0xA7, 0x2F, 0x1D, 0x3B, 0x00, 0x33,
- 0xEA, 0x2A, 0x9E, 0x7B, 0x27, 0xB7, 0x0E, 0x8F, 0x5C, 0x61,
- 0x03, 0x0F, 0xF7, 0x7F, 0xE8, 0xA9, 0x23, 0x10, 0x54, 0x47,
- 0xCC, 0x8B, 0x08, 0x65, 0x0A, 0x9D, 0x23, 0x86, 0xD1, 0xB1,
- 0xB4, 0x08, 0x0A, 0x9E, 0xBD, 0xC1, 0xAC, 0xF6, 0xDF, 0x59,
- 0xDA, 0x81, 0xCC, 0x81, 0xF9, 0xF9, 0x51, 0x81, 0x0F, 0x2B,
- 0x6D, 0x8D, 0x6B, 0x1D, 0x29, 0xD8, 0x3E, 0xFE, 0x2D, 0xBA,
- 0x4F, 0xA5, 0xD6, 0x7B, 0x4B, 0x3F, 0x0E, 0x34, 0x80, 0x17,
- 0x78, 0x13, 0xB7, 0xCF, 0x81, 0x1F, 0xE9, 0x12, 0xA1, 0x8F,
- 0x84, 0xB8, 0x78, 0x82, 0xFC, 0xCC, 0xAB, 0xDF, 0x0C, 0x48,
- 0xAC, 0x9A, 0x92, 0x6B, 0xA8, 0xEA, 0x20, 0x34, 0x81, 0x5E,
- 0x6A, 0x83, 0x73, 0xA5, 0x0B, 0xAF, 0xCF, 0x53, 0x42, 0x2E,
- 0xDC, 0x75, 0x37, 0x32, 0xCB, 0x52, 0x7B, 0x0E, 0xCA, 0x16,
- 0x32, 0x81, 0x4F, 0xE7, 0x04, 0x13, 0xEB, 0x7A, 0xBA, 0xF0,
- 0xDF, 0x1D, 0x61, 0x4B, 0x5F, 0x52, 0x08, 0x52, 0x2D, 0x87,
- 0x7C, 0x1A, 0x5B, 0x6F, 0x04, 0x16, 0xE3, 0x8D, 0xE0, 0x63,
- 0x0B, 0xBE, 0xC6, 0x16, 0xF0, 0x47, 0x03, 0x8A, 0xD6, 0x8D,
- 0xC2, 0xA8, 0xFB, 0xA8, 0x34, 0x52, 0xB4, 0xBF, 0xFF, 0x48,
- 0x82, 0xC3, 0x22, 0x03, 0xE5, 0xD0, 0x34, 0x4C, 0x6A, 0x8B,
- 0x09, 0xB2, 0x37, 0x5B, 0x09, 0xAB, 0xE2, 0x25, 0xD0, 0xAE,
- 0x67, 0x05, 0x37, 0xA1, 0x1C, 0x5E, 0x99, 0xAA, 0xD9, 0xE2,
- 0x45, 0x53, 0x3E, 0x97, 0xBB, 0x27, 0x3C, 0x6B, 0x00, 0x1F,
- 0x4D, 0xCE, 0x8C, 0x8B, 0xF1, 0xF3, 0x05, 0x57, 0xC0, 0x63,
- 0x41, 0xC5, 0xFA, 0x14, 0x9D, 0xB8, 0xA0, 0x75, 0x96, 0xB3,
- 0x72, 0xCF, 0x56, 0x28, 0x29, 0x05, 0xB0, 0x4C, 0xB6, 0x78,
- 0xEA, 0x36, 0x6A, 0x12, 0x5B, 0xFF, 0x59, 0x2E, 0xBD, 0xDF,
- 0xDA, 0x41, 0x75, 0xC5, 0xFA, 0x87, 0x3F, 0x2F, 0x96, 0x0C,
- 0x18, 0xCC, 0x8B, 0x72, 0xE7, 0x29, 0xF5, 0xB8, 0x56, 0xE8,
- 0x92, 0x10, 0xB0, 0xCE, 0x3D, 0x40, 0x10, 0x40, 0x13, 0x9B,
- 0xAC, 0x63, 0xD9, 0x31, 0xB1, 0xF1, 0x4C, 0xFA, 0x51, 0x19,
- 0x62, 0xE5, 0x2E, 0x7A, 0x3F, 0x9A, 0xF0, 0x85, 0x83, 0x04,
- 0xC0, 0x07, 0xB8, 0x04, 0x1A, 0xAD, 0x53, 0x2A, 0xB7, 0xDD,
- 0xD8, 0x86, 0x0D, 0x1F, 0x24, 0x8A, 0xE9, 0xDC, 0x1F, 0x46,
- 0xDE, 0x1E, 0xDD, 0x4E, 0xD3, 0xF3, 0x92, 0x43, 0xBF, 0x98,
- 0xC8, 0x57, 0xC0, 0xB7, 0xC4, 0xD7, 0xE7, 0xA8, 0x78, 0x53,
- 0x93, 0x42, 0x4C, 0x9A, 0x71, 0x82, 0x20, 0x3C, 0x32, 0xB5,
- 0x30, 0x51, 0x54, 0x5D, 0x45, 0x81, 0x1B, 0x61, 0x6E, 0x7B,
- 0xCC, 0x2C, 0x44, 0x87, 0x6F, 0x2E, 0xFC, 0x9D, 0x79, 0x63,
- 0x20, 0xCA, 0x0E, 0xB3, 0x36, 0x9E, 0xDB, 0x31, 0xA3, 0xD0,
- 0xD9, 0x01, 0x56, 0xEC, 0xCF, 0x09, 0xBC, 0xAE, 0x4B, 0x2C,
- 0xE6, 0x61, 0xFA, 0x9F, 0xDD, 0x39, 0x4A, 0x01, 0xFF, 0xBA,
- 0x60, 0x2B, 0x07, 0x38, 0x64, 0x36, 0x33, 0xDB, 0xEA, 0x3E,
- 0xC3, 0xC0, 0x93, 0xBD, 0x63, 0xC8, 0xC9, 0x47, 0x33, 0xB6,
- 0x21, 0x10, 0x21, 0x4E, 0xD6, 0xCB, 0xEA, 0x23, 0x48, 0x14,
- 0x30, 0x21, 0x0E, 0x7D, 0xDD, 0x63, 0xD7, 0xAA, 0xAB, 0xDE,
- 0x8B, 0x6E, 0x7A, 0x25, 0x19, 0x89, 0x2A, 0xF4, 0x65, 0x52,
- 0x42, 0xBD, 0xB4, 0xBB, 0x00, 0x4C, 0x48, 0x1B, 0x3F, 0xC5,
- 0x58, 0xEE, 0xE8, 0xEB, 0x49, 0x74, 0x0A, 0xD8, 0x34, 0x5F,
- 0xFF, 0xF7, 0x66, 0x9C, 0xF6, 0x9D, 0xA2, 0x56, 0x68, 0x73,
- 0x14, 0x6B, 0x58, 0xE9, 0x5E, 0xC7, 0x75, 0x2D, 0xB3, 0x01,
- 0x19, 0xAA, 0xCF, 0x4A, 0xE9, 0xB1, 0x5E, 0x33, 0xC4, 0x68,
- 0xE2, 0xA3, 0xF5, 0x14, 0x7F, 0xBB, 0xC5, 0x82, 0x1D, 0xA6,
- 0x7D, 0x94, 0x9E, 0x0B, 0x1E, 0xDE, 0xAE, 0x3A, 0x5F, 0x52,
- 0xF9, 0x39, 0xFD, 0x70, 0x98, 0x35, 0x7B, 0x80, 0x4E, 0xA9,
- 0xCA, 0xDF, 0xB1, 0xF3, 0x41, 0xE6, 0x88, 0x9A, 0x25, 0x59,
- 0xF2, 0x1B, 0xE8, 0x57, 0x90, 0xBC, 0x63, 0x0F, 0xD4, 0xC2,
- 0x6D, 0x49, 0x01, 0xCD, 0x1F, 0x92, 0xEC, 0xEE, 0xDB, 0x3B,
- 0x19, 0x0C, 0xFA, 0x4D, 0x6C, 0x57, 0x16, 0xE0, 0x6E, 0x48,
- 0xB5, 0x5D, 0xB3, 0xE5, 0xEA, 0xE6, 0xCC, 0x48, 0xD2, 0xF0,
- 0x3A, 0x83, 0x63, 0x75, 0x01, 0x15, 0x9D, 0x41, 0xD5, 0x0B,
- 0x99, 0x17, 0x9A, 0x0B, 0xEF, 0xBC, 0xE8, 0x6C, 0x29, 0xEF,
- 0xE9, 0x2E, 0x97, 0x67, 0xA3, 0x8F, 0xEB, 0xD6, 0x57, 0xBF,
- 0x8B, 0xB5, 0x2E, 0x4A, 0xAE, 0x23, 0x43, 0x1A, 0x46, 0x3C,
- 0x9A, 0x48, 0x9C, 0x70, 0x89, 0x84, 0x4A, 0x42, 0x61, 0xAE,
- 0x96, 0x1F, 0x7F, 0x00, 0xBF, 0x6C, 0x85, 0x3C, 0x41, 0x40,
- 0xB3, 0x15, 0xE8, 0xC2, 0x05, 0x3E, 0x58, 0x0B, 0x1B, 0xEC,
- 0x9F, 0x4F, 0x1E, 0x73, 0xD0, 0x8B, 0x9E, 0x45, 0x8A, 0x27,
- 0xA2, 0x41, 0xF0, 0x18, 0xA5, 0x7A, 0x24, 0x64, 0x07, 0xA9,
- 0xC0, 0x79, 0x2B, 0x02, 0x2D, 0xF0, 0xEC, 0x1E, 0xBD, 0xB0,
- 0x1B, 0x16, 0x9C, 0x12, 0xBE, 0x7D, 0x58, 0xB2, 0x43, 0x1D,
- 0xE6, 0x57, 0xBC, 0x8D, 0xC3, 0xD6, 0x78, 0xDC, 0xBB, 0xFD,
- 0xE8, 0x4B, 0xC3, 0x05, 0x57, 0xA9, 0xC1, 0xEB, 0x2A, 0x6A,
- 0xD3, 0xBC, 0x73, 0xFB, 0x1C, 0xE9, 0xE1, 0xC5, 0xBB, 0x89,
- 0x15, 0xF0, 0xE1, 0x22, 0x11, 0x67, 0xC4, 0xF7, 0xD8, 0xD2,
- 0x8A, 0xFB, 0x52, 0x25, 0xD2, 0x7B, 0x7C, 0x53, 0x29, 0x74,
- 0xF4, 0x41, 0xB1, 0x50, 0x3B, 0x0F, 0x64, 0xFC, 0x1A, 0xEC,
- 0x80, 0xCA, 0x2C, 0xF0, 0xE0, 0x37, 0x10, 0xA2, 0x83, 0x7E,
- 0xE3, 0x46, 0x17, 0xB3, 0x56, 0x1C, 0x0A, 0x97, 0x65, 0xAC,
- 0x23, 0x8D, 0xD8, 0x53, 0x3D, 0x0E, 0xA9, 0x7C, 0xC9, 0x04,
- 0x7A, 0xE3, 0x1A, 0x3F, 0x73, 0x0D, 0x44, 0x4A, 0xA3, 0x65,
- 0xC4, 0xF4, 0x6A, 0x78, 0x29, 0x3C, 0x7F, 0x4B, 0x05, 0xFF,
- 0x29, 0x5B, 0x99, 0x89, 0x4F, 0xD5, 0x9A, 0x50, 0x1F, 0x52,
- 0xB4, 0xB5, 0x2A, 0x1E, 0x6C, 0x7E, 0xEC, 0x5D, 0xDF, 0x15,
- 0xDD, 0x96, 0x90, 0xF0, 0xD2, 0x5A, 0xA0, 0xB2, 0x0B, 0x05,
- 0x50, 0x64, 0x41, 0xBB, 0x4B, 0xC9, 0x19, 0xD9, 0x10, 0xB7,
- 0x18, 0x42, 0x57, 0x5B, 0x98, 0x87, 0x0E, 0x9B, 0x48, 0x33,
- 0xD9, 0x5B, 0xEA, 0xA6, 0x77, 0x72, 0xEA, 0x1A, 0x9E, 0x54,
- 0xBC, 0xF4, 0xED, 0x67, 0xAF, 0x58, 0x59, 0x97, 0xCD, 0x28,
- 0xA3, 0xD3, 0x83, 0x8C, 0x0B, 0xFE, 0x76, 0x5B, 0xC6, 0x41,
- 0xB3, 0x4B, 0x02, 0xB8, 0x89, 0x2E, 0x48, 0x2C, 0x6D, 0x4D,
- 0x68, 0xA0, 0x50, 0x1A, 0x7D, 0x8A, 0x5D, 0x60, 0x24, 0xAC,
- 0x69, 0x74, 0x3F, 0x76, 0x1B, 0xDA, 0x78, 0xE1, 0xEC, 0x1F,
- 0x70, 0xAF, 0x6C, 0xFA, 0x9E, 0xF0, 0x4E, 0x32, 0x14, 0xBA,
- 0x10, 0x38, 0xB5, 0xB8, 0xDA, 0x92, 0x03, 0xE6, 0xF6, 0x81,
- 0x16, 0x78, 0x39, 0x5E, 0x2F, 0x79, 0x15, 0xAE, 0xE1, 0xA4,
- 0x13, 0x02, 0x5E, 0x1D, 0x2D, 0x19, 0xE6, 0x07, 0x80, 0x80,
- 0xAA, 0xB7, 0x1A, 0x7A, 0xF4, 0x2A, 0xDF, 0x9E, 0x7E, 0xAF,
- 0x13, 0x07, 0xCC, 0x32, 0xA4, 0x0F, 0x77, 0xDF, 0x5D, 0xF1,
- 0xD5, 0x3A, 0x6C, 0x06, 0xEE, 0x18, 0x84, 0x3E, 0xB1, 0x97,
- 0x1F, 0x93, 0x1B, 0xF3, 0x8E, 0xC9, 0x01, 0x74, 0xC0, 0x97,
- 0xE6, 0xFE, 0xFB, 0xF2, 0x90, 0xA1, 0x93, 0xA0, 0x06, 0xFE,
- 0x1D, 0x40, 0x15, 0xFB, 0xE2, 0x68, 0xA0, 0xE2, 0xF9, 0x99,
- 0xC3, 0xA9, 0xD7, 0xD9, 0x81, 0x98, 0x91, 0xE2, 0x6A, 0x13,
- 0x81, 0xED, 0x1F, 0xFF, 0x63, 0x9B, 0x61, 0x9F, 0x44, 0xEC,
- 0x66, 0x32, 0x1B, 0xCD, 0xE4, 0xD6, 0xD7, 0x2C, 0x28, 0xC1,
- 0x2B, 0x16, 0xDD, 0x7D, 0x90, 0xFD, 0x8B, 0x7A, 0x1E, 0x06,
- 0xD7, 0xEC, 0xBF, 0x4A, 0x24, 0x76, 0xD2, 0x46, 0xE0, 0x35,
- 0x50, 0xCB, 0xD1, 0x2B, 0xA4, 0xC6, 0xFE, 0x72, 0xEC, 0x74,
- 0xA3, 0x6D, 0x95, 0xA5, 0x3E, 0x38, 0x28, 0xD3, 0x6B, 0xCF,
- 0x02, 0xF7, 0xF4, 0x8C, 0xBB, 0x8B, 0xB4, 0x19, 0x1E, 0x84,
- 0xDC, 0xDD, 0x19, 0x31, 0x43, 0x07, 0x7F, 0xDE, 0x15, 0xE2,
- 0xE9, 0x94, 0x27, 0x4F, 0x70, 0x81, 0x0D, 0x15, 0xAE, 0x24,
- 0x02, 0x55, 0x25, 0xBE, 0x30, 0xEA, 0x69, 0xFA, 0x10, 0x05,
- 0x54, 0xD0, 0x2F, 0x2C, 0xAF, 0x98, 0x56, 0x3B, 0x0F, 0xCB,
- 0x4C, 0xED, 0xCE, 0x4E, 0x90, 0xA1, 0x18, 0xE0, 0x08, 0x71,
- 0xA0, 0xF5, 0x5C, 0x87, 0xE6, 0x3F, 0x0A, 0x66, 0xC5, 0xB7,
- 0x48, 0x58, 0x11, 0xF7, 0x2C, 0xF1, 0x78, 0xCC, 0x93, 0x92,
- 0x6C, 0x39, 0x11, 0xFB, 0x68, 0xF9, 0x3C, 0x94, 0x43, 0x62,
- 0xE4, 0x28, 0xD7, 0x4C, 0x73, 0x69, 0x78, 0x8F, 0x56, 0xEE,
- 0x57, 0xD7, 0xDE, 0x00, 0x56, 0xB1, 0x1C, 0x50, 0x9C, 0x6C,
- 0x10, 0xE8, 0x56, 0x2D, 0xD4, 0x64, 0x75, 0x29, 0xDF, 0xDB,
- 0xC9, 0x50, 0x17, 0xC7, 0x2A, 0xA8, 0x3C, 0x79, 0x43, 0x73,
- 0xE6, 0x23, 0x82, 0xEC, 0x56, 0x80, 0xA0, 0x9C, 0x25, 0x1F,
- 0x3F, 0x2A, 0x67, 0x44, 0xC8, 0x93, 0x7F, 0x13, 0x62, 0x0C,
- 0x2A, 0x6D, 0x4F, 0x8F, 0x02, 0x05, 0x7D, 0x0D, 0x0E, 0x71,
- 0xC6, 0xF5, 0xB9, 0xB3, 0x92, 0x4C, 0xFC, 0x04, 0xE7, 0xB9,
- 0xD6, 0x76, 0x88, 0xAB, 0xA3, 0x2F, 0xD1, 0x04, 0x96, 0x04,
- 0xC1, 0xDB, 0x16, 0x04, 0x50, 0x4D, 0x65, 0x9D, 0x87, 0x0E,
- 0x68, 0x3B, 0x28, 0x74, 0xDD, 0x88, 0x58, 0xBF, 0x22, 0xD3,
- 0xD5, 0xD2, 0xEB, 0x2E, 0x78, 0xEC, 0xB3, 0xB6, 0x37, 0x53,
- 0xC0, 0x29, 0x32, 0xE8, 0x7F, 0x0C, 0x56, 0x56, 0x12, 0x18,
- 0x1E, 0x04, 0x90, 0x56, 0xAA, 0x32, 0x7B, 0xA2, 0xE0, 0x7D,
- 0x20, 0x6E, 0x4D, 0x22, 0x66, 0x0F, 0xEE, 0xC3, 0x05, 0xD0,
- 0x64, 0x25, 0xAE, 0x4D, 0x86, 0x3E, 0xC0, 0xC0, 0xC1, 0x35,
- 0x5D, 0xD1, 0x5D, 0xD3, 0x9A, 0xC2, 0x83, 0x56, 0x35, 0x18,
- 0x25, 0xE5, 0xCD, 0x39, 0x07, 0xA2, 0x11, 0x84, 0x51, 0xC5,
- 0xF9, 0xB1, 0x12, 0xEC, 0x65, 0x0B, 0x1D, 0xBE, 0x76, 0x26,
- 0x19, 0xA1, 0xA0, 0xF9, 0x7A, 0x82, 0x4E, 0xE6, 0x71, 0x43,
- 0x60, 0x04, 0x10, 0xB5, 0x42, 0x75, 0xE1, 0x79, 0xF8, 0xD8,
- 0x96, 0x0D, 0x91, 0xD8, 0x9C, 0x9E, 0x6B, 0xE6, 0xBA, 0x9C,
- 0x3D, 0xE7, 0x51, 0xAC, 0xFB, 0xC4, 0x28, 0x80, 0x23, 0xCC,
- 0xA4, 0xBE, 0x49, 0x33, 0xE5, 0x40, 0xDE, 0x72, 0xC0, 0x6B,
- 0x32, 0xDE, 0x64, 0x99, 0x10, 0xB0, 0x39, 0x6F, 0x37, 0x5A,
- 0xEB, 0xE8, 0xB6, 0x12, 0xEE, 0x03, 0xEF, 0x96, 0xE0, 0x4E,
- 0x09, 0x83, 0xAF, 0xFA, 0x18, 0x94, 0x6E, 0x3C, 0x41, 0xDF,
- 0x64, 0xF6, 0x92, 0xF8, 0x36, 0x2B, 0x77, 0xC7, 0x3E, 0x31,
- 0x8A, 0x3B, 0x63, 0xE3, 0xBC, 0x4F, 0x3B, 0xBF, 0x7E, 0x35,
- 0xFD, 0x87, 0x78, 0x55, 0xA8, 0x12, 0xC1, 0xAA, 0x79, 0x69,
- 0xEC, 0xEC, 0x59, 0x41, 0x43, 0xA5, 0x2F, 0x88, 0x33, 0x83,
- 0xF2, 0x11, 0x68, 0x6C, 0x96, 0xD3, 0x39, 0x20, 0x92, 0x3E,
- 0xFF, 0x8F, 0xD6, 0xC1, 0x70, 0xA1, 0x78, 0x02, 0xCA, 0x7E,
- 0xC3, 0x34, 0xB6, 0x04, 0x12, 0x8A, 0xB7, 0x53, 0x11, 0xB3,
- 0x12, 0xAD, 0xA2, 0xBE, 0xDE, 0xE8, 0x3A, 0xED, 0xB1, 0x37,
- 0xDB, 0x50, 0xE8, 0xCD, 0xCE, 0x9E, 0x6F, 0x2E, 0x05, 0xC6,
- 0xFC, 0x98, 0xAE, 0xD7, 0xCF, 0x67, 0xF6, 0x4B, 0x74, 0x92,
- 0xC2, 0xEF, 0x47, 0x09, 0xD1, 0x0C, 0xBC, 0x3C, 0x9D, 0xAC,
- 0x19, 0xC1, 0x31, 0x48, 0x08, 0xFA, 0x34, 0xD5, 0x17, 0xDB,
- 0xF2, 0x52, 0xF3, 0x65, 0x6A, 0xA3, 0xE8, 0x1F, 0xDD, 0x1F,
- 0x9B, 0x7A, 0x9A, 0xC6, 0x4C, 0x48, 0x43, 0x2D, 0xC5, 0x91,
- 0x89, 0xFF, 0x15, 0xB3, 0xD8, 0x65, 0xDA, 0xB1, 0xFE, 0xB5,
- 0x65, 0xC9, 0xDD, 0xCA, 0xD3, 0x5B, 0x5C, 0xEC, 0xDA, 0x68,
- 0x6B, 0xBB, 0xAF, 0x10, 0x8A, 0x9D, 0xF6, 0x0A, 0xDC, 0xCA,
- 0xC8, 0xD4, 0xF0, 0xB9, 0x60, 0xBA, 0x58, 0x4C, 0x2A, 0x0B,
- 0xD0, 0xC9, 0xDC, 0x58, 0x12, 0xD2, 0x8C, 0xC4, 0x7C, 0x05,
- 0xC0, 0xFE, 0x59, 0x77, 0x64, 0x67, 0x62, 0x83, 0x4E, 0x72,
- 0x04, 0x44, 0x76, 0x46, 0x0D, 0x3D, 0x56, 0xFB, 0xE3, 0x25,
- 0xB8, 0x20, 0x14, 0x96, 0xD5, 0xF1, 0x36, 0x76, 0x5D, 0x8D,
- 0xE6, 0xF7, 0xE7, 0x36, 0x32, 0x30, 0x30, 0x63, 0x84, 0x3A,
- 0x7D, 0x00, 0x3A, 0x65, 0x1E, 0xB3, 0xD5, 0x50, 0xF1, 0x5D,
- 0x2B, 0xC9, 0x48, 0x82, 0x9D, 0x0E, 0xC7, 0x53, 0xB1, 0xDD,
- 0x51, 0xF3, 0x56, 0x29, 0x72, 0xE0, 0xFD, 0xA0, 0xAF, 0xB1,
- 0x62, 0xF6, 0xA1, 0x24, 0x22, 0x99, 0x18, 0x64, 0xEF, 0x34,
- 0x41, 0x2A, 0xFA, 0xC7, 0x6C, 0xF6, 0x5D, 0x72, 0x06, 0x12,
- 0x83, 0xB2, 0x14, 0xEF, 0x5D, 0x25, 0x11, 0x48, 0xE1, 0xD5,
- 0x01, 0xE8, 0xA5, 0x99, 0x62, 0x2C, 0xF4, 0xDD, 0x78, 0x9D,
- 0x64, 0xF2, 0x3F, 0x41, 0x1C, 0xB0, 0x87, 0x0C, 0x19, 0x04,
- 0x6D, 0x16, 0x72, 0x2F, 0x7B, 0x6D, 0xFE, 0xF3, 0x0C, 0x77,
- 0x04, 0xCD, 0xEB, 0xE4, 0xC8, 0x0A, 0xC1, 0x9E, 0x41, 0x1E,
- 0xAC, 0xF2, 0x5B, 0xED, 0xD1, 0xE5, 0x72, 0x8F, 0x0E, 0xBF,
- 0x59, 0xA8, 0x1D, 0x1C, 0x1E, 0xED, 0xB7, 0xD2, 0xA6, 0x8B,
- 0x23, 0x7F, 0x40, 0x39, 0xD6, 0xD8, 0xEE, 0x50, 0x0F, 0xC3,
- 0x1B, 0x03, 0xAA, 0x0A, 0xA4, 0xFF, 0xB6, 0xC5, 0xB3, 0x97,
- 0x4C, 0xB6, 0xA8, 0x01, 0x0D, 0xDC, 0x2B, 0xEE, 0x6C, 0x29,
- 0xF9, 0x59, 0x06, 0x5F, 0xCC, 0xE3, 0x28, 0xED, 0xEB, 0xB2,
- 0x9F, 0x7F, 0x43, 0xBB, 0x02, 0x5F, 0xC4, 0xC8, 0x48, 0xC8,
- 0xF8, 0x2B, 0xB7, 0xCD, 0xC4, 0x64, 0x4B, 0xEF, 0xC9, 0x9C,
- 0xEB, 0xC5, 0x41, 0xDF, 0xB4, 0xC3, 0x5D, 0x95, 0xCE, 0x1E,
- 0xC7, 0x5C, 0xB2, 0x4D, 0x81, 0x25, 0xDD, 0x19, 0xF3, 0x39,
- 0xE8, 0x1B, 0x0E, 0x4F, 0x71, 0xF5, 0xE5, 0x99, 0x90, 0x32,
- 0x77, 0xA9, 0x73, 0x3E, 0x58, 0x9B, 0x41, 0x1B, 0x77, 0x06,
- 0x92, 0xDF, 0x1A, 0x96, 0x93, 0x02, 0xFF, 0xE7, 0xDF, 0xD3,
- 0x09, 0x9A, 0xB7, 0x12, 0xB7, 0xE0, 0xF1, 0x73, 0x47, 0x6A,
- 0x48, 0x06, 0x42, 0x41, 0x93, 0x4C, 0x57, 0x61, 0xFF, 0x90,
- 0xA3, 0x18, 0xCE, 0xBE, 0x35, 0x6B, 0x78, 0x05, 0x01, 0x5F,
- 0x2F, 0x0F, 0xA8, 0x05, 0xB1, 0x6B, 0x22, 0x7E, 0xC9, 0x5E,
- 0x4F, 0xB6, 0xEE, 0x4E, 0xEC, 0xF6, 0xF0, 0x9F, 0x74, 0x8B,
- 0xE4, 0xFF, 0x5C, 0x69, 0xCB, 0xD2, 0x8F, 0x2D, 0x4B, 0x06,
- 0x6C, 0x64, 0x76, 0xAE, 0x03, 0x12, 0xCB, 0x98, 0xD2, 0xBF,
- 0x1E, 0xAB, 0x76, 0x24, 0x95, 0xD7, 0xB1, 0x62, 0x63, 0xBC,
- 0x21, 0xC6, 0x16, 0xEA, 0x81, 0x2A, 0x01, 0xFC, 0x2E, 0x43,
- 0x18, 0x62, 0xFD, 0xFB, 0x06, 0xF2, 0x17, 0xF1, 0xD5, 0x91,
- 0x9A, 0x0E, 0x75, 0xFF, 0x53, 0x61, 0xE9, 0x8C, 0x51, 0x99,
- 0x9B, 0x32, 0x5B, 0x2A, 0x56, 0x3E, 0xB1, 0x7D, 0x26, 0x1D,
- 0x47, 0xFC, 0x05, 0x5A, 0x79, 0xC6, 0xEF, 0x62, 0x58, 0xA4,
- 0xEF, 0xBB, 0xB8, 0xF7, 0x84, 0xEE, 0xA3, 0x12, 0x83, 0x28,
- 0xA0, 0xD1, 0x9D, 0x1A, 0x8B, 0xD1, 0x56, 0x2A, 0xAA, 0x41,
- 0xFD, 0xF2, 0x4F, 0xD9, 0x68, 0xF1, 0xB9, 0xEB, 0xB0, 0xEC,
- 0xAF, 0x99, 0xDE, 0xE4, 0xDD, 0x26, 0xD2, 0xBA, 0x54, 0x29,
- 0x6E, 0x31, 0xE4, 0x91, 0x40, 0x8B, 0x39, 0xC8, 0xDF, 0x8C,
- 0x6F, 0xDF, 0xA6, 0x2D, 0xAE, 0x13, 0x5E, 0xF3, 0xD7, 0x62,
- 0xC9, 0xE7, 0xC6, 0x51, 0xCA, 0x8E, 0xB2, 0xB3, 0x0B, 0x0C,
- 0xA8, 0xC5, 0x95, 0x95, 0xFF, 0x72, 0x3C, 0xC7, 0x6E, 0xAA,
- 0x44, 0x41, 0x82, 0xB6, 0x84, 0x78, 0xC7, 0x47, 0xC6, 0x18,
- 0x31, 0x95, 0x08, 0x4D, 0xCE, 0x83, 0x80, 0x5B, 0x12, 0xF5,
- 0xCB, 0x83, 0xD7, 0x60, 0x02, 0xFF, 0x22, 0xCD, 0x59, 0xB0,
- 0xA8, 0x61, 0xDE, 0x50, 0x53, 0x9C, 0xF8, 0xF4, 0x12, 0xEB,
- 0x33, 0x98, 0xCA, 0xC1, 0x63, 0x1D, 0x39, 0xA5, 0xC8, 0x89,
- 0x39, 0x0A, 0x43, 0xFE, 0x67, 0x71, 0xC7, 0x91, 0x5B, 0xFA,
- 0xA4, 0x76, 0x6C, 0x02, 0xF0, 0x23, 0xEB, 0x01, 0x43, 0xF5,
- 0xDC, 0xD7, 0x3A, 0x2E, 0x54, 0xB4, 0xF6, 0xF3, 0x03, 0xE4,
- 0x60, 0x62, 0x2B, 0xE4, 0x53, 0x5C, 0x6E, 0x17, 0x07, 0x0D,
- 0x67, 0x18, 0x6B, 0xCD, 0x7D, 0xF9, 0x98, 0x0F, 0xAC, 0x17,
- 0x9E, 0xD2, 0xB7, 0xE6, 0xE5, 0x89, 0xBD, 0xFF, 0x74, 0x06,
- 0x0E, 0xE7, 0x52, 0x7F, 0x1C, 0xBA, 0x21, 0x14, 0xFB, 0xE7,
- 0x86, 0x11, 0x53, 0x80, 0xC0, 0xCF, 0xD8, 0x4B, 0x13, 0x0F,
- 0xF8, 0xC7, 0x12, 0xC2, 0x9D, 0x85, 0x2E, 0x58, 0xF1, 0x81,
- 0xD6, 0x61, 0x64, 0x40, 0x20, 0xA2, 0x0A, 0xC4, 0x49, 0x6A,
- 0x60, 0xE0, 0x47, 0x75, 0x02, 0x71, 0xEC, 0x54, 0x5E, 0x26,
- 0x3E, 0x5A, 0xEA, 0x09, 0x25, 0x03, 0xDC, 0xBF, 0x9C, 0xFE,
- 0xFA, 0x19, 0xFB, 0x90, 0x91, 0x93, 0x21, 0x13, 0x96, 0x4C,
- 0x80, 0xAF, 0x48, 0x5B, 0xDD, 0x0D, 0xC5, 0x02, 0x1F, 0x77,
- 0x3D, 0x49, 0xBF, 0xAD, 0xFE, 0x90, 0x59, 0x93, 0xEB, 0x17,
- 0xDA, 0x42, 0x18, 0x65, 0xFE, 0x9D, 0x7E, 0x11, 0xFF, 0x5A,
- 0x2C, 0xCA, 0x48, 0x32, 0x50, 0xFA, 0xC4, 0xFF, 0x43, 0xC5,
- 0xE3, 0x66, 0x97, 0x88, 0x8A, 0x2A, 0x7F, 0x90, 0x4C, 0xDA,
- 0x61, 0x79, 0xBF, 0xB1, 0xF5, 0x94, 0xF0, 0x46, 0x70, 0xB6,
- 0x62, 0x4C, 0xC1, 0x1B, 0x32, 0x6E, 0x76, 0x63, 0xB2, 0x22,
- 0x5C, 0x22, 0xC1, 0x20, 0x6C, 0xD4, 0xF0, 0x22, 0x02, 0xA0,
- 0xCF, 0xE4, 0x17, 0x42, 0xCD, 0x2E, 0xF2, 0x38, 0xF9, 0xB4,
- 0x6B, 0x50, 0xE9, 0x38, 0x20, 0x59, 0x8F, 0x67, 0xE5, 0x4F,
- 0x03, 0xDC, 0xE3, 0x9F, 0x24, 0xA8, 0xAD, 0x5B, 0xF4, 0xC4,
- 0x07, 0x5D, 0x0D, 0x65, 0x6A, 0xA5, 0xA8, 0x05, 0xB5, 0xAE,
- 0xCB, 0xF4, 0xCB, 0xDF, 0xC9, 0x76, 0x54, 0xAC, 0x07, 0x23,
- 0x28, 0x5C, 0x60, 0x58, 0x60, 0xB5, 0xBE, 0xBD, 0xAC, 0xEA,
- 0x65, 0x69, 0x4F, 0x9B, 0x61, 0x9A, 0xDF, 0x25, 0x89, 0x16,
- 0x4A, 0x25, 0x6E, 0xA6, 0xA5, 0x00, 0x0F, 0xAD, 0xA7, 0x73,
- 0xD4, 0x02, 0x2D, 0x1D, 0x6C, 0x03, 0x8E, 0x5F, 0x09, 0x62,
- 0xA8, 0x35, 0xA4, 0x4B, 0xB7, 0xDB, 0xC7, 0x31, 0x7C, 0xD9,
- 0x1F, 0xBD, 0xE8, 0x9D, 0x05, 0x7D, 0xEC, 0xBD, 0x0A, 0x90,
- 0x87, 0x99, 0xB0, 0x61, 0x04, 0x5D, 0xA3, 0x33, 0xF8, 0xFA,
- 0x55, 0xBD, 0x5B, 0x90, 0xFE, 0x89, 0x83, 0x47, 0x96, 0xCF,
- 0xCC, 0x0D, 0x80, 0x49, 0x1E, 0x9B, 0xF9, 0xEA, 0x13, 0x2C,
- 0x13, 0xEA, 0xF0, 0xA5, 0x31, 0x0F, 0xE8, 0xB0, 0xF6, 0xA1,
- 0x83, 0xC5, 0x1A, 0x02, 0x7A, 0x8B, 0x7A, 0x8C, 0x3A, 0x45,
- 0x12, 0x30, 0x07, 0x71, 0x67, 0x47, 0xA7, 0x10, 0x6E, 0x18,
- 0xE8, 0x8B, 0x7D, 0x86, 0xFF, 0x11, 0x6A, 0x3D, 0xAF, 0x9E,
- 0x78, 0xC0, 0x71, 0x85, 0x22, 0x89, 0x73, 0x73, 0x5E, 0x8C,
- 0x75, 0x29, 0xEE, 0x1F, 0x83, 0x1F, 0xF3, 0x7F, 0x90, 0xEC,
- 0x0B, 0x12, 0x7D, 0x38, 0x86, 0xA7, 0x8D, 0xEA, 0xA3, 0xD8,
- 0xFD, 0xD9, 0xED, 0x83, 0x92, 0xE6, 0xBE, 0x31, 0x40, 0xDC,
- 0xEF, 0x9A, 0x06, 0x29, 0xF5, 0xA0, 0xF2, 0x14, 0x9F, 0x90,
- 0xB5, 0x8F, 0x48, 0x4A, 0x25, 0x19, 0xB8, 0xA6, 0x17, 0xEF,
- 0xC9, 0xDE, 0x48, 0x49, 0xD8, 0xEA, 0x15, 0xEE, 0x6C, 0xAB,
- 0x10, 0xCE, 0x7F, 0xFC, 0x00, 0x54, 0x89, 0x1F, 0x8F, 0x1E,
- 0x73, 0x14, 0x86, 0x10, 0x16, 0xB6, 0x38, 0xAC, 0x4B, 0x36,
- 0x83, 0xCE, 0x65, 0xE2, 0xC3, 0x99, 0xEF, 0x26, 0x2B, 0xC0,
- 0x09, 0x35, 0xF3, 0xCA, 0x99, 0x3B, 0x4D, 0x9D, 0xC4, 0x08,
- 0x7A, 0x7B, 0x0D, 0xDD, 0x05, 0x1B, 0x42, 0x8B, 0x41, 0x0E,
- 0x9B, 0x51, 0x08, 0x04, 0x1E, 0x1C, 0x76, 0x32, 0x6C, 0xA0,
- 0x29, 0x52, 0xFB, 0x73, 0xB0, 0x6E, 0xE8, 0x0E, 0x40, 0x1E,
- 0xCE, 0x0A, 0x8E, 0xF9, 0xE0, 0xC9, 0x18, 0xDC, 0x28, 0xCF,
- 0xC5, 0x71, 0x9B, 0xCE, 0x3B, 0xA0, 0x22, 0x59, 0xBB, 0x3F,
- 0x68, 0x97, 0xAA, 0x89, 0xD1, 0x8F, 0xC8, 0x8D, 0x63, 0xE3,
- 0x1F, 0x0F, 0xD7, 0xFB, 0x07, 0x82, 0x2D, 0x44, 0x79, 0x6A,
- 0x85, 0x15, 0xD9, 0xE1, 0x8E, 0xBB, 0x57, 0xF1, 0xFA, 0x80,
- 0x8D, 0xB8, 0x71, 0xA3, 0x74, 0x60, 0x03, 0xFB, 0x5F, 0x5E,
- 0x51, 0x88, 0x37, 0x41, 0x9A, 0x83, 0x6D, 0x84, 0xE5, 0x9A,
- 0x8B, 0x34, 0xCA, 0x65, 0x7D, 0x27, 0xAF, 0x32, 0x4D, 0x00,
- 0x3D, 0xC3, 0x40, 0x98, 0xCF, 0xB2, 0xDE, 0xE1, 0x71, 0x69,
- 0xB5, 0xAB, 0xE6, 0xC3, 0x8D, 0x6C, 0xDE, 0x95, 0x5E, 0x16,
- 0x12, 0x16, 0x19, 0xFA, 0x89, 0x6D, 0xD6, 0xAB, 0x90, 0xFC,
- 0x15, 0x9B, 0xD3, 0x8D, 0x78, 0x8D, 0xBD, 0x7A, 0x0C, 0xF2,
- 0xB9, 0xE7, 0x34, 0xDE, 0x63, 0x72, 0x0B, 0x33, 0xE1, 0xBC,
- 0xF7, 0x43, 0xB2, 0xDA, 0x74, 0x1E, 0x7A, 0x4D, 0xF4, 0xEE,
- 0xB4, 0xA1, 0x7E, 0x34, 0x12, 0xC7, 0xC7, 0x04, 0xA7, 0x60,
- 0x83, 0xD1, 0x0A, 0xC0, 0xB9, 0xCA, 0x53, 0xFE, 0x0F, 0xF0,
- 0xAF, 0xA3, 0x59, 0xED, 0x62, 0x21, 0x88, 0xCD, 0xD3, 0x3C,
- 0xA4, 0x11, 0xFF, 0x28, 0xAD, 0xDA, 0xB1, 0xEA, 0x58, 0xFF,
- 0xA9, 0x05, 0x88, 0xAA, 0x30, 0x77, 0xB5, 0x91, 0x9C, 0xD1,
- 0x80, 0xC1, 0x88, 0x0D, 0xAA, 0x1E, 0x7A, 0xA7, 0x06, 0xDA,
- 0xFB, 0xE2, 0x0A, 0x71, 0xE2, 0x24, 0xDF, 0xA9, 0xD7, 0x4F,
- 0xD8, 0x2D, 0xAE, 0x81, 0x74, 0xB1, 0xDA, 0x13, 0x74, 0xB4,
- 0x39, 0xCF, 0x16, 0xCE, 0x4C, 0xF5, 0xA4, 0x9C, 0x35, 0x32,
- 0x80, 0x69, 0x9B, 0x3A, 0xC9, 0x27, 0x54, 0xA1, 0x5F, 0x98,
- 0x79, 0xBE, 0x6A, 0x42, 0x8E, 0x04, 0xCE, 0x68, 0xDD, 0x05,
- 0x82, 0xA4, 0xE4, 0x19, 0xEA, 0x3F, 0x27, 0xD8, 0x01, 0x0F,
- 0x0B, 0x3D, 0x52, 0xFF, 0x7F, 0xC6, 0xD1, 0xED, 0x98, 0x38,
- 0xFF, 0xC5, 0xA8, 0xBE, 0x47, 0x79, 0x45, 0x4B, 0x5D, 0x4A,
- 0xA6, 0x7E, 0xCF, 0xA8, 0x7E, 0x24, 0xC9, 0x45, 0x6F, 0xAF,
- 0x75, 0xB2, 0x95, 0x7F, 0x36, 0xB9, 0xA5, 0xAA, 0x36, 0x71,
- 0x84, 0x01, 0xED, 0x65, 0x83, 0x8A, 0x70, 0x9F, 0xAB, 0xF7,
- 0xBF, 0x8B, 0x99, 0x6F, 0xCF, 0xC3, 0x8B, 0xC5, 0x54, 0x74,
- 0xE0, 0x01, 0x38, 0x0D, 0xF6, 0x1C, 0x54, 0x37, 0x3B, 0x1D,
- 0xDE, 0xCA, 0x5B, 0x0D, 0xF7, 0x8E, 0xA7, 0x9C, 0xB9, 0xF7,
- 0xD6, 0x91, 0x33, 0xB2, 0xCB, 0xB4, 0x0F, 0x71, 0xF8, 0x20,
- 0xFA, 0xCD, 0x57, 0x7A, 0xA4, 0xE0, 0x8A, 0xC2, 0x6C, 0x3F,
- 0xB9, 0xBF, 0x22, 0x77, 0xC3, 0x7B, 0xFB, 0x89, 0x17, 0x3F,
- 0x61, 0xBC, 0xBF, 0xA1, 0x4C, 0xFC, 0x05, 0x21, 0xC1, 0x72,
- 0x40, 0x1C, 0x88, 0xEC, 0xE9, 0x21, 0xA3, 0xCF, 0x4E, 0x17,
- 0xFB, 0x85, 0x57, 0xCE, 0x85, 0x46, 0x5F, 0xD3, 0xE4, 0x3D,
- 0x91, 0xC6, 0x86, 0x6B, 0x76, 0x44, 0xB4, 0xD2, 0x13, 0x6D,
- 0xAA, 0xC2, 0x42, 0xE5, 0xD6, 0xEA, 0xE3, 0xD6, 0x5B, 0xF9,
- 0x8F, 0xA6, 0x23, 0xA6, 0x82, 0xCC, 0x1D, 0xF6, 0xAF, 0x2F,
- 0x06, 0x75, 0x7D, 0x9A, 0x26, 0x0E, 0x80, 0x42, 0xC4, 0xAB,
- 0xF5, 0xFB, 0x46, 0x83, 0xBF, 0x35
-};
-static const int sizeof_bench_dilithium_aes_level5_key = sizeof(bench_dilithium_aes_level5_key);
-
#endif /* HAVE_PQC && HAVE_DILITHIUM */
#if defined(HAVE_PQC) && defined(HAVE_SPHINCS)
diff --git a/wolfssl/crl.h b/wolfssl/crl.h
index 4cb376bda6..e68aa79c0e 100644
--- a/wolfssl/crl.h
+++ b/wolfssl/crl.h
@@ -1,6 +1,6 @@
/* crl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/error-ssl.h b/wolfssl/error-ssl.h
index 94a5b97fa9..6eb3ede096 100644
--- a/wolfssl/error-ssl.h
+++ b/wolfssl/error-ssl.h
@@ -1,6 +1,6 @@
/* error-ssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/internal.h b/wolfssl/internal.h
index 0f3abf1b06..857cb79a3d 100644
--- a/wolfssl/internal.h
+++ b/wolfssl/internal.h
@@ -1,6 +1,6 @@
/* internal.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -1610,13 +1610,6 @@ enum Misc {
DILITHIUM_LEVEL5_SA_MAJOR = 0xFE,
DILITHIUM_LEVEL5_SA_MINOR = 0xA5,
- DILITHIUM_AES_LEVEL2_SA_MAJOR = 0xFE,
- DILITHIUM_AES_LEVEL2_SA_MINOR = 0xA7,
- DILITHIUM_AES_LEVEL3_SA_MAJOR = 0xFE,
- DILITHIUM_AES_LEVEL3_SA_MINOR = 0xAA,
- DILITHIUM_AES_LEVEL5_SA_MAJOR = 0xFE,
- DILITHIUM_AES_LEVEL5_SA_MINOR = 0xAC,
-
MIN_RSA_SHA512_PSS_BITS = 512 * 2 + 8 * 8, /* Min key size */
MIN_RSA_SHA384_PSS_BITS = 384 * 2 + 8 * 8, /* Min key size */
@@ -3568,9 +3561,6 @@ enum SignatureAlgorithm {
dilithium_level2_sa_algo = 14,
dilithium_level3_sa_algo = 15,
dilithium_level5_sa_algo = 16,
- dilithium_aes_level2_sa_algo = 17,
- dilithium_aes_level3_sa_algo = 18,
- dilithium_aes_level5_sa_algo = 19,
invalid_sa_algo = 255
};
@@ -3661,7 +3651,7 @@ typedef struct Ciphers {
#ifdef HAVE_CHACHA
ChaCha* chacha;
#endif
-#if defined(WOLFSSL_TLS13) && defined(HAVE_NULL_CIPHER)
+#if defined(WOLFSSL_TLS13) && defined(HAVE_NULL_CIPHER) && !defined(NO_HMAC)
Hmac* hmac;
#endif
#ifdef WOLFSSL_CIPHER_TEXT_CHECK
diff --git a/wolfssl/ocsp.h b/wolfssl/ocsp.h
index d9ffb67788..8afb196c2b 100644
--- a/wolfssl/ocsp.h
+++ b/wolfssl/ocsp.h
@@ -1,6 +1,6 @@
/* ocsp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/aes.h b/wolfssl/openssl/aes.h
index 3a3eee41ee..63bc287280 100644
--- a/wolfssl/openssl/aes.h
+++ b/wolfssl/openssl/aes.h
@@ -1,6 +1,6 @@
/* aes.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/asn1.h b/wolfssl/openssl/asn1.h
index 69a31154ee..64cfd44689 100644
--- a/wolfssl/openssl/asn1.h
+++ b/wolfssl/openssl/asn1.h
@@ -1,6 +1,6 @@
/* asn1.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/asn1t.h b/wolfssl/openssl/asn1t.h
index c327a5d968..e7d5affd9a 100644
--- a/wolfssl/openssl/asn1t.h
+++ b/wolfssl/openssl/asn1t.h
@@ -1,6 +1,6 @@
/* asn1t.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/bio.h b/wolfssl/openssl/bio.h
index 301198406b..5d6107b80d 100644
--- a/wolfssl/openssl/bio.h
+++ b/wolfssl/openssl/bio.h
@@ -1,6 +1,6 @@
/* bio.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/bn.h b/wolfssl/openssl/bn.h
index 636c46c6f6..5c94ac4818 100644
--- a/wolfssl/openssl/bn.h
+++ b/wolfssl/openssl/bn.h
@@ -1,6 +1,6 @@
/* bn.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/buffer.h b/wolfssl/openssl/buffer.h
index d5b7147d92..52a7813ed3 100644
--- a/wolfssl/openssl/buffer.h
+++ b/wolfssl/openssl/buffer.h
@@ -1,6 +1,6 @@
/* buffer.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/camellia.h b/wolfssl/openssl/camellia.h
index 6618cf24bd..aa830f5348 100644
--- a/wolfssl/openssl/camellia.h
+++ b/wolfssl/openssl/camellia.h
@@ -1,6 +1,6 @@
/* camellia.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/cmac.h b/wolfssl/openssl/cmac.h
index 777a7cb225..c3e1c984c9 100644
--- a/wolfssl/openssl/cmac.h
+++ b/wolfssl/openssl/cmac.h
@@ -1,6 +1,6 @@
/* cmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/cms.h b/wolfssl/openssl/cms.h
index f0f56ca3c9..5355c61587 100644
--- a/wolfssl/openssl/cms.h
+++ b/wolfssl/openssl/cms.h
@@ -1,6 +1,6 @@
/* cms.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/compat_types.h b/wolfssl/openssl/compat_types.h
index 714bd3cd1e..b1861b40f8 100644
--- a/wolfssl/openssl/compat_types.h
+++ b/wolfssl/openssl/compat_types.h
@@ -1,6 +1,6 @@
/* compat_types.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/conf.h b/wolfssl/openssl/conf.h
index 737e4744f5..7c3d721067 100644
--- a/wolfssl/openssl/conf.h
+++ b/wolfssl/openssl/conf.h
@@ -1,6 +1,6 @@
/* conf.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/crypto.h b/wolfssl/openssl/crypto.h
index a5d395aef0..e4fd419f67 100644
--- a/wolfssl/openssl/crypto.h
+++ b/wolfssl/openssl/crypto.h
@@ -1,6 +1,6 @@
/* crypto.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/des.h b/wolfssl/openssl/des.h
index 8802c98fbf..ca0be35908 100644
--- a/wolfssl/openssl/des.h
+++ b/wolfssl/openssl/des.h
@@ -1,6 +1,6 @@
/* des.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/dh.h b/wolfssl/openssl/dh.h
index 0a3b56f02f..eacd033c90 100644
--- a/wolfssl/openssl/dh.h
+++ b/wolfssl/openssl/dh.h
@@ -1,6 +1,6 @@
/* dh.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/dsa.h b/wolfssl/openssl/dsa.h
index 6510950c91..5a8c31c708 100644
--- a/wolfssl/openssl/dsa.h
+++ b/wolfssl/openssl/dsa.h
@@ -1,6 +1,6 @@
/* dsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ec.h b/wolfssl/openssl/ec.h
index 21afa8f076..de9c2fd7bf 100644
--- a/wolfssl/openssl/ec.h
+++ b/wolfssl/openssl/ec.h
@@ -1,6 +1,6 @@
/* ec.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ec25519.h b/wolfssl/openssl/ec25519.h
index 977b0386b1..c6fa5e8e30 100644
--- a/wolfssl/openssl/ec25519.h
+++ b/wolfssl/openssl/ec25519.h
@@ -1,6 +1,6 @@
/* ec25519.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ec448.h b/wolfssl/openssl/ec448.h
index 6d6fe66188..4fe1b4344b 100644
--- a/wolfssl/openssl/ec448.h
+++ b/wolfssl/openssl/ec448.h
@@ -1,6 +1,6 @@
/* ec448.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ecdh.h b/wolfssl/openssl/ecdh.h
index 9c0c17e363..9f816b25fe 100644
--- a/wolfssl/openssl/ecdh.h
+++ b/wolfssl/openssl/ecdh.h
@@ -1,6 +1,6 @@
/* ecdh.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ecdsa.h b/wolfssl/openssl/ecdsa.h
index e6aa370fb0..385e5c06b2 100644
--- a/wolfssl/openssl/ecdsa.h
+++ b/wolfssl/openssl/ecdsa.h
@@ -1,6 +1,6 @@
/* ecdsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ed25519.h b/wolfssl/openssl/ed25519.h
index d7fca0e8c8..2921b34503 100644
--- a/wolfssl/openssl/ed25519.h
+++ b/wolfssl/openssl/ed25519.h
@@ -1,6 +1,6 @@
/* ed25519.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ed448.h b/wolfssl/openssl/ed448.h
index 3d55f458d3..de3ecfdeac 100644
--- a/wolfssl/openssl/ed448.h
+++ b/wolfssl/openssl/ed448.h
@@ -1,6 +1,6 @@
/* ed448.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/err.h b/wolfssl/openssl/err.h
index 57f47c2622..178afa5f47 100644
--- a/wolfssl/openssl/err.h
+++ b/wolfssl/openssl/err.h
@@ -1,6 +1,6 @@
/* err.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/evp.h b/wolfssl/openssl/evp.h
index 96d7ac1ca4..b2f2a78e8b 100644
--- a/wolfssl/openssl/evp.h
+++ b/wolfssl/openssl/evp.h
@@ -1,6 +1,6 @@
/* evp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -733,12 +733,12 @@ WOLFSSL_API int wolfSSL_PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
int keylen, unsigned char *out);
#if defined(HAVE_SCRYPT) && defined(HAVE_PBKDF2) && !defined(NO_PWDBASED) && \
- !defined(NO_SHA)
+ !defined(NO_SHA256)
WOLFSSL_API int wolfSSL_EVP_PBE_scrypt(const char *pass, size_t passlen,
const unsigned char *salt, size_t saltlen,
word64 N, word64 r, word64 p,
word64 maxmem, unsigned char *key, size_t keylen);
-#endif /* HAVE_SCRYPT && HAVE_PBKDF2 && !NO_PWDBASED && !NO_SHA */
+#endif /* HAVE_SCRYPT && HAVE_PBKDF2 && !NO_PWDBASED && !NO_SHA256 */
WOLFSSL_LOCAL int wolfSSL_EVP_get_hashinfo(const WOLFSSL_EVP_MD* evp,
int* pHash, int* pHashSz);
diff --git a/wolfssl/openssl/fips_rand.h b/wolfssl/openssl/fips_rand.h
index bc7462a7f2..586a9574cd 100644
--- a/wolfssl/openssl/fips_rand.h
+++ b/wolfssl/openssl/fips_rand.h
@@ -1,6 +1,6 @@
/* fips_rand.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/hmac.h b/wolfssl/openssl/hmac.h
index d9df83e771..441b41d5e1 100644
--- a/wolfssl/openssl/hmac.h
+++ b/wolfssl/openssl/hmac.h
@@ -1,6 +1,6 @@
/* hmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/kdf.h b/wolfssl/openssl/kdf.h
index d80c985176..29537df199 100644
--- a/wolfssl/openssl/kdf.h
+++ b/wolfssl/openssl/kdf.h
@@ -1,6 +1,6 @@
/* kdf.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/lhash.h b/wolfssl/openssl/lhash.h
index a61453489c..06c62a295e 100644
--- a/wolfssl/openssl/lhash.h
+++ b/wolfssl/openssl/lhash.h
@@ -1,6 +1,6 @@
/* lhash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/md4.h b/wolfssl/openssl/md4.h
index 545709f415..e1f8b9ee83 100644
--- a/wolfssl/openssl/md4.h
+++ b/wolfssl/openssl/md4.h
@@ -1,6 +1,6 @@
/* md4.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/md5.h b/wolfssl/openssl/md5.h
index 4ec00d4805..81b60002e9 100644
--- a/wolfssl/openssl/md5.h
+++ b/wolfssl/openssl/md5.h
@@ -1,6 +1,6 @@
/* md5.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/modes.h b/wolfssl/openssl/modes.h
index 1c73e44a96..3288f50fa5 100644
--- a/wolfssl/openssl/modes.h
+++ b/wolfssl/openssl/modes.h
@@ -1,6 +1,6 @@
/* modes.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/obj_mac.h b/wolfssl/openssl/obj_mac.h
index e3466c9732..f3fcd859c4 100644
--- a/wolfssl/openssl/obj_mac.h
+++ b/wolfssl/openssl/obj_mac.h
@@ -1,6 +1,6 @@
/* obj_mac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/objects.h b/wolfssl/openssl/objects.h
index bffb9d6c4f..24526568e3 100644
--- a/wolfssl/openssl/objects.h
+++ b/wolfssl/openssl/objects.h
@@ -1,6 +1,6 @@
/* objects.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ocsp.h b/wolfssl/openssl/ocsp.h
index 4b2a4de048..8cd3372325 100644
--- a/wolfssl/openssl/ocsp.h
+++ b/wolfssl/openssl/ocsp.h
@@ -1,6 +1,6 @@
/* ocsp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/opensslv.h b/wolfssl/openssl/opensslv.h
index 0733db6444..7584273cd7 100644
--- a/wolfssl/openssl/opensslv.h
+++ b/wolfssl/openssl/opensslv.h
@@ -1,6 +1,6 @@
/* opensslv.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ossl_typ.h b/wolfssl/openssl/ossl_typ.h
index bc6cafbf97..85b83c3f43 100644
--- a/wolfssl/openssl/ossl_typ.h
+++ b/wolfssl/openssl/ossl_typ.h
@@ -1,6 +1,6 @@
/* ossl_typ.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/pem.h b/wolfssl/openssl/pem.h
index 0ed88c7ca6..19618ebd61 100644
--- a/wolfssl/openssl/pem.h
+++ b/wolfssl/openssl/pem.h
@@ -1,6 +1,6 @@
/* pem.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -218,6 +218,8 @@ WOLFSSL_API
int wolfSSL_PEM_write_DHparams(XFILE fp, WOLFSSL_DH* dh);
#endif /* NO_FILESYSTEM */
+#define PEM_BUFSIZE WOLF_PEM_BUFSIZE
+
#define PEM_read wolfSSL_PEM_read
#define PEM_read_bio wolfSSL_PEM_read_bio
#define PEM_write wolfSSL_PEM_write
diff --git a/wolfssl/openssl/pkcs12.h b/wolfssl/openssl/pkcs12.h
index 294eb21b22..28a0a37805 100644
--- a/wolfssl/openssl/pkcs12.h
+++ b/wolfssl/openssl/pkcs12.h
@@ -1,6 +1,6 @@
/* pkcs12.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/pkcs7.h b/wolfssl/openssl/pkcs7.h
index 3f3e7eae11..41f890163b 100644
--- a/wolfssl/openssl/pkcs7.h
+++ b/wolfssl/openssl/pkcs7.h
@@ -1,6 +1,6 @@
/* pkcs7.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/rand.h b/wolfssl/openssl/rand.h
index e9410fa519..cc0d72ac96 100644
--- a/wolfssl/openssl/rand.h
+++ b/wolfssl/openssl/rand.h
@@ -1,6 +1,6 @@
/* rand.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/rc4.h b/wolfssl/openssl/rc4.h
index 53432bd7c3..ca56ac8253 100644
--- a/wolfssl/openssl/rc4.h
+++ b/wolfssl/openssl/rc4.h
@@ -1,6 +1,6 @@
/* rc4.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ripemd.h b/wolfssl/openssl/ripemd.h
index aa61c93e64..7ba600d9a1 100644
--- a/wolfssl/openssl/ripemd.h
+++ b/wolfssl/openssl/ripemd.h
@@ -1,6 +1,6 @@
/* ripemd.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/rsa.h b/wolfssl/openssl/rsa.h
index bac6ede8be..84fc3cee61 100644
--- a/wolfssl/openssl/rsa.h
+++ b/wolfssl/openssl/rsa.h
@@ -1,6 +1,6 @@
/* rsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/sha.h b/wolfssl/openssl/sha.h
index 5a9e6d6996..d032a45d99 100644
--- a/wolfssl/openssl/sha.h
+++ b/wolfssl/openssl/sha.h
@@ -1,6 +1,6 @@
/* sha.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/sha3.h b/wolfssl/openssl/sha3.h
index 1cb50c9d1e..1b0d63bc51 100644
--- a/wolfssl/openssl/sha3.h
+++ b/wolfssl/openssl/sha3.h
@@ -1,6 +1,6 @@
/* sha3.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/srp.h b/wolfssl/openssl/srp.h
index 44bcb77788..b60981d769 100644
--- a/wolfssl/openssl/srp.h
+++ b/wolfssl/openssl/srp.h
@@ -1,6 +1,6 @@
/* srp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h
index 6575ef50f5..93e54c4a43 100644
--- a/wolfssl/openssl/ssl.h
+++ b/wolfssl/openssl/ssl.h
@@ -1,6 +1,6 @@
/* ssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -362,6 +362,9 @@ typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
#define SSL_SESSION_set_cipher wolfSSL_SESSION_set_cipher
#define SSL_is_init_finished wolfSSL_is_init_finished
+#define SSL_SESSION_set1_id wolfSSL_SESSION_set1_id
+#define SSL_SESSION_set1_id_context wolfSSL_SESSION_set1_id_context
+
#define SSL_get_version wolfSSL_get_version
#define SSL_get_current_cipher wolfSSL_get_current_cipher
diff --git a/wolfssl/openssl/stack.h b/wolfssl/openssl/stack.h
index 6b03994ab8..572b716887 100644
--- a/wolfssl/openssl/stack.h
+++ b/wolfssl/openssl/stack.h
@@ -1,6 +1,6 @@
/* stack.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/tls1.h b/wolfssl/openssl/tls1.h
index 849b08a387..dc4a27c2f3 100644
--- a/wolfssl/openssl/tls1.h
+++ b/wolfssl/openssl/tls1.h
@@ -1,6 +1,6 @@
/* tls1.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/txt_db.h b/wolfssl/openssl/txt_db.h
index 7d091e18da..511235b2cf 100644
--- a/wolfssl/openssl/txt_db.h
+++ b/wolfssl/openssl/txt_db.h
@@ -1,6 +1,6 @@
/* txt_db.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/x509.h b/wolfssl/openssl/x509.h
index 22560abf7a..c303fd6083 100644
--- a/wolfssl/openssl/x509.h
+++ b/wolfssl/openssl/x509.h
@@ -1,6 +1,6 @@
/* x509.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/x509_vfy.h b/wolfssl/openssl/x509_vfy.h
index 10a9192a2b..bb56eae97f 100644
--- a/wolfssl/openssl/x509_vfy.h
+++ b/wolfssl/openssl/x509_vfy.h
@@ -1,6 +1,6 @@
/* x509_vfy.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/openssl/x509v3.h b/wolfssl/openssl/x509v3.h
index 0acff09999..395c89b17e 100644
--- a/wolfssl/openssl/x509v3.h
+++ b/wolfssl/openssl/x509v3.h
@@ -1,6 +1,6 @@
/* x509v3.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/options.h.in b/wolfssl/options.h.in
index bedcc7dae3..5296ed158a 100644
--- a/wolfssl/options.h.in
+++ b/wolfssl/options.h.in
@@ -1,6 +1,6 @@
/* options.h.in
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/quic.h b/wolfssl/quic.h
index 08b26ff4cf..7abdc4f3eb 100644
--- a/wolfssl/quic.h
+++ b/wolfssl/quic.h
@@ -1,6 +1,6 @@
/* quic.h
*
- * Copyright (C) 2006-2021 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/sniffer.h b/wolfssl/sniffer.h
index 10c35dee3f..5fe023f650 100644
--- a/wolfssl/sniffer.h
+++ b/wolfssl/sniffer.h
@@ -1,6 +1,6 @@
/* sniffer.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/sniffer_error.h b/wolfssl/sniffer_error.h
index 37c55f3745..bea4c130c2 100644
--- a/wolfssl/sniffer_error.h
+++ b/wolfssl/sniffer_error.h
@@ -1,6 +1,6 @@
/* sniffer_error.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h
index ba8c433af8..39bdee59a0 100644
--- a/wolfssl/ssl.h
+++ b/wolfssl/ssl.h
@@ -1,6 +1,6 @@
/* ssl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -2516,8 +2516,6 @@ WOLFSSL_API void wolfSSL_ERR_print_errors(WOLFSSL_BIO *bio);
#define SSL_R_TLSV1_ALERT_UNKNOWN_CA WOLFSSL_R_TLSV1_ALERT_UNKNOWN_CA
#define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN WOLFSSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
#define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE WOLFSSL_R_SSLV3_ALERT_BAD_CERTIFICATE
-
- #define PEM_BUFSIZE WOLF_PEM_BUFSIZE
#endif
enum { /* ssl Constants */
@@ -3568,8 +3566,12 @@ WOLFSSL_API void wolfSSL_CTX_SetPerformTlsRecordProcessingCb(WOLFSSL_CTX* ctx,
WOLFSSL_API int wolfSSL_CertManagerLoadCA(WOLFSSL_CERT_MANAGER* cm, const char* f,
const char* d);
+ WOLFSSL_API int wolfSSL_CertManagerLoadCABuffer_ex(WOLFSSL_CERT_MANAGER* cm,
+ const unsigned char* in, long sz, int format, int userChain,
+ word32 flags);
WOLFSSL_API int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER* cm,
- const unsigned char* in, long sz, int format);
+ const unsigned char* in, long sz, int format);
+
WOLFSSL_API int wolfSSL_CertManagerUnloadCAs(WOLFSSL_CERT_MANAGER* cm);
#ifdef WOLFSSL_TRUST_PEER_CERT
WOLFSSL_API int wolfSSL_CertManagerUnload_trust_peers(WOLFSSL_CERT_MANAGER* cm);
@@ -5009,8 +5011,8 @@ WOLFSSL_API const unsigned char *SSL_SESSION_get0_id_context(
#endif
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
-WOLFSSL_API int SSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid, unsigned int sid_len);
-WOLFSSL_API int SSL_SESSION_set1_id_context(WOLFSSL_SESSION *s, const unsigned char *sid_ctx, unsigned int sid_ctx_len);
+WOLFSSL_API int wolfSSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid, unsigned int sid_len);
+WOLFSSL_API int wolfSSL_SESSION_set1_id_context(WOLFSSL_SESSION *s, const unsigned char *sid_ctx, unsigned int sid_ctx_len);
WOLFSSL_API WOLFSSL_X509_ALGOR* wolfSSL_X509_ALGOR_new(void);
WOLFSSL_API void wolfSSL_X509_ALGOR_free(WOLFSSL_X509_ALGOR *alg);
WOLFSSL_API const WOLFSSL_X509_ALGOR* wolfSSL_X509_get0_tbs_sigalg(const WOLFSSL_X509 *x);
diff --git a/wolfssl/test.h b/wolfssl/test.h
index 72105526ea..12a97349c7 100644
--- a/wolfssl/test.h
+++ b/wolfssl/test.h
@@ -1,6 +1,6 @@
/* test.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -1414,6 +1414,16 @@ static WC_INLINE void tcp_socket(SOCKET_T* sockfd, int udp, int sctp)
#include
#endif
+#if defined(WOLFSENTRY_VERSION_GE)
+#if WOLFSENTRY_VERSION_GE(0, 8, 0)
+#define HAVE_WOLFSENTRY_API_0v8
+#endif
+#endif
+
+#ifndef HAVE_WOLFSENTRY_API_0v8
+#define WOLFSENTRY_CONTEXT_ARGS_OUT_EX(x) (x)
+#endif
+
struct wolfsentry_data {
WOLFSENTRY_SOCKADDR(128) remote;
WOLFSENTRY_SOCKADDR(128) local;
@@ -1517,11 +1527,21 @@ static int wolfSentry_NetworkFilterCallback(
wolfsentry_errcode_t ret;
wolfsentry_action_res_t action_results;
+#if defined(WOLFSENTRY_THREADSAFE) && defined(HAVE_WOLFSENTRY_API_0v8)
+ WOLFSENTRY_THREAD_HEADER(WOLFSENTRY_THREAD_FLAG_NONE);
+ if (WOLFSENTRY_THREAD_GET_ERROR < 0) {
+ fprintf(stderr, "wolfsentry thread init error: "
+ WOLFSENTRY_ERROR_FMT "\n",
+ WOLFSENTRY_ERROR_FMT_ARGS(WOLFSENTRY_THREAD_GET_ERROR));
+ return WOLFSSL_FAILURE;
+ }
+#endif /* WOLFSENTRY_THREADSAFE && HAVE_WOLFSENTRY_API_0v8 */
+
if ((data = wolfSSL_get_ex_data(ssl, wolfsentry_data_index)) == NULL)
return WOLFSSL_FAILURE;
ret = wolfsentry_route_event_dispatch(
- _wolfsentry,
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(_wolfsentry),
(const struct wolfsentry_sockaddr *)&data->remote,
(const struct wolfsentry_sockaddr *)&data->local,
data->flags,
@@ -1562,6 +1582,14 @@ static int wolfSentry_NetworkFilterCallback(
*decision == WOLFSSL_NETFILTER_PASS ? "PASS" :
"???");
+#if defined(WOLFSENTRY_THREADSAFE) && defined(HAVE_WOLFSENTRY_API_0v8)
+ ret = WOLFSENTRY_THREAD_TAILER(WOLFSENTRY_THREAD_FLAG_NONE);
+ if (ret < 0) {
+ fprintf(stderr, "wolfsentry thread exit error: "
+ WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret));
+ }
+#endif
+
return WOLFSSL_SUCCESS;
}
@@ -1571,8 +1599,25 @@ static int wolfsentry_setup(
wolfsentry_route_flags_t route_flags)
{
wolfsentry_errcode_t ret;
+
+#ifdef HAVE_WOLFSENTRY_API_0v8
+#ifdef WOLFSENTRY_THREADSAFE
+ WOLFSENTRY_THREAD_HEADER(WOLFSENTRY_THREAD_FLAG_NONE);
+ if (WOLFSENTRY_THREAD_GET_ERROR < 0) {
+ fprintf(stderr, "wolfsentry thread init error: "
+ WOLFSENTRY_ERROR_FMT "\n",
+ WOLFSENTRY_ERROR_FMT_ARGS(WOLFSENTRY_THREAD_GET_ERROR));
+ err_sys("unable to initialize wolfSentry thread context");
+ }
+#endif
+ ret = wolfsentry_init(wolfsentry_build_settings,
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(NULL /* hpi */),
+ NULL /* default config */,
+ _wolfsentry);
+#else
ret = wolfsentry_init(NULL /* hpi */, NULL /* default config */,
_wolfsentry);
+#endif
if (ret < 0) {
fprintf(stderr, "wolfsentry_init() returned " WOLFSENTRY_ERROR_FMT "\n",
WOLFSENTRY_ERROR_FMT_ARGS(ret));
@@ -1597,7 +1642,7 @@ static int wolfsentry_setup(
}
if ((ret = wolfsentry_config_json_init(
- *_wolfsentry,
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry),
WOLFSENTRY_CONFIG_LOAD_FLAG_NONE,
&jps)) < 0) {
fprintf(stderr, "wolfsentry_config_json_init() returned "
@@ -1633,14 +1678,15 @@ static int wolfsentry_setup(
{
struct wolfsentry_route_table *table;
- if ((ret = wolfsentry_route_get_main_table(*_wolfsentry,
- &table)) < 0)
+ if ((ret = wolfsentry_route_get_main_table(
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry),
+ &table)) < 0)
+ {
fprintf(stderr, "wolfsentry_route_get_main_table() returned "
WOLFSENTRY_ERROR_FMT "\n",
WOLFSENTRY_ERROR_FMT_ARGS(ret));
-
- if (ret < 0)
return ret;
+ }
if (WOLFSENTRY_MASKIN_BITS(route_flags, WOLFSENTRY_ROUTE_FLAG_DIRECTION_OUT)) {
WOLFSENTRY_SOCKADDR(128) remote, local;
@@ -1648,7 +1694,8 @@ static int wolfsentry_setup(
wolfsentry_action_res_t action_results;
if ((ret = wolfsentry_route_table_default_policy_set(
- *_wolfsentry, table,
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry),
+ table,
WOLFSENTRY_ACTION_RES_ACCEPT))
< 0) {
fprintf(stderr,
@@ -1671,7 +1718,8 @@ static int wolfsentry_setup(
#endif
if ((ret = wolfsentry_route_insert
- (*_wolfsentry, NULL /* caller_context */,
+ (WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry),
+ NULL /* caller_context */,
(const struct wolfsentry_sockaddr *)&remote,
(const struct wolfsentry_sockaddr *)&local,
route_flags |
@@ -1696,7 +1744,7 @@ static int wolfsentry_setup(
wolfsentry_action_res_t action_results;
if ((ret = wolfsentry_route_table_default_policy_set(
- *_wolfsentry, table,
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry), table,
WOLFSENTRY_ACTION_RES_REJECT|WOLFSENTRY_ACTION_RES_STOP))
< 0) {
fprintf(stderr,
@@ -1719,8 +1767,10 @@ static int wolfsentry_setup(
#endif
if ((ret = wolfsentry_route_insert
- (*_wolfsentry, NULL /* caller_context */,
- (const struct wolfsentry_sockaddr *)&remote, (const struct wolfsentry_sockaddr *)&local,
+ (WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry),
+ NULL /* caller_context */,
+ (const struct wolfsentry_sockaddr *)&remote,
+ (const struct wolfsentry_sockaddr *)&local,
route_flags |
WOLFSENTRY_ROUTE_FLAG_GREENLISTED |
WOLFSENTRY_ROUTE_FLAG_PARENT_EVENT_WILDCARD |
@@ -1740,6 +1790,14 @@ static int wolfsentry_setup(
}
}
+#if defined(WOLFSENTRY_THREADSAFE) && defined(HAVE_WOLFSENTRY_API_0v8)
+ ret = WOLFSENTRY_THREAD_TAILER(WOLFSENTRY_THREAD_FLAG_NONE);
+ if (ret < 0) {
+ fprintf(stderr, "wolfsentry thread exit error: "
+ WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret));
+ }
+#endif
+
return 0;
}
@@ -1759,6 +1817,16 @@ static WC_INLINE int tcp_connect_with_wolfSentry(
wolfsentry_action_res_t action_results;
wolfSSL_netfilter_decision_t decision;
+#if defined(WOLFSENTRY_THREADSAFE) && defined(HAVE_WOLFSENTRY_API_0v8)
+ WOLFSENTRY_THREAD_HEADER(WOLFSENTRY_THREAD_FLAG_NONE);
+ if (WOLFSENTRY_THREAD_GET_ERROR < 0) {
+ fprintf(stderr, "wolfsentry thread init error: "
+ WOLFSENTRY_ERROR_FMT "\n",
+ WOLFSENTRY_ERROR_FMT_ARGS(WOLFSENTRY_THREAD_GET_ERROR));
+ err_sys("unable to initialize wolfSentry thread context");
+ }
+#endif
+
build_addr(&remote_addr, ip, port, udp, sctp);
{
@@ -1780,7 +1848,7 @@ static WC_INLINE int tcp_connect_with_wolfSentry(
}
ret = wolfsentry_route_event_dispatch(
- _wolfsentry,
+ WOLFSENTRY_CONTEXT_ARGS_OUT_EX(_wolfsentry),
(const struct wolfsentry_sockaddr *)&wolfsentry_data->remote,
(const struct wolfsentry_sockaddr *)&wolfsentry_data->local,
wolfsentry_data->flags,
@@ -1834,6 +1902,14 @@ static WC_INLINE int tcp_connect_with_wolfSentry(
err_sys_with_errno("tcp connect failed");
}
+#if defined(WOLFSENTRY_THREADSAFE) && defined(HAVE_WOLFSENTRY_API_0v8)
+ ret = WOLFSENTRY_THREAD_TAILER(WOLFSENTRY_THREAD_FLAG_NONE);
+ if (ret < 0) {
+ fprintf(stderr, "wolfsentry thread exit error: "
+ WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret));
+ }
+#endif
+
return WOLFSSL_SUCCESS;
}
@@ -3681,7 +3757,7 @@ static WC_INLINE int myEccSharedSecret(WOLFSSL* ssl, ecc_key* otherKey,
#endif /* HAVE_ECC */
-#ifdef HAVE_HKDF
+#if defined(HAVE_HKDF) && !defined(NO_HMAC)
static WC_INLINE int myHkdfExtract(byte* prk, const byte* salt, word32 saltLen,
byte* ikm, word32 ikmLen, int digest, void* ctx)
{
@@ -3722,7 +3798,7 @@ static WC_INLINE int myHkdfExtract(byte* prk, const byte* salt, word32 saltLen,
ikmLen);
return ret;
}
-#endif /* HAVE_HKDF */
+#endif /* HAVE_HKDF && !NO_HMAC */
#if defined(HAVE_ED25519) && defined(HAVE_ED25519_KEY_IMPORT)
#ifdef HAVE_ED25519_SIGN
@@ -4590,9 +4666,9 @@ static WC_INLINE void SetupPkCallbacks(WOLFSSL_CTX* ctx)
wolfSSL_CTX_SetEccVerifyCb(ctx, myEccVerify);
wolfSSL_CTX_SetEccSharedSecretCb(ctx, myEccSharedSecret);
#endif /* HAVE_ECC */
- #ifdef HAVE_HKDF
+ #if defined(HAVE_HKDF) && !defined(NO_HMAC)
wolfSSL_CTX_SetHKDFExtractCb(ctx, myHkdfExtract);
- #endif /* HAVE_HKDF */
+ #endif /* HAVE_HKDF && !NO_HMAC */
#ifndef NO_DH
wolfSSL_CTX_SetDhAgreeCb(ctx, myDhCallback);
#endif
@@ -5131,12 +5207,14 @@ void DEBUG_WRITE_DER(const byte* der, int derSz, const char* fileName);
#define DTLS_CID_BUFFER_SIZE 256
-#if defined(WOLFSSL_TICKET_NONCE_MALLOC) && defined(HAVE_SESSION_TICKET) \
+#if !defined(NO_FILESYSTEM) && ( \
+ defined(WOLFSSL_TICKET_NONCE_MALLOC) && defined(HAVE_SESSION_TICKET) \
&& defined(WOLFSSL_TLS13) && \
(!defined(HAVE_FIPS) || (defined(FIPS_VERSION_GE) && FIPS_VERSION_GE(5,3)))\
|| \
(defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12) && \
- !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER))
+ !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)))
+
#define TEST_MEMIO_BUF_SZ (64 * 1024)
struct test_memio_ctx
{
diff --git a/wolfssl/version.h b/wolfssl/version.h
index 4c4df7b5eb..5dad09fc43 100644
--- a/wolfssl/version.h
+++ b/wolfssl/version.h
@@ -1,6 +1,6 @@
/* wolfssl_version.h.in
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/version.h.in b/wolfssl/version.h.in
index 91063fadbe..158e00b44a 100644
--- a/wolfssl/version.h.in
+++ b/wolfssl/version.h.in
@@ -1,6 +1,6 @@
/* wolfssl_version.h.in
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/aes.h b/wolfssl/wolfcrypt/aes.h
index f2f83ec81c..449220994a 100644
--- a/wolfssl/wolfcrypt/aes.h
+++ b/wolfssl/wolfcrypt/aes.h
@@ -1,6 +1,6 @@
/* aes.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/arc4.h b/wolfssl/wolfcrypt/arc4.h
index 62da9c810b..ad97921681 100644
--- a/wolfssl/wolfcrypt/arc4.h
+++ b/wolfssl/wolfcrypt/arc4.h
@@ -1,6 +1,6 @@
/* arc4.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/asn.h b/wolfssl/wolfcrypt/asn.h
index a9d48ea465..3279769388 100644
--- a/wolfssl/wolfcrypt/asn.h
+++ b/wolfssl/wolfcrypt/asn.h
@@ -1,6 +1,6 @@
/* asn.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -1095,9 +1095,6 @@ enum Key_Sum {
DILITHIUM_LEVEL2k = 213, /* 1.3.6.1.4.1.2.267.7.4.4 */
DILITHIUM_LEVEL3k = 216, /* 1.3.6.1.4.1.2.267.7.6.5 */
DILITHIUM_LEVEL5k = 220, /* 1.3.6.1.4.1.2.267.7.8.7 */
- DILITHIUM_AES_LEVEL2k = 217,/* 1.3.6.1.4.1.2.267.11.4.4 */
- DILITHIUM_AES_LEVEL3k = 221,/* 1.3.6.1.4.1.2.267.11.6.5 + 1 (See GetOID() in asn.c) */
- DILITHIUM_AES_LEVEL5k = 224,/* 1.3.6.1.4.1.2.267.11.8.7 */
SPHINCS_FAST_LEVEL1k = 281, /* 1 3 9999 6 7 4 */
SPHINCS_FAST_LEVEL3k = 283, /* 1 3 9999 6 8 3 + 2 (See GetOID() in asn.c) */
SPHINCS_FAST_LEVEL5k = 282, /* 1 3 9999 6 9 3 */
@@ -2243,9 +2240,6 @@ enum cert_enums {
DILITHIUM_LEVEL2_KEY = 18,
DILITHIUM_LEVEL3_KEY = 19,
DILITHIUM_LEVEL5_KEY = 20,
- DILITHIUM_AES_LEVEL2_KEY = 21,
- DILITHIUM_AES_LEVEL3_KEY = 22,
- DILITHIUM_AES_LEVEL5_KEY = 23,
SPHINCS_FAST_LEVEL1_KEY = 24,
SPHINCS_FAST_LEVEL3_KEY = 25,
SPHINCS_FAST_LEVEL5_KEY = 26,
diff --git a/wolfssl/wolfcrypt/asn_public.h b/wolfssl/wolfcrypt/asn_public.h
index deea9b43db..5e6242fe5a 100644
--- a/wolfssl/wolfcrypt/asn_public.h
+++ b/wolfssl/wolfcrypt/asn_public.h
@@ -1,6 +1,6 @@
/* asn_public.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -148,9 +148,6 @@ enum CertType {
DILITHIUM_LEVEL2_TYPE,
DILITHIUM_LEVEL3_TYPE,
DILITHIUM_LEVEL5_TYPE,
- DILITHIUM_AES_LEVEL2_TYPE,
- DILITHIUM_AES_LEVEL3_TYPE,
- DILITHIUM_AES_LEVEL5_TYPE,
SPHINCS_FAST_LEVEL1_TYPE,
SPHINCS_FAST_LEVEL3_TYPE,
SPHINCS_FAST_LEVEL5_TYPE,
@@ -199,9 +196,6 @@ enum Ctc_SigType {
CTC_DILITHIUM_LEVEL2 = 213,
CTC_DILITHIUM_LEVEL3 = 216,
CTC_DILITHIUM_LEVEL5 = 220,
- CTC_DILITHIUM_AES_LEVEL2 = 217,
- CTC_DILITHIUM_AES_LEVEL3 = 221,
- CTC_DILITHIUM_AES_LEVEL5 = 224,
CTC_SPHINCS_FAST_LEVEL1 = 281,
CTC_SPHINCS_FAST_LEVEL3 = 283,
diff --git a/wolfssl/wolfcrypt/blake2-impl.h b/wolfssl/wolfcrypt/blake2-impl.h
index df0de54205..2cdbf40101 100644
--- a/wolfssl/wolfcrypt/blake2-impl.h
+++ b/wolfssl/wolfcrypt/blake2-impl.h
@@ -12,7 +12,7 @@
*/
/* blake2-impl.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/blake2-int.h b/wolfssl/wolfcrypt/blake2-int.h
index 5626e1bbf3..0ad625ee67 100644
--- a/wolfssl/wolfcrypt/blake2-int.h
+++ b/wolfssl/wolfcrypt/blake2-int.h
@@ -12,7 +12,7 @@
*/
/* blake2-int.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/blake2.h b/wolfssl/wolfcrypt/blake2.h
index 70047811af..1c62e643af 100644
--- a/wolfssl/wolfcrypt/blake2.h
+++ b/wolfssl/wolfcrypt/blake2.h
@@ -1,6 +1,6 @@
/* blake2.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/camellia.h b/wolfssl/wolfcrypt/camellia.h
index e75ea7d250..928312354d 100644
--- a/wolfssl/wolfcrypt/camellia.h
+++ b/wolfssl/wolfcrypt/camellia.h
@@ -27,7 +27,7 @@
/* camellia.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/chacha.h b/wolfssl/wolfcrypt/chacha.h
index a5121bf636..e654972ffb 100644
--- a/wolfssl/wolfcrypt/chacha.h
+++ b/wolfssl/wolfcrypt/chacha.h
@@ -1,6 +1,6 @@
/* chacha.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/chacha20_poly1305.h b/wolfssl/wolfcrypt/chacha20_poly1305.h
index 1d3510e815..7c1ddc97bb 100644
--- a/wolfssl/wolfcrypt/chacha20_poly1305.h
+++ b/wolfssl/wolfcrypt/chacha20_poly1305.h
@@ -1,6 +1,6 @@
/* chacha20_poly1305.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/cmac.h b/wolfssl/wolfcrypt/cmac.h
index 76979eb118..679952bab2 100644
--- a/wolfssl/wolfcrypt/cmac.h
+++ b/wolfssl/wolfcrypt/cmac.h
@@ -1,6 +1,6 @@
/* cmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/coding.h b/wolfssl/wolfcrypt/coding.h
index 954eab84b9..e0aecc6282 100644
--- a/wolfssl/wolfcrypt/coding.h
+++ b/wolfssl/wolfcrypt/coding.h
@@ -1,6 +1,6 @@
/* coding.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/compress.h b/wolfssl/wolfcrypt/compress.h
index 2c8ed2608f..a4efc7809e 100644
--- a/wolfssl/wolfcrypt/compress.h
+++ b/wolfssl/wolfcrypt/compress.h
@@ -1,6 +1,6 @@
/* compress.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/cpuid.h b/wolfssl/wolfcrypt/cpuid.h
index c7638f0af2..9e04328f7b 100644
--- a/wolfssl/wolfcrypt/cpuid.h
+++ b/wolfssl/wolfcrypt/cpuid.h
@@ -1,6 +1,6 @@
/* cpuid.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/cryptocb.h b/wolfssl/wolfcrypt/cryptocb.h
index 6108e8e267..287e10941a 100644
--- a/wolfssl/wolfcrypt/cryptocb.h
+++ b/wolfssl/wolfcrypt/cryptocb.h
@@ -1,6 +1,6 @@
/* cryptocb.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/curve25519.h b/wolfssl/wolfcrypt/curve25519.h
index d8053577a2..7f6bed03b9 100644
--- a/wolfssl/wolfcrypt/curve25519.h
+++ b/wolfssl/wolfcrypt/curve25519.h
@@ -1,6 +1,6 @@
/* curve25519.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/curve448.h b/wolfssl/wolfcrypt/curve448.h
index 76279a4279..aa00e1021e 100644
--- a/wolfssl/wolfcrypt/curve448.h
+++ b/wolfssl/wolfcrypt/curve448.h
@@ -1,6 +1,6 @@
/* curve448.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/des3.h b/wolfssl/wolfcrypt/des3.h
index 451f082789..94278814f9 100644
--- a/wolfssl/wolfcrypt/des3.h
+++ b/wolfssl/wolfcrypt/des3.h
@@ -1,6 +1,6 @@
/* des3.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/dh.h b/wolfssl/wolfcrypt/dh.h
index 1bb022625b..5e93ffdc15 100644
--- a/wolfssl/wolfcrypt/dh.h
+++ b/wolfssl/wolfcrypt/dh.h
@@ -1,6 +1,6 @@
/* dh.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/dilithium.h b/wolfssl/wolfcrypt/dilithium.h
index 316fae10ca..896976c5fa 100644
--- a/wolfssl/wolfcrypt/dilithium.h
+++ b/wolfssl/wolfcrypt/dilithium.h
@@ -1,6 +1,6 @@
/* dilithium.h
*
- * Copyright (C) 2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
@@ -65,16 +65,12 @@
#define DILITHIUM_MAX_PUB_KEY_SIZE DILITHIUM_LEVEL5_PUB_KEY_SIZE
#define DILITHIUM_MAX_PRV_KEY_SIZE DILITHIUM_LEVEL5_PRV_KEY_SIZE
-#define SHAKE_VARIANT 1
-#define AES_VARIANT 2
-
/* Structs */
struct dilithium_key {
bool pubKeySet;
bool prvKeySet;
byte level; /* 2,3 or 5 */
- byte sym; /* SHAKE_VARIANT or AES_VARIANT */
byte p[DILITHIUM_MAX_PUB_KEY_SIZE];
byte k[DILITHIUM_MAX_PRV_KEY_SIZE];
};
@@ -96,9 +92,9 @@ int wc_dilithium_verify_msg(const byte* sig, word32 sigLen, const byte* msg,
WOLFSSL_API
int wc_dilithium_init(dilithium_key* key);
WOLFSSL_API
-int wc_dilithium_set_level_and_sym(dilithium_key* key, byte level, byte sym);
+int wc_dilithium_set_level(dilithium_key* key, byte level);
WOLFSSL_API
-int wc_dilithium_get_level_and_sym(dilithium_key* key, byte* level, byte *sym);
+int wc_dilithium_get_level(dilithium_key* key, byte* level);
WOLFSSL_API
void wc_dilithium_free(dilithium_key* key);
diff --git a/wolfssl/wolfcrypt/dsa.h b/wolfssl/wolfcrypt/dsa.h
index 7365b61cb8..bef3af204c 100644
--- a/wolfssl/wolfcrypt/dsa.h
+++ b/wolfssl/wolfcrypt/dsa.h
@@ -1,6 +1,6 @@
/* dsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ecc.h b/wolfssl/wolfcrypt/ecc.h
index 97170eb4e3..c0271c9a28 100644
--- a/wolfssl/wolfcrypt/ecc.h
+++ b/wolfssl/wolfcrypt/ecc.h
@@ -1,6 +1,6 @@
/* ecc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/eccsi.h b/wolfssl/wolfcrypt/eccsi.h
index 5e09b82720..5e46d8d56d 100644
--- a/wolfssl/wolfcrypt/eccsi.h
+++ b/wolfssl/wolfcrypt/eccsi.h
@@ -1,6 +1,6 @@
/* eccsi.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ed25519.h b/wolfssl/wolfcrypt/ed25519.h
index 1d1f517afc..298e876bef 100644
--- a/wolfssl/wolfcrypt/ed25519.h
+++ b/wolfssl/wolfcrypt/ed25519.h
@@ -1,6 +1,6 @@
/* ed25519.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ed448.h b/wolfssl/wolfcrypt/ed448.h
index 18494e4fe6..b9fa35f616 100644
--- a/wolfssl/wolfcrypt/ed448.h
+++ b/wolfssl/wolfcrypt/ed448.h
@@ -1,6 +1,6 @@
/* ed448.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/error-crypt.h b/wolfssl/wolfcrypt/error-crypt.h
index 3a8dbc58e1..7f0db6aa8b 100644
--- a/wolfssl/wolfcrypt/error-crypt.h
+++ b/wolfssl/wolfcrypt/error-crypt.h
@@ -1,6 +1,6 @@
/* error-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ext_kyber.h b/wolfssl/wolfcrypt/ext_kyber.h
index f2ef9f8b49..53c175d771 100644
--- a/wolfssl/wolfcrypt/ext_kyber.h
+++ b/wolfssl/wolfcrypt/ext_kyber.h
@@ -1,6 +1,6 @@
/* ext_kyber.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/falcon.h b/wolfssl/wolfcrypt/falcon.h
index d4f0b352c7..cced2b051d 100644
--- a/wolfssl/wolfcrypt/falcon.h
+++ b/wolfssl/wolfcrypt/falcon.h
@@ -1,6 +1,6 @@
/* falcon.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/fe_448.h b/wolfssl/wolfcrypt/fe_448.h
index 38b752bca6..09aa4e8db9 100644
--- a/wolfssl/wolfcrypt/fe_448.h
+++ b/wolfssl/wolfcrypt/fe_448.h
@@ -1,6 +1,6 @@
/* fe448_448.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/fe_operations.h b/wolfssl/wolfcrypt/fe_operations.h
index 12d3dc8149..45daa003f9 100644
--- a/wolfssl/wolfcrypt/fe_operations.h
+++ b/wolfssl/wolfcrypt/fe_operations.h
@@ -1,6 +1,6 @@
/* fe_operations.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/fips_test.h b/wolfssl/wolfcrypt/fips_test.h
index 89bb15ebf8..5e819d4c23 100644
--- a/wolfssl/wolfcrypt/fips_test.h
+++ b/wolfssl/wolfcrypt/fips_test.h
@@ -1,6 +1,6 @@
/* fips_test.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ge_448.h b/wolfssl/wolfcrypt/ge_448.h
index 950e7dfd80..760ef2f5af 100644
--- a/wolfssl/wolfcrypt/ge_448.h
+++ b/wolfssl/wolfcrypt/ge_448.h
@@ -1,6 +1,6 @@
/* ge_448.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ge_operations.h b/wolfssl/wolfcrypt/ge_operations.h
index 837e9204f0..69bd60c7c8 100644
--- a/wolfssl/wolfcrypt/ge_operations.h
+++ b/wolfssl/wolfcrypt/ge_operations.h
@@ -1,6 +1,6 @@
/* ge_operations.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/hash.h b/wolfssl/wolfcrypt/hash.h
index 0cf14970e4..bf62ca8cf6 100644
--- a/wolfssl/wolfcrypt/hash.h
+++ b/wolfssl/wolfcrypt/hash.h
@@ -1,6 +1,6 @@
/* hash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/hmac.h b/wolfssl/wolfcrypt/hmac.h
index d214524277..86c97ebfbf 100644
--- a/wolfssl/wolfcrypt/hmac.h
+++ b/wolfssl/wolfcrypt/hmac.h
@@ -1,6 +1,6 @@
/* hmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/integer.h b/wolfssl/wolfcrypt/integer.h
index 8a3ce2b0ae..cc1e0a8cae 100644
--- a/wolfssl/wolfcrypt/integer.h
+++ b/wolfssl/wolfcrypt/integer.h
@@ -1,6 +1,6 @@
/* integer.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/kdf.h b/wolfssl/wolfcrypt/kdf.h
index 1d09b95521..76c574e6a1 100644
--- a/wolfssl/wolfcrypt/kdf.h
+++ b/wolfssl/wolfcrypt/kdf.h
@@ -1,6 +1,6 @@
/* kdf.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/kyber.h b/wolfssl/wolfcrypt/kyber.h
index ca128feee1..7ac4ebd6e1 100644
--- a/wolfssl/wolfcrypt/kyber.h
+++ b/wolfssl/wolfcrypt/kyber.h
@@ -1,6 +1,6 @@
/* kyber.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/logging.h b/wolfssl/wolfcrypt/logging.h
index 9fdb5625fc..5095a32a57 100644
--- a/wolfssl/wolfcrypt/logging.h
+++ b/wolfssl/wolfcrypt/logging.h
@@ -1,6 +1,6 @@
/* logging.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/md2.h b/wolfssl/wolfcrypt/md2.h
index c9c146492e..e326a4d791 100644
--- a/wolfssl/wolfcrypt/md2.h
+++ b/wolfssl/wolfcrypt/md2.h
@@ -1,6 +1,6 @@
/* md2.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/md4.h b/wolfssl/wolfcrypt/md4.h
index 42027d6ac0..f367cde627 100644
--- a/wolfssl/wolfcrypt/md4.h
+++ b/wolfssl/wolfcrypt/md4.h
@@ -1,6 +1,6 @@
/* md4.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/md5.h b/wolfssl/wolfcrypt/md5.h
index 769d2fd212..f731290856 100644
--- a/wolfssl/wolfcrypt/md5.h
+++ b/wolfssl/wolfcrypt/md5.h
@@ -1,6 +1,6 @@
/* md5.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/mem_track.h b/wolfssl/wolfcrypt/mem_track.h
index 51a141041f..308fe9de2c 100644
--- a/wolfssl/wolfcrypt/mem_track.h
+++ b/wolfssl/wolfcrypt/mem_track.h
@@ -1,6 +1,6 @@
/* mem_track.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/memory.h b/wolfssl/wolfcrypt/memory.h
index 3ca47205c3..969a0c26e5 100644
--- a/wolfssl/wolfcrypt/memory.h
+++ b/wolfssl/wolfcrypt/memory.h
@@ -1,6 +1,6 @@
/* memory.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/misc.h b/wolfssl/wolfcrypt/misc.h
index 74d249c8d9..5bdf5aff44 100644
--- a/wolfssl/wolfcrypt/misc.h
+++ b/wolfssl/wolfcrypt/misc.h
@@ -1,6 +1,6 @@
/* misc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/mpi_class.h b/wolfssl/wolfcrypt/mpi_class.h
index 4e8eac21c4..0736d6f8f3 100644
--- a/wolfssl/wolfcrypt/mpi_class.h
+++ b/wolfssl/wolfcrypt/mpi_class.h
@@ -1,6 +1,6 @@
/* mpi_class.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/mpi_superclass.h b/wolfssl/wolfcrypt/mpi_superclass.h
index 963b77b5a4..abfac6af5e 100644
--- a/wolfssl/wolfcrypt/mpi_superclass.h
+++ b/wolfssl/wolfcrypt/mpi_superclass.h
@@ -1,6 +1,6 @@
/* mpi_superclass.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/pkcs11.h b/wolfssl/wolfcrypt/pkcs11.h
index cff0fddb75..c754784022 100644
--- a/wolfssl/wolfcrypt/pkcs11.h
+++ b/wolfssl/wolfcrypt/pkcs11.h
@@ -1,6 +1,6 @@
/* pkcs11.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/pkcs12.h b/wolfssl/wolfcrypt/pkcs12.h
index 3f24b8ce2f..4773966982 100644
--- a/wolfssl/wolfcrypt/pkcs12.h
+++ b/wolfssl/wolfcrypt/pkcs12.h
@@ -1,6 +1,6 @@
/* pkcs12.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/pkcs7.h b/wolfssl/wolfcrypt/pkcs7.h
index 3bec72d834..d260f0155c 100644
--- a/wolfssl/wolfcrypt/pkcs7.h
+++ b/wolfssl/wolfcrypt/pkcs7.h
@@ -1,6 +1,6 @@
/* pkcs7.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/poly1305.h b/wolfssl/wolfcrypt/poly1305.h
index a1c47b9c10..0fd9d3c305 100644
--- a/wolfssl/wolfcrypt/poly1305.h
+++ b/wolfssl/wolfcrypt/poly1305.h
@@ -1,6 +1,6 @@
/* poly1305.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h b/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h
index 7ac9e596ac..205fcce508 100644
--- a/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h
+++ b/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h
@@ -1,6 +1,6 @@
/* esp32-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/Renesas/renesas-sce-crypt.h b/wolfssl/wolfcrypt/port/Renesas/renesas-sce-crypt.h
index 21e7a85f3e..1a02c6b01a 100644
--- a/wolfssl/wolfcrypt/port/Renesas/renesas-sce-crypt.h
+++ b/wolfssl/wolfcrypt/port/Renesas/renesas-sce-crypt.h
@@ -1,6 +1,6 @@
/* renesas-sce-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h b/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h
index c25574b031..d8e951bde9 100644
--- a/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h
+++ b/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h
@@ -1,6 +1,6 @@
/* renesas-tsip-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/Renesas/renesas_cmn.h b/wolfssl/wolfcrypt/port/Renesas/renesas_cmn.h
index aae34281f0..53df9bfba6 100644
--- a/wolfssl/wolfcrypt/port/Renesas/renesas_cmn.h
+++ b/wolfssl/wolfcrypt/port/Renesas/renesas_cmn.h
@@ -1,6 +1,6 @@
/* renesas_cmn.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/Renesas/renesas_sync.h b/wolfssl/wolfcrypt/port/Renesas/renesas_sync.h
index 65518b7d79..bdf941fd54 100644
--- a/wolfssl/wolfcrypt/port/Renesas/renesas_sync.h
+++ b/wolfssl/wolfcrypt/port/Renesas/renesas_sync.h
@@ -1,6 +1,6 @@
/* renesas_sync.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/Renesas/renesas_tsip_types.h b/wolfssl/wolfcrypt/port/Renesas/renesas_tsip_types.h
index 96c3dab719..fb9f79dfdc 100644
--- a/wolfssl/wolfcrypt/port/Renesas/renesas_tsip_types.h
+++ b/wolfssl/wolfcrypt/port/Renesas/renesas_tsip_types.h
@@ -1,7 +1,7 @@
/* renesas_tsip_types.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h b/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h
index b97ea70cc0..bac08c0454 100644
--- a/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h
+++ b/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h
@@ -1,6 +1,6 @@
/* afalg_hash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h b/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h
index 27de2d542d..60571f3739 100644
--- a/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h
+++ b/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h
@@ -1,6 +1,6 @@
/* wc_afalg.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/arm/cryptoCell.h b/wolfssl/wolfcrypt/port/arm/cryptoCell.h
index bcbf024571..58ba145162 100644
--- a/wolfssl/wolfcrypt/port/arm/cryptoCell.h
+++ b/wolfssl/wolfcrypt/port/arm/cryptoCell.h
@@ -1,6 +1,6 @@
/* cryptoCell.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/atmel/atmel.h b/wolfssl/wolfcrypt/port/atmel/atmel.h
index bfb00b1cae..4f92236647 100644
--- a/wolfssl/wolfcrypt/port/atmel/atmel.h
+++ b/wolfssl/wolfcrypt/port/atmel/atmel.h
@@ -1,6 +1,6 @@
/* atmel.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/caam_driver.h b/wolfssl/wolfcrypt/port/caam/caam_driver.h
index 35ec59d21c..7a99fe791f 100644
--- a/wolfssl/wolfcrypt/port/caam/caam_driver.h
+++ b/wolfssl/wolfcrypt/port/caam/caam_driver.h
@@ -1,6 +1,6 @@
/* caam_driver.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/caam_error.h b/wolfssl/wolfcrypt/port/caam/caam_error.h
index f1f617cc3b..abde9b56b8 100644
--- a/wolfssl/wolfcrypt/port/caam/caam_error.h
+++ b/wolfssl/wolfcrypt/port/caam/caam_error.h
@@ -1,6 +1,6 @@
/* caam_error.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/caam_qnx.h b/wolfssl/wolfcrypt/port/caam/caam_qnx.h
index 416c1c1cf1..c48e688d02 100644
--- a/wolfssl/wolfcrypt/port/caam/caam_qnx.h
+++ b/wolfssl/wolfcrypt/port/caam/caam_qnx.h
@@ -1,6 +1,6 @@
/* caam_qnx.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam.h b/wolfssl/wolfcrypt/port/caam/wolfcaam.h
index 7c7c681b11..9b464fc27c 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam.h
@@ -1,6 +1,6 @@
/* wolfcaam.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_aes.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_aes.h
index 1af45fc20a..5ee9e7aa43 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_aes.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_aes.h
@@ -1,6 +1,6 @@
/* wolfcaam_aes.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_cmac.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_cmac.h
index b49df498d2..b07fe19b10 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_cmac.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_cmac.h
@@ -1,6 +1,6 @@
/* wolfcaam_cmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_ecdsa.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_ecdsa.h
index a7ed5d8566..2943d71765 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_ecdsa.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_ecdsa.h
@@ -1,6 +1,6 @@
/* wolfcaam_ecdsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_hash.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_hash.h
index 5df7486012..459c64aceb 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_hash.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_hash.h
@@ -1,6 +1,6 @@
/* wolfcaam_hash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_qnx.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_qnx.h
index 81f86242ba..d85be684fa 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_qnx.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_qnx.h
@@ -1,6 +1,6 @@
/* wolfcaam_qnx.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_rsa.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_rsa.h
index 56ac199a0a..032c1e8c40 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_rsa.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_rsa.h
@@ -1,6 +1,6 @@
/* wolfcaam_rsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_seco.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_seco.h
index f9e18914d5..bebfb3f327 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_seco.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_seco.h
@@ -1,6 +1,6 @@
/* wolfcaam_seco.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h
index c465920144..67aa5aeab8 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h
@@ -1,6 +1,6 @@
/* wolfcaam_sha.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/caam/wolfcaam_x25519.h b/wolfssl/wolfcrypt/port/caam/wolfcaam_x25519.h
index 051c8170d4..b10b6c9d55 100644
--- a/wolfssl/wolfcrypt/port/caam/wolfcaam_x25519.h
+++ b/wolfssl/wolfcrypt/port/caam/wolfcaam_x25519.h
@@ -1,6 +1,6 @@
/* wolfcaam_x25519.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h b/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h
index be65adcbf8..28fdd297a3 100644
--- a/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h
+++ b/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h
@@ -1,6 +1,6 @@
/* cavium_octeon_sync.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/cypress/psoc6_crypto.h b/wolfssl/wolfcrypt/port/cypress/psoc6_crypto.h
index 408c02a059..c1e8076e1d 100644
--- a/wolfssl/wolfcrypt/port/cypress/psoc6_crypto.h
+++ b/wolfssl/wolfcrypt/port/cypress/psoc6_crypto.h
@@ -1,6 +1,6 @@
/* psoc6_crypto.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h b/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h
index fa42736828..d2c73d1422 100644
--- a/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h
+++ b/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h
@@ -1,6 +1,6 @@
/* wc_devcrypto.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/intel/quickassist_sync.h b/wolfssl/wolfcrypt/port/intel/quickassist_sync.h
index 383a72ba46..3e3411a1e6 100644
--- a/wolfssl/wolfcrypt/port/intel/quickassist_sync.h
+++ b/wolfssl/wolfcrypt/port/intel/quickassist_sync.h
@@ -1,6 +1,6 @@
/* quickassist_sync.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/iotsafe/iotsafe.h b/wolfssl/wolfcrypt/port/iotsafe/iotsafe.h
index aab9f882a3..8f452ce6aa 100644
--- a/wolfssl/wolfcrypt/port/iotsafe/iotsafe.h
+++ b/wolfssl/wolfcrypt/port/iotsafe/iotsafe.h
@@ -1,6 +1,6 @@
/* iotsafe.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/kcapi/kcapi_dh.h b/wolfssl/wolfcrypt/port/kcapi/kcapi_dh.h
index 3029de153f..7183c149d0 100644
--- a/wolfssl/wolfcrypt/port/kcapi/kcapi_dh.h
+++ b/wolfssl/wolfcrypt/port/kcapi/kcapi_dh.h
@@ -1,6 +1,6 @@
/* kcapi_dh.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/kcapi/kcapi_ecc.h b/wolfssl/wolfcrypt/port/kcapi/kcapi_ecc.h
index d3cd0490e3..31949a0707 100644
--- a/wolfssl/wolfcrypt/port/kcapi/kcapi_ecc.h
+++ b/wolfssl/wolfcrypt/port/kcapi/kcapi_ecc.h
@@ -1,6 +1,6 @@
/* kcapi_ecc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/kcapi/kcapi_hash.h b/wolfssl/wolfcrypt/port/kcapi/kcapi_hash.h
index a31eb2508a..1a4bbf8773 100644
--- a/wolfssl/wolfcrypt/port/kcapi/kcapi_hash.h
+++ b/wolfssl/wolfcrypt/port/kcapi/kcapi_hash.h
@@ -1,6 +1,6 @@
/* kcapi_hash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/kcapi/kcapi_hmac.h b/wolfssl/wolfcrypt/port/kcapi/kcapi_hmac.h
index 7196150db9..a987527e8a 100644
--- a/wolfssl/wolfcrypt/port/kcapi/kcapi_hmac.h
+++ b/wolfssl/wolfcrypt/port/kcapi/kcapi_hmac.h
@@ -1,6 +1,6 @@
/* kcapi_hmac.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/kcapi/kcapi_rsa.h b/wolfssl/wolfcrypt/port/kcapi/kcapi_rsa.h
index 2a4c4f64a0..18a44576aa 100644
--- a/wolfssl/wolfcrypt/port/kcapi/kcapi_rsa.h
+++ b/wolfssl/wolfcrypt/port/kcapi/kcapi_rsa.h
@@ -1,6 +1,6 @@
/* kcapi_rsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/kcapi/wc_kcapi.h b/wolfssl/wolfcrypt/port/kcapi/wc_kcapi.h
index a728d92697..3e5483c21d 100644
--- a/wolfssl/wolfcrypt/port/kcapi/wc_kcapi.h
+++ b/wolfssl/wolfcrypt/port/kcapi/wc_kcapi.h
@@ -1,6 +1,6 @@
/* wc_kcapi.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/maxim/maxq10xx.h b/wolfssl/wolfcrypt/port/maxim/maxq10xx.h
index 8ec372cdb7..0d8849f4fc 100644
--- a/wolfssl/wolfcrypt/port/maxim/maxq10xx.h
+++ b/wolfssl/wolfcrypt/port/maxim/maxq10xx.h
@@ -1,6 +1,6 @@
/* maxq10xx.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/nrf51.h b/wolfssl/wolfcrypt/port/nrf51.h
index 95d8fb9174..d93fd0d86c 100644
--- a/wolfssl/wolfcrypt/port/nrf51.h
+++ b/wolfssl/wolfcrypt/port/nrf51.h
@@ -1,6 +1,6 @@
/* nrf51.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/nxp/dcp_port.h b/wolfssl/wolfcrypt/port/nxp/dcp_port.h
index 49392a960d..3d4c1fe93e 100644
--- a/wolfssl/wolfcrypt/port/nxp/dcp_port.h
+++ b/wolfssl/wolfcrypt/port/nxp/dcp_port.h
@@ -1,6 +1,6 @@
/* dcp_port.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/nxp/ksdk_port.h b/wolfssl/wolfcrypt/port/nxp/ksdk_port.h
index d01bdc2403..1ff21e42f7 100644
--- a/wolfssl/wolfcrypt/port/nxp/ksdk_port.h
+++ b/wolfssl/wolfcrypt/port/nxp/ksdk_port.h
@@ -1,6 +1,6 @@
/* ksdk_port.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/nxp/se050_port.h b/wolfssl/wolfcrypt/port/nxp/se050_port.h
index dc7b1beafe..5694fddfb0 100644
--- a/wolfssl/wolfcrypt/port/nxp/se050_port.h
+++ b/wolfssl/wolfcrypt/port/nxp/se050_port.h
@@ -1,6 +1,6 @@
/* se050_port.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h b/wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h
index 43242a8978..46f3c04ac2 100644
--- a/wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h
+++ b/wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h
@@ -1,6 +1,6 @@
/* pic32mz-crypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/psa/psa.h b/wolfssl/wolfcrypt/port/psa/psa.h
index fc6dc7536b..59e650f8db 100644
--- a/wolfssl/wolfcrypt/port/psa/psa.h
+++ b/wolfssl/wolfcrypt/port/psa/psa.h
@@ -1,6 +1,6 @@
/* psa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/silabs/silabs_aes.h b/wolfssl/wolfcrypt/port/silabs/silabs_aes.h
index 114318363e..a6d39dbbd8 100644
--- a/wolfssl/wolfcrypt/port/silabs/silabs_aes.h
+++ b/wolfssl/wolfcrypt/port/silabs/silabs_aes.h
@@ -1,6 +1,6 @@
/* silabs_aes.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/silabs/silabs_ecc.h b/wolfssl/wolfcrypt/port/silabs/silabs_ecc.h
index feb48ec52f..4820b577fd 100644
--- a/wolfssl/wolfcrypt/port/silabs/silabs_ecc.h
+++ b/wolfssl/wolfcrypt/port/silabs/silabs_ecc.h
@@ -1,6 +1,6 @@
/* silabs_ecc.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/silabs/silabs_hash.h b/wolfssl/wolfcrypt/port/silabs/silabs_hash.h
index 9af6aeaa26..6da76ac7a9 100644
--- a/wolfssl/wolfcrypt/port/silabs/silabs_hash.h
+++ b/wolfssl/wolfcrypt/port/silabs/silabs_hash.h
@@ -1,6 +1,6 @@
/* silabs_hash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/silabs/silabs_random.h b/wolfssl/wolfcrypt/port/silabs/silabs_random.h
index ce31d7e512..280ef44d5d 100644
--- a/wolfssl/wolfcrypt/port/silabs/silabs_random.h
+++ b/wolfssl/wolfcrypt/port/silabs/silabs_random.h
@@ -1,6 +1,6 @@
/* silabs_random.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/st/stm32.h b/wolfssl/wolfcrypt/port/st/stm32.h
index e1ec099334..8d1a09c274 100644
--- a/wolfssl/wolfcrypt/port/st/stm32.h
+++ b/wolfssl/wolfcrypt/port/st/stm32.h
@@ -1,6 +1,6 @@
/* stm32.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/st/stsafe.h b/wolfssl/wolfcrypt/port/st/stsafe.h
index d7a16253fc..d8e11d3516 100644
--- a/wolfssl/wolfcrypt/port/st/stsafe.h
+++ b/wolfssl/wolfcrypt/port/st/stsafe.h
@@ -1,6 +1,6 @@
/* stsafe.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/ti/ti-ccm.h b/wolfssl/wolfcrypt/port/ti/ti-ccm.h
index 8c90947b09..a9fb8bc254 100644
--- a/wolfssl/wolfcrypt/port/ti/ti-ccm.h
+++ b/wolfssl/wolfcrypt/port/ti/ti-ccm.h
@@ -1,6 +1,6 @@
/* port/ti/ti_ccm.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/ti/ti-hash.h b/wolfssl/wolfcrypt/port/ti/ti-hash.h
index 4bdf886585..1395e769d9 100644
--- a/wolfssl/wolfcrypt/port/ti/ti-hash.h
+++ b/wolfssl/wolfcrypt/port/ti/ti-hash.h
@@ -1,6 +1,6 @@
/* port/ti/ti-hash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h b/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h
index da989454d2..433b73abe1 100644
--- a/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h
+++ b/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h
@@ -1,6 +1,6 @@
/* xil-sha3.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/xilinx/xil-versal-glue.h b/wolfssl/wolfcrypt/port/xilinx/xil-versal-glue.h
index 49399e792e..1cb351830e 100644
--- a/wolfssl/wolfcrypt/port/xilinx/xil-versal-glue.h
+++ b/wolfssl/wolfcrypt/port/xilinx/xil-versal-glue.h
@@ -1,6 +1,6 @@
/* xil-versal-glue.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/port/xilinx/xil-versal-trng.h b/wolfssl/wolfcrypt/port/xilinx/xil-versal-trng.h
index b99679b79b..2015315708 100644
--- a/wolfssl/wolfcrypt/port/xilinx/xil-versal-trng.h
+++ b/wolfssl/wolfcrypt/port/xilinx/xil-versal-trng.h
@@ -1,6 +1,6 @@
/* xil-versal-trng.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/pwdbased.h b/wolfssl/wolfcrypt/pwdbased.h
index 945c952e77..fb75f4493b 100644
--- a/wolfssl/wolfcrypt/pwdbased.h
+++ b/wolfssl/wolfcrypt/pwdbased.h
@@ -1,6 +1,6 @@
/* pwdbased.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/random.h b/wolfssl/wolfcrypt/random.h
index 7f90c6e307..94a7105447 100644
--- a/wolfssl/wolfcrypt/random.h
+++ b/wolfssl/wolfcrypt/random.h
@@ -1,6 +1,6 @@
/* random.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/rc2.h b/wolfssl/wolfcrypt/rc2.h
index d5b3e067f1..2d1950e75b 100644
--- a/wolfssl/wolfcrypt/rc2.h
+++ b/wolfssl/wolfcrypt/rc2.h
@@ -1,6 +1,6 @@
/* rc2.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/ripemd.h b/wolfssl/wolfcrypt/ripemd.h
index cd01d06731..3e1d5b41a1 100644
--- a/wolfssl/wolfcrypt/ripemd.h
+++ b/wolfssl/wolfcrypt/ripemd.h
@@ -1,6 +1,6 @@
/* ripemd.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/rsa.h b/wolfssl/wolfcrypt/rsa.h
index 9de7202493..1db563ed3f 100644
--- a/wolfssl/wolfcrypt/rsa.h
+++ b/wolfssl/wolfcrypt/rsa.h
@@ -1,6 +1,6 @@
/* rsa.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sakke.h b/wolfssl/wolfcrypt/sakke.h
index e82bb0c8be..27c69a5d1b 100644
--- a/wolfssl/wolfcrypt/sakke.h
+++ b/wolfssl/wolfcrypt/sakke.h
@@ -1,6 +1,6 @@
/* sakke.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/selftest.h b/wolfssl/wolfcrypt/selftest.h
index 00ee40be50..a0c7c0eaea 100644
--- a/wolfssl/wolfcrypt/selftest.h
+++ b/wolfssl/wolfcrypt/selftest.h
@@ -1,6 +1,6 @@
/* selftest.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h
index 64fee80406..149e11633f 100644
--- a/wolfssl/wolfcrypt/settings.h
+++ b/wolfssl/wolfcrypt/settings.h
@@ -1,6 +1,6 @@
/* settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sha.h b/wolfssl/wolfcrypt/sha.h
index 815cc34553..d661fe8a0b 100644
--- a/wolfssl/wolfcrypt/sha.h
+++ b/wolfssl/wolfcrypt/sha.h
@@ -1,6 +1,6 @@
/* sha.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sha256.h b/wolfssl/wolfcrypt/sha256.h
index 66165a4be4..a0e9d4a750 100644
--- a/wolfssl/wolfcrypt/sha256.h
+++ b/wolfssl/wolfcrypt/sha256.h
@@ -1,6 +1,6 @@
/* sha256.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sha3.h b/wolfssl/wolfcrypt/sha3.h
index 9d13f28f8a..571aaa0692 100644
--- a/wolfssl/wolfcrypt/sha3.h
+++ b/wolfssl/wolfcrypt/sha3.h
@@ -1,6 +1,6 @@
/* sha3.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sha512.h b/wolfssl/wolfcrypt/sha512.h
index 45e045e03a..93c711b69c 100644
--- a/wolfssl/wolfcrypt/sha512.h
+++ b/wolfssl/wolfcrypt/sha512.h
@@ -1,6 +1,6 @@
/* sha512.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/signature.h b/wolfssl/wolfcrypt/signature.h
index 7097ec0cd6..ca641571ca 100644
--- a/wolfssl/wolfcrypt/signature.h
+++ b/wolfssl/wolfcrypt/signature.h
@@ -1,6 +1,6 @@
/* signature.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/siphash.h b/wolfssl/wolfcrypt/siphash.h
index c86155e28c..64931c36c5 100644
--- a/wolfssl/wolfcrypt/siphash.h
+++ b/wolfssl/wolfcrypt/siphash.h
@@ -1,6 +1,6 @@
/* siphash.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sp.h b/wolfssl/wolfcrypt/sp.h
index c046b41fab..f9382eb6e5 100644
--- a/wolfssl/wolfcrypt/sp.h
+++ b/wolfssl/wolfcrypt/sp.h
@@ -1,6 +1,6 @@
/* sp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sp_int.h b/wolfssl/wolfcrypt/sp_int.h
index 41ed2b895e..2849403275 100644
--- a/wolfssl/wolfcrypt/sp_int.h
+++ b/wolfssl/wolfcrypt/sp_int.h
@@ -1,6 +1,6 @@
/* sp_int.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/sphincs.h b/wolfssl/wolfcrypt/sphincs.h
index a927a22343..c1f558f963 100644
--- a/wolfssl/wolfcrypt/sphincs.h
+++ b/wolfssl/wolfcrypt/sphincs.h
@@ -1,6 +1,6 @@
/* sphincs.h
*
- * Copyright (C) 2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/srp.h b/wolfssl/wolfcrypt/srp.h
index 0545c934ea..8b1d171637 100644
--- a/wolfssl/wolfcrypt/srp.h
+++ b/wolfssl/wolfcrypt/srp.h
@@ -1,6 +1,6 @@
/* srp.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/tfm.h b/wolfssl/wolfcrypt/tfm.h
index 9d5bf4a1cb..f7a7f22793 100644
--- a/wolfssl/wolfcrypt/tfm.h
+++ b/wolfssl/wolfcrypt/tfm.h
@@ -1,6 +1,6 @@
/* tfm.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h
index cb5d55bb07..73dcc045b2 100644
--- a/wolfssl/wolfcrypt/types.h
+++ b/wolfssl/wolfcrypt/types.h
@@ -1,6 +1,6 @@
/* types.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/visibility.h b/wolfssl/wolfcrypt/visibility.h
index 7db963a570..68b9b76e4d 100644
--- a/wolfssl/wolfcrypt/visibility.h
+++ b/wolfssl/wolfcrypt/visibility.h
@@ -1,6 +1,6 @@
/* visibility.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/wc_encrypt.h b/wolfssl/wolfcrypt/wc_encrypt.h
index d118c35ed6..b6591ffaff 100644
--- a/wolfssl/wolfcrypt/wc_encrypt.h
+++ b/wolfssl/wolfcrypt/wc_encrypt.h
@@ -1,6 +1,6 @@
/* wc_encrypt.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/wc_pkcs11.h b/wolfssl/wolfcrypt/wc_pkcs11.h
index 29464e5a6f..85717c2404 100644
--- a/wolfssl/wolfcrypt/wc_pkcs11.h
+++ b/wolfssl/wolfcrypt/wc_pkcs11.h
@@ -1,6 +1,6 @@
/* wc_pkcs11.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h
index b5bdbba4c9..11354d0d91 100644
--- a/wolfssl/wolfcrypt/wc_port.h
+++ b/wolfssl/wolfcrypt/wc_port.h
@@ -1,6 +1,6 @@
/* wc_port.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/wolfevent.h b/wolfssl/wolfcrypt/wolfevent.h
index 22daae8b87..31cc7c5c4c 100644
--- a/wolfssl/wolfcrypt/wolfevent.h
+++ b/wolfssl/wolfcrypt/wolfevent.h
@@ -1,6 +1,6 @@
/* wolfevent.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfcrypt/wolfmath.h b/wolfssl/wolfcrypt/wolfmath.h
index c578f9b8d1..7c1bb8cd61 100644
--- a/wolfssl/wolfcrypt/wolfmath.h
+++ b/wolfssl/wolfcrypt/wolfmath.h
@@ -1,6 +1,6 @@
/* wolfmath.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wolfssl/wolfio.h b/wolfssl/wolfio.h
index a575711b64..f0d9fd5d38 100644
--- a/wolfssl/wolfio.h
+++ b/wolfssl/wolfio.h
@@ -1,6 +1,6 @@
/* io.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs b/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs
index 77a813798c..33cb68f08d 100644
--- a/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs
+++ b/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs
@@ -1,6 +1,6 @@
/* wolfSSL-DTLS-PSK-Server.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs b/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs
index da596e5de6..624300c022 100644
--- a/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs
+++ b/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs
@@ -1,6 +1,6 @@
/* wolfSSL-DTLS-Server.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs b/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs
index fc5e15ff2b..edf9d8e719 100644
--- a/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs
+++ b/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs
@@ -1,6 +1,6 @@
/* wolfSSL-Example-IOCallbacks.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs b/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs
index a2cc127207..1207d30944 100644
--- a/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs
+++ b/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs
@@ -1,6 +1,6 @@
/* wolfSSL-TLS-Client.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-TLS-PSK-Client/wolfSSL-TLS-PSK-Client.cs b/wrapper/CSharp/wolfSSL-TLS-PSK-Client/wolfSSL-TLS-PSK-Client.cs
index 5e2537a67e..73266d9d50 100644
--- a/wrapper/CSharp/wolfSSL-TLS-PSK-Client/wolfSSL-TLS-PSK-Client.cs
+++ b/wrapper/CSharp/wolfSSL-TLS-PSK-Client/wolfSSL-TLS-PSK-Client.cs
@@ -1,6 +1,6 @@
/* wolfSSL-TLS-PSK-Client.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs b/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs
index 3679028d83..ca8b2cf3ae 100644
--- a/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs
+++ b/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs
@@ -1,6 +1,6 @@
/* wolfSSL-TLS-PSK-Server.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs b/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs
index adbfcdd546..6a0234b7c5 100644
--- a/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs
+++ b/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs
@@ -1,6 +1,6 @@
/* wolfSSL-TLS-Server.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs b/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs
index eed6614797..546a3b76be 100644
--- a/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs
+++ b/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs
@@ -1,6 +1,6 @@
/* wolfSSL-TLS-ServerThreaded.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs b/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs
index d6fbba8783..d658155864 100644
--- a/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs
+++ b/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs
@@ -1,6 +1,6 @@
/* wolfSSL.cs
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/zephyr/nrf5340dk_nrf5340_user_settings.h b/zephyr/nrf5340dk_nrf5340_user_settings.h
index 75afd020e2..a10b54bd23 100644
--- a/zephyr/nrf5340dk_nrf5340_user_settings.h
+++ b/zephyr/nrf5340dk_nrf5340_user_settings.h
@@ -1,6 +1,6 @@
/* nrf5340dk_nrf5340_user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/zephyr/samples/wolfssl_tls_sock/src/tls_sock.c b/zephyr/samples/wolfssl_tls_sock/src/tls_sock.c
index 5e2ca0c49d..59cf271b58 100644
--- a/zephyr/samples/wolfssl_tls_sock/src/tls_sock.c
+++ b/zephyr/samples/wolfssl_tls_sock/src/tls_sock.c
@@ -1,6 +1,6 @@
/* tls_sock.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/zephyr/samples/wolfssl_tls_thread/src/tls_threaded.c b/zephyr/samples/wolfssl_tls_thread/src/tls_threaded.c
index a03d515dda..ae14888607 100644
--- a/zephyr/samples/wolfssl_tls_thread/src/tls_threaded.c
+++ b/zephyr/samples/wolfssl_tls_thread/src/tls_threaded.c
@@ -1,6 +1,6 @@
/* tls_threaded.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/zephyr/user_settings-tls-generic.h b/zephyr/user_settings-tls-generic.h
index 4f0a5846a3..1ebad1e744 100644
--- a/zephyr/user_settings-tls-generic.h
+++ b/zephyr/user_settings-tls-generic.h
@@ -1,7 +1,7 @@
/* user_settings-tls-generic.h
* generated from configure options
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/zephyr/user_settings.h b/zephyr/user_settings.h
index 97dccda2c6..f5b00526df 100644
--- a/zephyr/user_settings.h
+++ b/zephyr/user_settings.h
@@ -1,6 +1,6 @@
/* user_settings.h
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
diff --git a/zephyr/zephyr_init.c b/zephyr/zephyr_init.c
index 1e3e8aca56..b0bb4e6aff 100644
--- a/zephyr/zephyr_init.c
+++ b/zephyr/zephyr_init.c
@@ -1,6 +1,6 @@
/* zephyr_init.c
*
- * Copyright (C) 2006-2022 wolfSSL Inc.
+ * Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*