Compare commits

...

8 Commits

Author SHA1 Message Date
Anthony Roberts faf154ff19
Merge 2775bcb423 into 296f1f6dd8 2025-07-31 06:55:09 +01:00
Michael Baentsch 296f1f6dd8 Remove unnecessary OPENSSL_NO_RSA remnants
GitHub CI / check_update (push) Waiting to run Details
GitHub CI / check_docs (push) Waiting to run Details
GitHub CI / check-c99 (push) Waiting to run Details
GitHub CI / basic_gcc (push) Waiting to run Details
GitHub CI / basic_clang (push) Waiting to run Details
GitHub CI / linux-arm64 (push) Waiting to run Details
GitHub CI / freebsd-x86_64 (push) Waiting to run Details
GitHub CI / minimal (push) Waiting to run Details
GitHub CI / no-deprecated (push) Waiting to run Details
GitHub CI / no-shared-ubuntu (push) Waiting to run Details
GitHub CI / no-shared-macos (macos-13) (push) Waiting to run Details
GitHub CI / no-shared-macos (macos-14) (push) Waiting to run Details
GitHub CI / non-caching (push) Waiting to run Details
GitHub CI / address_ub_sanitizer (push) Waiting to run Details
GitHub CI / fuzz_tests (push) Waiting to run Details
GitHub CI / memory_sanitizer (push) Waiting to run Details
GitHub CI / threads_sanitizer (push) Waiting to run Details
GitHub CI / enable_non-default_options (push) Waiting to run Details
GitHub CI / full_featured (push) Waiting to run Details
GitHub CI / no-legacy (push) Waiting to run Details
GitHub CI / legacy (push) Waiting to run Details
GitHub CI / out-of-readonly-source-and-install-ubuntu (push) Waiting to run Details
GitHub CI / out-of-readonly-source-and-install-macos (macos-13) (push) Waiting to run Details
GitHub CI / out-of-readonly-source-and-install-macos (macos-14) (push) Waiting to run Details
GitHub CI / external-tests-misc (push) Waiting to run Details
GitHub CI / external-tests-oqs-provider (push) Waiting to run Details
GitHub CI / external-tests-pkcs11-provider (push) Waiting to run Details
GitHub CI / external-tests-pyca (3.9) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-11 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-12 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-13 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-14 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-15 distro:ubuntu-22.04 llvm-ppa-name:jammy]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-16 distro:ubuntu-22.04 llvm-ppa-name:jammy]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-17 distro:ubuntu-22.04 llvm-ppa-name:jammy]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-10 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-11 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-12 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-13 distro:ubuntu-22.04 gcc-ppa-name:ubuntu-toolchain-r/test]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-9 distro:ubuntu-22.04]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:aarch64-linux-gnu fips:no libs:libc6-dev-arm64-cross target:linux-aarch64]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:alpha-linux-gnu fips:no libs:libc6.1-dev-alpha-cross target:linux-alpha-gcc]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:arm-linux-gnueabi fips:no libs:libc6-dev-armel-cross target:linux-armv4 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:arm-linux-gnueabihf fips:no libs:libc6-dev-armhf-cross target:linux-armv4 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:hppa-linux-gnu fips:no libs:libc6-dev-hppa-cross target:-static -O1 linux-generic32 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:hppa-linux-gnu libs:libc6-dev-hppa-cross target:linux-generic32 tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:i386-pc-msdosdjgpp libs:libc-djgpp-dev libwatt-djgpp-dev djgpp-utils ppa:jwt27/djgpp-toolchain target:no-threads 386 DJGPP tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:m68k-linux-gnu fips:no libs:libc6-dev-m68k-cross target:-static -m68040 linux-latomic -Wno-stringop-overflow tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:m68k-linux-gnu libs:libc6-dev-m68k-cross target:-mcfv4e -mxgot linux-latomic -Wno-stringop-overflow no-quic tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips-linux-gnu fips:no libs:libc6-dev-mips-cross target:-static linux-mips32 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips-linux-gnu libs:libc6-dev-mips-cross target:linux-mips32 tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips64-linux-gnuabi64 fips:no libs:libc6-dev-mips64-cross target:-static linux64-mips64]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips64-linux-gnuabi64 libs:libc6-dev-mips64-cross target:linux64-mips64 tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mipsel-linux-gnu fips:no libs:libc6-dev-mipsel-cross target:linux-mips32 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:powerpc64le-linux-gnu fips:no libs:libc6-dev-ppc64el-cross target:linux-ppc64le]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross target:linux64-riscv64]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:s390x-linux-gnu fips:no libs:libc6-dev-s390x-cross target:linux64-s390x]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:sh4-linux-gnu fips:no libs:libc6-dev-sh4-cross target:no-async linux-latomic tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:sparc64-linux-gnu libs:libc6-dev-sparc64-cross target:linux64-sparcv9 tests:none]) (push) Waiting to run Details
Fuzz-checker CI / fuzz-checker (map[cc:afl-clang-fast config:enable-fuzz-afl no-module install:afl++ name:AFL]) (push) Waiting to run Details
Fuzz-checker CI / fuzz-checker (map[cc:clang-18 config:enable-fuzz-libfuzzer enable-asan enable-ubsan -fno-sanitize=function -fsanitize-coverage=trace-cmp -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION extra:enable-fips enable-lms enable-ec_nistp_64_gcc_128 -fno-sanitize=al… (push) Waiting to run Details
Fuzz-checker CI / fuzz-checker (map[cc:clang-18 config:enable-fuzz-libfuzzer enable-asan enable-ubsan -fno-sanitize=function install:libfuzzer-18-dev libs:--with-fuzzer-lib=/usr/lib/llvm-18/lib/libFuzzer.a --with-fuzzer-include=/usr/include/clang/18/include/fuzzer linke… (push) Waiting to run Details
CIFuzz / Fuzzing (push) Waiting to run Details
Perl-minimal-checker CI / perl-minimal-checker (push) Waiting to run Details
Run-checker CI / run-checker (enable-trace enable-fips) (push) Waiting to run Details
Run-checker CI / run-checker (no-cmp) (push) Waiting to run Details
Run-checker CI / run-checker (no-cms) (push) Waiting to run Details
Run-checker CI / run-checker (no-default-thread-pool) (push) Waiting to run Details
Run-checker CI / run-checker (no-dgram) (push) Waiting to run Details
Run-checker CI / run-checker (no-dh) (push) Waiting to run Details
Run-checker CI / run-checker (no-dtls) (push) Waiting to run Details
Run-checker CI / run-checker (no-ec) (push) Waiting to run Details
Run-checker CI / run-checker (no-ecx) (push) Waiting to run Details
Run-checker CI / run-checker (no-http) (push) Waiting to run Details
Run-checker CI / run-checker (no-legacy) (push) Waiting to run Details
Run-checker CI / run-checker (no-ml-dsa) (push) Waiting to run Details
Run-checker CI / run-checker (no-ml-kem) (push) Waiting to run Details
Run-checker CI / run-checker (no-quic) (push) Waiting to run Details
Run-checker CI / run-checker (no-sm2) (push) Waiting to run Details
Run-checker CI / run-checker (no-sock) (push) Waiting to run Details
Run-checker CI / run-checker (no-stdio) (push) Waiting to run Details
Run-checker CI / run-checker (no-thread-pool) (push) Waiting to run Details
Run-checker CI / run-checker (no-threads) (push) Waiting to run Details
Run-checker CI / run-checker (no-tls) (push) Waiting to run Details
Run-checker CI / run-checker (no-tls1_2) (push) Waiting to run Details
Run-checker CI / run-checker (no-tls1_3) (push) Waiting to run Details
Run-checker CI / run-checker (no-ui) (push) Waiting to run Details
Run-checker merge / run-checker (enable-asan enable-ubsan no-shared no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=function) (push) Waiting to run Details
Run-checker merge / run-checker (enable-pie) (push) Waiting to run Details
Run-checker merge / run-checker (enable-ubsan no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=function) (push) Waiting to run Details
Run-checker merge / run-checker (enable-weak-ssl-ciphers) (push) Waiting to run Details
Run-checker merge / run-checker (enable-zlib) (push) Waiting to run Details
Run-checker merge / run-checker (no-dso) (push) Waiting to run Details
Run-checker merge / run-checker (no-dynamic-engine) (push) Waiting to run Details
Run-checker merge / run-checker (no-ec2m enable-fips) (push) Waiting to run Details
Run-checker merge / run-checker (no-engine no-shared) (push) Waiting to run Details
Run-checker merge / run-checker (no-err) (push) Waiting to run Details
Run-checker merge / run-checker (no-filenames) (push) Waiting to run Details
Run-checker merge / run-checker (no-integrity-only-ciphers) (push) Waiting to run Details
Run-checker merge / run-checker (no-module) (push) Waiting to run Details
Run-checker merge / run-checker (no-ocsp) (push) Waiting to run Details
Run-checker merge / run-checker (no-pinshared) (push) Waiting to run Details
Run-checker merge / run-checker (no-srp) (push) Waiting to run Details
Run-checker merge / run-checker (no-srtp) (push) Waiting to run Details
Run-checker merge / run-checker (no-ts) (push) Waiting to run Details
Run-checker merge / jitter (push) Waiting to run Details
Run-checker merge / threads_sanitizer_atomic_fallback (push) Waiting to run Details
Windows GitHub CI / shared (map[arch:amd64 config:enable-lms enable-fips no-thread-pool no-quic os:windows-2025 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Waiting to run Details
Windows GitHub CI / shared (map[arch:amd64 config:enable-lms enable-fips os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Waiting to run Details
Windows GitHub CI / shared (map[arch:x86 config:--strict-warnings no-fips enable-lms os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat]) (push) Waiting to run Details
Windows GitHub CI / plain (push) Waiting to run Details
Windows GitHub CI / minimal (push) Waiting to run Details
Windows GitHub CI / cygwin (windows-2022, map[arch:win64 config:-DCMAKE_C_COMPILER=gcc --strict-warnings enable-demos no-fips]) (push) Waiting to run Details
Trigger docs.openssl.org deployment / trigger (push) Has been cancelled Details
Windows Compression GitHub CI / zstd (push) Has been cancelled Details
Windows Compression GitHub CI / brotli (push) Has been cancelled Details
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28113)
2025-07-30 18:36:26 +02:00
Michael Baentsch fd7fc90346 fuzz/dtlsserver.c: Remove incorrect ifdef guard
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28102)
2025-07-30 18:31:47 +02:00
Tomas Mraz fcb5e20ac7 test_tlsext_status_type(): Avoid leaking of previously allocated data
Fixes Coverity 1659226, 1659224, 1659223

Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28105)
2025-07-30 18:29:33 +02:00
Ingo Franzki b9ff440dd6 Only report generic error if provider did not put an error on the error queue
Commit 72351b0d18 added code to unconditionally
put a generic error onto the error stack, if key generation, encryption,
decryption, sign, or verify fails to ensure that there is an error entry
on the error queue, even if the provider did not itself put a specific error
onto the queue.

However, this can hide error details if an application just looks at the very
last error entry and checks for specific errors. Now, the generic error is
always the last entry, and the application won't find the expected error
entry, although it would be there as second last entry. This can lead to
different application behavior in error situations than before this change.

To fix this, only add the generic error entry if the provider did not itself
add an error entry onto the queue. That way, there always is an error on the
error queue in case of a failure, but no behavior change in case the provider
emitted the error entry itself.

Closes: https://github.com/openssl/openssl/issues/27992

Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28073)
2025-07-30 18:27:08 +02:00
Ingo Franzki f77fafd16e Make ERR_count_to_mark() available to providers via 'in' dispatch array
Functions like ERR_set_mark(), ERR_clear_last_mark(), and ERR_pop_to_mark()
are already passed to the a provider via the 'in' dispatch array of the
provider initialization function (although the documentation did not
mention them).

Also pass ERR_count_to_mark() to the provider the same way, and update
the documentation to mention all four functions.

Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28073)
2025-07-30 18:27:08 +02:00
Eugene Syromiatnikov f12f8cc035 Fix hanging of test_external_cf_quiche
GitHub CI / check_update (push) Waiting to run Details
GitHub CI / check_docs (push) Waiting to run Details
GitHub CI / check-c99 (push) Waiting to run Details
GitHub CI / basic_gcc (push) Waiting to run Details
GitHub CI / basic_clang (push) Waiting to run Details
GitHub CI / linux-arm64 (push) Waiting to run Details
GitHub CI / freebsd-x86_64 (push) Waiting to run Details
GitHub CI / minimal (push) Waiting to run Details
GitHub CI / no-deprecated (push) Waiting to run Details
GitHub CI / no-shared-ubuntu (push) Waiting to run Details
GitHub CI / no-shared-macos (macos-13) (push) Waiting to run Details
GitHub CI / no-shared-macos (macos-14) (push) Waiting to run Details
GitHub CI / non-caching (push) Waiting to run Details
GitHub CI / address_ub_sanitizer (push) Waiting to run Details
GitHub CI / fuzz_tests (push) Waiting to run Details
GitHub CI / memory_sanitizer (push) Waiting to run Details
GitHub CI / threads_sanitizer (push) Waiting to run Details
GitHub CI / enable_non-default_options (push) Waiting to run Details
GitHub CI / full_featured (push) Waiting to run Details
GitHub CI / no-legacy (push) Waiting to run Details
GitHub CI / legacy (push) Waiting to run Details
GitHub CI / out-of-readonly-source-and-install-ubuntu (push) Waiting to run Details
GitHub CI / out-of-readonly-source-and-install-macos (macos-13) (push) Waiting to run Details
GitHub CI / out-of-readonly-source-and-install-macos (macos-14) (push) Waiting to run Details
GitHub CI / external-tests-misc (push) Waiting to run Details
GitHub CI / external-tests-oqs-provider (push) Waiting to run Details
GitHub CI / external-tests-pkcs11-provider (push) Waiting to run Details
GitHub CI / external-tests-pyca (3.9) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-11 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-12 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-13 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-14 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-15 distro:ubuntu-22.04 llvm-ppa-name:jammy]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-16 distro:ubuntu-22.04 llvm-ppa-name:jammy]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:clang-17 distro:ubuntu-22.04 llvm-ppa-name:jammy]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-10 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-11 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-12 distro:ubuntu-22.04]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-13 distro:ubuntu-22.04 gcc-ppa-name:ubuntu-toolchain-r/test]) (push) Waiting to run Details
Compiler Zoo CI / compiler (map[cc:gcc-9 distro:ubuntu-22.04]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:aarch64-linux-gnu fips:no libs:libc6-dev-arm64-cross target:linux-aarch64]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:alpha-linux-gnu fips:no libs:libc6.1-dev-alpha-cross target:linux-alpha-gcc]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:arm-linux-gnueabi fips:no libs:libc6-dev-armel-cross target:linux-armv4 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:arm-linux-gnueabihf fips:no libs:libc6-dev-armhf-cross target:linux-armv4 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:hppa-linux-gnu fips:no libs:libc6-dev-hppa-cross target:-static -O1 linux-generic32 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:hppa-linux-gnu libs:libc6-dev-hppa-cross target:linux-generic32 tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:i386-pc-msdosdjgpp libs:libc-djgpp-dev libwatt-djgpp-dev djgpp-utils ppa:jwt27/djgpp-toolchain target:no-threads 386 DJGPP tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:m68k-linux-gnu fips:no libs:libc6-dev-m68k-cross target:-static -m68040 linux-latomic -Wno-stringop-overflow tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:m68k-linux-gnu libs:libc6-dev-m68k-cross target:-mcfv4e -mxgot linux-latomic -Wno-stringop-overflow no-quic tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips-linux-gnu fips:no libs:libc6-dev-mips-cross target:-static linux-mips32 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips-linux-gnu libs:libc6-dev-mips-cross target:linux-mips32 tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips64-linux-gnuabi64 fips:no libs:libc6-dev-mips64-cross target:-static linux64-mips64]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mips64-linux-gnuabi64 libs:libc6-dev-mips64-cross target:linux64-mips64 tests:none]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:mipsel-linux-gnu fips:no libs:libc6-dev-mipsel-cross target:linux-mips32 tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:powerpc64le-linux-gnu fips:no libs:libc6-dev-ppc64el-cross target:linux-ppc64le]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross target:linux64-riscv64]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:s390x-linux-gnu fips:no libs:libc6-dev-s390x-cross target:linux64-s390x]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:sh4-linux-gnu fips:no libs:libc6-dev-sh4-cross target:no-async linux-latomic tests:-test_includes -test_store -test_x509_store]) (push) Waiting to run Details
Cross Compile / cross-compilation (map[arch:sparc64-linux-gnu libs:libc6-dev-sparc64-cross target:linux64-sparcv9 tests:none]) (push) Waiting to run Details
Trigger docs.openssl.org deployment / trigger (push) Waiting to run Details
Fuzz-checker CI / fuzz-checker (map[cc:afl-clang-fast config:enable-fuzz-afl no-module install:afl++ name:AFL]) (push) Waiting to run Details
Fuzz-checker CI / fuzz-checker (map[cc:clang-18 config:enable-fuzz-libfuzzer enable-asan enable-ubsan -fno-sanitize=function -fsanitize-coverage=trace-cmp -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION extra:enable-fips enable-lms enable-ec_nistp_64_gcc_128 -fno-sanitize=al… (push) Waiting to run Details
Fuzz-checker CI / fuzz-checker (map[cc:clang-18 config:enable-fuzz-libfuzzer enable-asan enable-ubsan -fno-sanitize=function install:libfuzzer-18-dev libs:--with-fuzzer-lib=/usr/lib/llvm-18/lib/libFuzzer.a --with-fuzzer-include=/usr/include/clang/18/include/fuzzer linke… (push) Waiting to run Details
CIFuzz / Fuzzing (push) Waiting to run Details
Perl-minimal-checker CI / perl-minimal-checker (push) Waiting to run Details
Run-checker CI / run-checker (enable-trace enable-fips) (push) Waiting to run Details
Run-checker CI / run-checker (no-cmp) (push) Waiting to run Details
Run-checker CI / run-checker (no-cms) (push) Waiting to run Details
Run-checker CI / run-checker (no-default-thread-pool) (push) Waiting to run Details
Run-checker CI / run-checker (no-dgram) (push) Waiting to run Details
Run-checker CI / run-checker (no-dh) (push) Waiting to run Details
Run-checker CI / run-checker (no-dtls) (push) Waiting to run Details
Run-checker CI / run-checker (no-ec) (push) Waiting to run Details
Run-checker CI / run-checker (no-ecx) (push) Waiting to run Details
Run-checker CI / run-checker (no-http) (push) Waiting to run Details
Run-checker CI / run-checker (no-legacy) (push) Waiting to run Details
Run-checker CI / run-checker (no-ml-dsa) (push) Waiting to run Details
Run-checker CI / run-checker (no-ml-kem) (push) Waiting to run Details
Run-checker CI / run-checker (no-quic) (push) Waiting to run Details
Run-checker CI / run-checker (no-sm2) (push) Waiting to run Details
Run-checker CI / run-checker (no-sock) (push) Waiting to run Details
Run-checker CI / run-checker (no-stdio) (push) Waiting to run Details
Run-checker CI / run-checker (no-thread-pool) (push) Waiting to run Details
Run-checker CI / run-checker (no-threads) (push) Waiting to run Details
Run-checker CI / run-checker (no-tls) (push) Waiting to run Details
Run-checker CI / run-checker (no-tls1_2) (push) Waiting to run Details
Run-checker CI / run-checker (no-tls1_3) (push) Waiting to run Details
Run-checker CI / run-checker (no-ui) (push) Waiting to run Details
Run-checker merge / run-checker (enable-asan enable-ubsan no-shared no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=function) (push) Waiting to run Details
Run-checker merge / run-checker (enable-pie) (push) Waiting to run Details
Run-checker merge / run-checker (enable-ubsan no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=function) (push) Waiting to run Details
Run-checker merge / run-checker (enable-weak-ssl-ciphers) (push) Waiting to run Details
Run-checker merge / run-checker (enable-zlib) (push) Waiting to run Details
Run-checker merge / run-checker (no-dso) (push) Waiting to run Details
Run-checker merge / run-checker (no-dynamic-engine) (push) Waiting to run Details
Run-checker merge / run-checker (no-ec2m enable-fips) (push) Waiting to run Details
Run-checker merge / run-checker (no-engine no-shared) (push) Waiting to run Details
Run-checker merge / run-checker (no-err) (push) Waiting to run Details
Run-checker merge / run-checker (no-filenames) (push) Waiting to run Details
Run-checker merge / run-checker (no-integrity-only-ciphers) (push) Waiting to run Details
Run-checker merge / run-checker (no-module) (push) Waiting to run Details
Run-checker merge / run-checker (no-ocsp) (push) Waiting to run Details
Run-checker merge / run-checker (no-pinshared) (push) Waiting to run Details
Run-checker merge / run-checker (no-srp) (push) Waiting to run Details
Run-checker merge / run-checker (no-srtp) (push) Waiting to run Details
Run-checker merge / run-checker (no-ts) (push) Waiting to run Details
Run-checker merge / jitter (push) Waiting to run Details
Run-checker merge / threads_sanitizer_atomic_fallback (push) Waiting to run Details
Windows GitHub CI / shared (map[arch:amd64 config:enable-lms enable-fips no-thread-pool no-quic os:windows-2025 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Waiting to run Details
Windows GitHub CI / shared (map[arch:amd64 config:enable-lms enable-fips os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Waiting to run Details
Windows GitHub CI / shared (map[arch:x86 config:--strict-warnings no-fips enable-lms os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat]) (push) Waiting to run Details
Windows GitHub CI / plain (push) Waiting to run Details
Windows GitHub CI / minimal (push) Waiting to run Details
Windows GitHub CI / cygwin (windows-2022, map[arch:win64 config:-DCMAKE_C_COMPILER=gcc --strict-warnings enable-demos no-fips]) (push) Waiting to run Details
Windows Compression GitHub CI / zstd (push) Waiting to run Details
Windows Compression GitHub CI / brotli (push) Waiting to run Details
The commit "Remove HARNESS_OSSL_PREFIX manipulation in the test harness"
forced all the output to be processed by the test harness, which means
that any process that keeps the stdout FD open prevents the run() call
from finishing, as was the case in the test_external_cf_quiche test that
ran quiche server in the background, but retaining the std{in,out,err}
descriptors.  Avoid that by explicitly redirecting them to a log file.

Reported-by: Tomas Mraz <tomas@openssl.org>
Fixes: 70c05fcde5 "Remove HARNESS_OSSL_PREFIX manipulation in the test harness"
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28125)
2025-07-30 16:04:55 +02:00
Anthony Roberts 2775bcb423 Fix `VC-WIN64-CLANGASM-ARM` target
This was broken for Windows ARM64 in #22949

The comments were in the wrong format, and a define check of `_M_ARM64` was missed in places
2025-07-04 10:09:19 +01:00
19 changed files with 360 additions and 269 deletions

View File

@ -93,7 +93,6 @@ EOF
my %cmd_disabler = (
ciphers => "sock",
genrsa => "rsa",
gendsa => "dsa",
dsaparam => "dsa",
gendh => "dh",
@ -107,7 +106,7 @@ EOF
# [2] = preprocessor conditional for excluding irrespective of deprecation
# rsa => [ "pkey", "3_0", "rsa" ],
# genrsa => [ "genpkey", "3_0", "rsa" ],
rsautl => [ "pkeyutl", "3_0", "rsa" ],
rsautl => [ "pkeyutl", "3_0", "" ],
# dhparam => [ "pkeyparam", "3_0", "dh" ],
# dsaparam => [ "pkeyparam", "3_0", "dsa" ],
# dsa => [ "pkey", "3_0", "dsa" ],

View File

@ -32,7 +32,7 @@ open OUT,"| \"$^X\" $xlate $flavour \"$output\""
$code=<<___;
#include "arm_arch.h"
# Theses are offsets into the CIPH_DIGEST struct
// These are offsets into the CIPH_DIGEST struct
#define CIPHER_KEY 0
#define CIPHER_KEY_ROUNDS 8
#define CIPHER_IV 16
@ -149,68 +149,70 @@ ___
}
$code.=<<___;
# Description:
#
# Combined Enc/Auth Primitive = aes128cbc/sha1_hmac
#
# Operations:
#
# out = encrypt-AES128CBC(in)
# return_hash_ptr = SHA1(o_key_pad | SHA1(i_key_pad | out))
#
# Prototype:
# int asm_aescbc_sha1_hmac(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
# uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
# CIPH_DIGEST *arg)
#
# Registers used:
#
# asm_aescbc_sha1_hmac(
# csrc, x0 (cipher src address)
# cdst, x1 (cipher dst address)
# clen x2 (cipher length)
# dsrc, x3 (digest src address)
# ddst, x4 (digest dst address)
# dlen, x5 (digest length)
# arg x6:
# arg->cipher.key (round keys)
# arg->cipher.key_rounds (key rounds)
# arg->cipher.iv (initialization vector)
# arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
# arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
# )
#
# Routine register definitions:
#
# v0 - v3 -- aes results
# v4 - v7 -- round consts for sha
# v8 - v18 -- round keys
# v19 -- temp register for SHA1
# v20 -- ABCD copy (q20)
# v21 -- sha working state (q21)
# v22 -- sha working state (q22)
# v23 -- temp register for SHA1
# v24 -- sha state ABCD
# v25 -- sha state E
# v26 -- sha block 0
# v27 -- sha block 1
# v28 -- sha block 2
# v29 -- sha block 3
# v30 -- reserved
# v31 -- reserved
#
# Constraints:
#
# The variable "clen" must be a multiple of 16, otherwise results are not
# defined. For AES partial blocks the user is required to pad the input
# to modulus 16 = 0.
# The variable "dlen" must be a multiple of 8 and greater or equal
# to "clen". This constraint is strictly related to the needs of the IPSec
# ESP packet. Encrypted payload is hashed along with the 8 byte ESP header,
# forming ICV. Speed gain is achieved by doing both things at the same time,
# hence lengths are required to match at least at the cipher level.
#
# Short lengths are not optimized at < 12 AES blocks
/*
* Description:
*
* Combined Enc/Auth Primitive = aes128cbc/sha1_hmac
*
* Operations:
*
* out = encrypt-AES128CBC(in)
* return_hash_ptr = SHA1(o_key_pad | SHA1(i_key_pad | out))
*
* Prototype:
* int asm_aescbc_sha1_hmac(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
* uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
* CIPH_DIGEST *arg)
*
* Registers used:
*
* asm_aescbc_sha1_hmac(
* csrc, x0 (cipher src address)
* cdst, x1 (cipher dst address)
* clen x2 (cipher length)
* dsrc, x3 (digest src address)
* ddst, x4 (digest dst address)
* dlen, x5 (digest length)
* arg x6:
* arg->cipher.key (round keys)
* arg->cipher.key_rounds (key rounds)
* arg->cipher.iv (initialization vector)
* arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
* arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
* )
*
* Routine register definitions:
*
* v0 - v3 -- aes results
* v4 - v7 -- round consts for sha
* v8 - v18 -- round keys
* v19 -- temp register for SHA1
* v20 -- ABCD copy (q20)
* v21 -- sha working state (q21)
* v22 -- sha working state (q22)
* v23 -- temp register for SHA1
* v24 -- sha state ABCD
* v25 -- sha state E
* v26 -- sha block 0
* v27 -- sha block 1
* v28 -- sha block 2
* v29 -- sha block 3
* v30 -- reserved
* v31 -- reserved
*
* Constraints:
*
* The variable "clen" must be a multiple of 16, otherwise results are not
* defined. For AES partial blocks the user is required to pad the input
* to modulus 16 = 0.
* The variable "dlen" must be a multiple of 8 and greater or equal
* to "clen". This constraint is strictly related to the needs of the IPSec
* ESP packet. Encrypted payload is hashed along with the 8 byte ESP header,
* forming ICV. Speed gain is achieved by doing both things at the same time,
* hence lengths are required to match at least at the cipher level.
*
* Short lengths are not optimized at < 12 AES blocks
*/
.global asm_aescbc_sha1_hmac
.type asm_aescbc_sha1_hmac,%function
@ -2322,68 +2324,70 @@ $code.=<<___;
.size asm_aescbc_sha1_hmac, .-asm_aescbc_sha1_hmac
# Description:
#
# Combined Auth/Dec Primitive = sha1_hmac/aes128cbc
#
# Operations:
#
# out = decrypt-AES128CBC(in)
# return_ash_ptr = SHA1(o_key_pad | SHA1(i_key_pad | in))
#
# Prototype:
# asm_sha1_hmac_aescbc_dec(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
# uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
# CIPH_DIGEST *arg)
#
# Registers used:
#
# asm_sha1_hmac_aescbc_dec(
# csrc, x0 (cipher src address)
# cdst, x1 (cipher dst address)
# clen x2 (cipher length)
# dsrc, x3 (digest src address)
# ddst, x4 (digest dst address)
# dlen, x5 (digest length)
# arg x6 :
# arg->cipher.key (round keys)
# arg->cipher.key_rounds (key rounds)
# arg->cipher.iv (initialization vector)
# arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
# arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
#
#
# Routine register definitions:
#
# v0 - v3 -- aes results
# v4 - v7 -- round consts for sha
# v8 - v18 -- round keys
# v19 -- temp register for SHA1
# v20 -- ABCD copy (q20)
# v21 -- sha working state (q21)
# v22 -- sha working state (q22)
# v23 -- temp register for SHA1
# v24 -- sha state ABCD
# v25 -- sha state E
# v26 -- sha block 0
# v27 -- sha block 1
# v28 -- sha block 2
# v29 -- sha block 3
# v30 -- reserved
# v31 -- reserved
#
#
# Constraints:
#
# The variable "clen" must be a multiple of 16, otherwise results are not
# defined. For AES partial blocks the user is required to pad the input
# to modulus 16 = 0.
#
# The variable "dlen" must be a multiple of 8 and greater or equal to "clen".
# The maximum difference between "dlen" and "clen" cannot exceed 64 bytes.
# This constrain is strictly related to the needs of the IPSec ESP packet.
# Short lengths are less optimized at < 16 AES blocks, however they are
# somewhat optimized, and more so than the enc/auth versions.
/*
* Description:
*
* Combined Auth/Dec Primitive = sha1_hmac/aes128cbc
*
* Operations:
*
* out = decrypt-AES128CBC(in)
* return_ash_ptr = SHA1(o_key_pad | SHA1(i_key_pad | in))
*
* Prototype:
* asm_sha1_hmac_aescbc_dec(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
* uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
* CIPH_DIGEST *arg)
*
* Registers used:
*
* asm_sha1_hmac_aescbc_dec(
* csrc, x0 (cipher src address)
* cdst, x1 (cipher dst address)
* clen x2 (cipher length)
* dsrc, x3 (digest src address)
* ddst, x4 (digest dst address)
* dlen, x5 (digest length)
* arg x6 :
* arg->cipher.key (round keys)
* arg->cipher.key_rounds (key rounds)
* arg->cipher.iv (initialization vector)
* arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
* arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
*
*
* Routine register definitions:
*
* v0 - v3 -- aes results
* v4 - v7 -- round consts for sha
* v8 - v18 -- round keys
* v19 -- temp register for SHA1
* v20 -- ABCD copy (q20)
* v21 -- sha working state (q21)
* v22 -- sha working state (q22)
* v23 -- temp register for SHA1
* v24 -- sha state ABCD
* v25 -- sha state E
* v26 -- sha block 0
* v27 -- sha block 1
* v28 -- sha block 2
* v29 -- sha block 3
* v30 -- reserved
* v31 -- reserved
*
*
* Constraints:
*
* The variable "clen" must be a multiple of 16, otherwise results are not
* defined. For AES partial blocks the user is required to pad the input
* to modulus 16 = 0.
*
* The variable "dlen" must be a multiple of 8 and greater or equal to "clen".
* The maximum difference between "dlen" and "clen" cannot exceed 64 bytes.
* This constrain is strictly related to the needs of the IPSec ESP packet.
* Short lengths are less optimized at < 16 AES blocks, however they are
* somewhat optimized, and more so than the enc/auth versions.
*/
.global asm_sha1_hmac_aescbc_dec
.type asm_sha1_hmac_aescbc_dec,%function

View File

@ -32,7 +32,7 @@ open OUT,"| \"$^X\" $xlate $flavour \"$output\""
$code=<<___;
#include "arm_arch.h"
# Theses are offsets into the CIPH_DIGEST struct
// These are offsets into the CIPH_DIGEST struct
#define CIPHER_KEY 0
#define CIPHER_KEY_ROUNDS 8
#define CIPHER_IV 16
@ -149,67 +149,69 @@ ___
}
$code.=<<___;
# Description:
#
# Combined Enc/Auth Primitive = aes128cbc/sha256_hmac
#
# Operations:
#
# out = encrypt-AES128CBC(in)
# return_hash_ptr = SHA256(o_key_pad | SHA256(i_key_pad | out))
#
# Prototype:
# void asm_aescbc_sha256_hmac(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
# uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
# CIPH_DIGEST *arg)
#
# Registers used:
#
# asm_aescbc_sha256_hmac(
# csrc, x0 (cipher src address)
# cdst, x1 (cipher dst address)
# clen x2 (cipher length)
# dsrc, x3 (digest src address)
# ddst, x4 (digest dst address)
# dlen, x5 (digest length)
# arg x6 :
# arg->cipher.key (round keys)
# arg->cipher.key_rounds (key rounds)
# arg->cipher.iv (initialization vector)
# arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
# arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
# )
#
# Routine register definitions:
#
# v0 -- v3 -- aes results
# v4 -- v7 -- round consts for sha
# v8 -- v18 -- round keys
# v19 -- v20 -- round keys
# v21 -- ABCD tmp
# v22 -- sha working state ABCD (q22)
# v23 -- sha working state EFGH (q23)
# v24 -- sha state ABCD
# v25 -- sha state EFGH
# v26 -- sha block 0
# v27 -- sha block 1
# v28 -- sha block 2
# v29 -- sha block 3
# v30 -- reserved
# v31 -- reserved
#
# Constraints:
#
# The variable "clen" must be a multiple of 16, otherwise results
# are not defined. For AES partial blocks the user is required
# to pad the input to modulus 16 = 0.
# The variable "dlen" must be a multiple of 8 and greater or equal
# to "clen". This constrain is strictly related to the needs of the IPSec
# ESP packet. Encrypted payload is hashed along with the 8 byte ESP header,
# forming ICV. Speed gain is achieved by doing both things at the same time,
# hence lengths are required to match at least at the cipher level.
#
# Short lengths are not optimized at < 12 AES blocks
/*
* Description:
*
* Combined Enc/Auth Primitive = aes128cbc/sha256_hmac
*
* Operations:
*
* out = encrypt-AES128CBC(in)
* return_hash_ptr = SHA256(o_key_pad | SHA256(i_key_pad | out))
*
* Prototype:
* void asm_aescbc_sha256_hmac(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
* uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
* CIPH_DIGEST *arg)
*
* Registers used:
*
* asm_aescbc_sha256_hmac(
* csrc, x0 (cipher src address)
* cdst, x1 (cipher dst address)
* clen x2 (cipher length)
* dsrc, x3 (digest src address)
* ddst, x4 (digest dst address)
* dlen, x5 (digest length)
* arg x6 :
* arg->cipher.key (round keys)
* arg->cipher.key_rounds (key rounds)
* arg->cipher.iv (initialization vector)
* arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
* arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
* )
*
* Routine register definitions:
*
* v0 -- v3 -- aes results
* v4 -- v7 -- round consts for sha
* v8 -- v18 -- round keys
* v19 -- v20 -- round keys
* v21 -- ABCD tmp
* v22 -- sha working state ABCD (q22)
* v23 -- sha working state EFGH (q23)
* v24 -- sha state ABCD
* v25 -- sha state EFGH
* v26 -- sha block 0
* v27 -- sha block 1
* v28 -- sha block 2
* v29 -- sha block 3
* v30 -- reserved
* v31 -- reserved
*
* Constraints:
*
* The variable "clen" must be a multiple of 16, otherwise results
* are not defined. For AES partial blocks the user is required
* to pad the input to modulus 16 = 0.
* The variable "dlen" must be a multiple of 8 and greater or equal
* to "clen". This constrain is strictly related to the needs of the IPSec
* ESP packet. Encrypted payload is hashed along with the 8 byte ESP header,
* forming ICV. Speed gain is achieved by doing both things at the same time,
* hence lengths are required to match at least at the cipher level.
*
* Short lengths are not optimized at < 12 AES blocks
*/
.global asm_aescbc_sha256_hmac
.type asm_aescbc_sha256_hmac,%function
@ -2472,68 +2474,70 @@ $code.=<<___;
.size asm_aescbc_sha256_hmac, .-asm_aescbc_sha256_hmac
# Description:
#
# Combined Auth/Dec Primitive = sha256_hmac/aes128cbc
#
# Operations:
#
# out = decrypt-AES128CBC(in)
# return_ash_ptr = SHA256(o_key_pad | SHA256(i_key_pad | in))
#
# Prototype:
#
# void asm_sha256_hmac_aescbc_dec(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
# uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
# CIPH_DIGEST *arg)
#
# Registers used:
#
# asm_sha256_hmac_aescbc_dec(
# csrc, x0 (cipher src address)
# cdst, x1 (cipher dst address)
# clen x2 (cipher length)
# dsrc, x3 (digest src address)
# ddst, x4 (digest dst address)
# dlen, x5 (digest length)
# arg x6:
# arg->cipher.key (round keys)
# arg->cipher.key_rounds (key rounds)
# arg->cipher.iv (initialization vector)
# arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
# arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
# )
#
# Routine register definitions:
#
# v0 - v3 -- aes results
# v4 - v7 -- round consts for sha
# v8 - v18 -- round keys
# v19 - v20 -- round keys
# v21 -- ABCD tmp
# v22 -- sha working state ABCD (q22)
# v23 -- sha working state EFGH (q23)
# v24 -- sha state ABCD
# v25 -- sha state EFGH
# v26 -- sha block 0
# v27 -- sha block 1
# v28 -- sha block 2
# v29 -- sha block 3
# v30 -- reserved
# v31 -- reserved
#
#
# Constraints:
#
# The variable "clen" must be a multiple of 16, otherwise results are not
# defined For AES partial blocks the user is required to pad the input to
# modulus 16 = 0.
#
# The variable "dlen" must be a multiple of 8 and greater or equal to "clen".
# The maximum difference between "dlen" and "clen" cannot exceed 64 bytes.
# This constrain is strictly related to the needs of the IPSec ESP packet.
# Short lengths are less optimized at < 16 AES blocks, however they are
# somewhat optimized, and more so than the enc/auth versions.
/*
* Description:
*
* Combined Auth/Dec Primitive = sha256_hmac/aes128cbc
*
* Operations:
*
* out = decrypt-AES128CBC(in)
* return_ash_ptr = SHA256(o_key_pad | SHA256(i_key_pad | in))
*
* Prototype:
*
* void asm_sha256_hmac_aescbc_dec(uint8_t *csrc, uint8_t *cdst, uint64_t clen,
* uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
* CIPH_DIGEST *arg)
*
* Registers used:
*
* asm_sha256_hmac_aescbc_dec(
* csrc, x0 (cipher src address)
* cdst, x1 (cipher dst address)
* clen x2 (cipher length)
* dsrc, x3 (digest src address)
* ddst, x4 (digest dst address)
* dlen, x5 (digest length)
* arg x6:
* arg->cipher.key (round keys)
* arg->cipher.key_rounds (key rounds)
* arg->cipher.iv (initialization vector)
* arg->digest.hmac.i_key_pad (partially hashed i_key_pad)
* arg->digest.hmac.o_key_pad (partially hashed o_key_pad)
* )
*
* Routine register definitions:
*
* v0 - v3 -- aes results
* v4 - v7 -- round consts for sha
* v8 - v18 -- round keys
* v19 - v20 -- round keys
* v21 -- ABCD tmp
* v22 -- sha working state ABCD (q22)
* v23 -- sha working state EFGH (q23)
* v24 -- sha state ABCD
* v25 -- sha state EFGH
* v26 -- sha block 0
* v27 -- sha block 1
* v28 -- sha block 2
* v29 -- sha block 3
* v30 -- reserved
* v31 -- reserved
*
*
* Constraints:
*
* The variable "clen" must be a multiple of 16, otherwise results are not
* defined For AES partial blocks the user is required to pad the input to
* modulus 16 = 0.
*
* The variable "dlen" must be a multiple of 8 and greater or equal to "clen".
* The maximum difference between "dlen" and "clen" cannot exceed 64 bytes.
* This constrain is strictly related to the needs of the IPSec ESP packet.
* Short lengths are less optimized at < 16 AES blocks, however they are
* somewhat optimized, and more so than the enc/auth versions.
*/
.global asm_sha256_hmac_aescbc_dec
.type asm_sha256_hmac_aescbc_dec,%function

View File

@ -24,7 +24,7 @@ open OUT,"| \"$^X\" $xlate $flavour \"$output\""
$code=<<___;
#include "arm_arch.h"
# Theses are offsets into the CIPH_DIGEST struct
// These are offsets into the CIPH_DIGEST struct
#define CIPHER_KEY 0
#define CIPHER_KEY_ROUNDS 8
#define CIPHER_IV 16

View File

@ -261,10 +261,12 @@ int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,
cipher = ctx->op.ciph.cipher;
desc = cipher->description != NULL ? cipher->description : "";
ERR_set_mark();
ret = cipher->encrypt(ctx->op.ciph.algctx, out, outlen, (out == NULL ? 0 : *outlen), in, inlen);
if (ret <= 0)
if (ret <= 0 && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE,
"%s encrypt:%s", cipher->type_name, desc);
ERR_clear_last_mark();
return ret;
legacy:
@ -309,10 +311,12 @@ int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,
cipher = ctx->op.ciph.cipher;
desc = cipher->description != NULL ? cipher->description : "";
ERR_set_mark();
ret = cipher->decrypt(ctx->op.ciph.algctx, out, outlen, (out == NULL ? 0 : *outlen), in, inlen);
if (ret <= 0)
if (ret <= 0 && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE,
"%s decrypt:%s", cipher->type_name, desc);
ERR_clear_last_mark();
return ret;

View File

@ -460,10 +460,12 @@ void *evp_keymgmt_gen(const EVP_KEYMGMT *keymgmt, void *genctx,
return NULL;
}
ERR_set_mark();
ret = keymgmt->gen(genctx, cb, cbarg);
if (ret == NULL)
if (ret == NULL && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE,
"%s key generation:%s", keymgmt->type_name, desc);
ERR_clear_last_mark();
return ret;
}

View File

@ -426,10 +426,12 @@ int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize)
return 0;
}
ERR_set_mark();
ret = signature->digest_sign_update(pctx->op.sig.algctx, data, dsize);
if (ret <= 0)
if (ret <= 0 && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
"%s digest_sign_update:%s", signature->type_name, desc);
ERR_clear_last_mark();
return ret;
legacy:
@ -474,10 +476,12 @@ int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize)
return 0;
}
ERR_set_mark();
ret = signature->digest_verify_update(pctx->op.sig.algctx, data, dsize);
if (ret <= 0)
if (ret <= 0 && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
"%s digest_verify_update:%s", signature->type_name, desc);
ERR_clear_last_mark();
return ret;
legacy:
@ -527,11 +531,13 @@ int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
pctx = dctx;
}
ERR_set_mark();
r = signature->digest_sign_final(pctx->op.sig.algctx, sigret, siglen,
sigret == NULL ? 0 : *siglen);
if (!r)
if (!r && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
"%s digest_sign_final:%s", signature->type_name, desc);
ERR_clear_last_mark();
if (dctx == NULL && sigret != NULL)
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
else
@ -638,11 +644,13 @@ int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen,
if (sigret != NULL)
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
ERR_set_mark();
ret = signature->digest_sign(pctx->op.sig.algctx, sigret, siglen,
sigret == NULL ? 0 : *siglen, tbs, tbslen);
if (ret <= 0)
if (ret <= 0 && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
"%s digest_sign:%s", signature->type_name, desc);
ERR_clear_last_mark();
return ret;
}
} else {
@ -693,10 +701,12 @@ int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig,
pctx = dctx;
}
ERR_set_mark();
r = signature->digest_verify_final(pctx->op.sig.algctx, sig, siglen);
if (!r)
if (!r && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
"%s digest_verify_final:%s", signature->type_name, desc);
ERR_clear_last_mark();
if (dctx == NULL)
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
else
@ -769,10 +779,12 @@ int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret,
int ret;
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
ERR_set_mark();
ret = signature->digest_verify(pctx->op.sig.algctx, sigret, siglen, tbs, tbslen);
if (ret <= 0)
if (ret <= 0 && ERR_count_to_mark() == 0)
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
"%s digest_verify:%s", signature->type_name, desc);
ERR_clear_last_mark();
return ret;
}
} else {

View File

@ -2419,6 +2419,11 @@ static int core_pop_error_to_mark(const OSSL_CORE_HANDLE *handle)
return ERR_pop_to_mark();
}
static int core_count_to_mark(const OSSL_CORE_HANDLE *handle)
{
return ERR_count_to_mark();
}
static void core_indicator_get_callback(OPENSSL_CORE_CTX *libctx,
OSSL_INDICATOR_CALLBACK **cb)
{
@ -2600,6 +2605,7 @@ static const OSSL_DISPATCH core_dispatch_[] = {
{ OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK,
(void (*)(void))core_clear_last_error_mark },
{ OSSL_FUNC_CORE_POP_ERROR_TO_MARK, (void (*)(void))core_pop_error_to_mark },
{ OSSL_FUNC_CORE_COUNT_TO_MARK, (void (*)(void))core_count_to_mark },
{ OSSL_FUNC_BIO_NEW_FILE, (void (*)(void))ossl_core_bio_new_file },
{ OSSL_FUNC_BIO_NEW_MEMBUF, (void (*)(void))ossl_core_bio_new_mem_buf },
{ OSSL_FUNC_BIO_READ_EX, (void (*)(void))ossl_core_bio_read_ex },

View File

@ -154,6 +154,10 @@ provider):
core_new_error OSSL_FUNC_CORE_NEW_ERROR
core_set_error_debug OSSL_FUNC_CORE_SET_ERROR_DEBUG
core_vset_error OSSL_FUNC_CORE_VSET_ERROR
core_set_error_mark OSSL_FUNC_CORE_SET_ERROR_MARK
core_clear_last_error_mark OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK
core_pop_error_to_mark OSSL_FUNC_CORE_POP_ERROR_TO_MARK
core_count_to_mark OSSL_FUNC_CORE_COUNT_TO_MARK
core_obj_add_sigid OSSL_FUNC_CORE_OBJ_ADD_SIGID
core_obj_create OSSL_FUNC_CORE_OBJ_CREATE
CRYPTO_malloc OSSL_FUNC_CRYPTO_MALLOC
@ -270,6 +274,33 @@ error occurred or was reported.
This corresponds to the OpenSSL function L<ERR_vset_error(3)>.
=item core_set_error_mark()
sets a mark on the current topmost error record if there is one.
This corresponds to the OpenSSL function L<ERR_set_mark(3)>.
=item core_clear_last_error_mark()
removes the last mark added if there is one.
This corresponds to the OpenSSL function L<ERR_clear_last_mark(3)>.
=item core_pop_error_to_mark()
pops the top of the error stack until a mark is found. The mark is then removed.
If there is no mark, the whole stack is removed.
This corresponds to the OpenSSL function L<ERR_pop_to_mark(3)>.
=item core_count_to_mark()
returns the number of entries on the error stack above the most recently
marked entry, not including that entry. If there is no mark in the error stack,
the number of entries in the error stack is returned.
This corresponds to the OpenSSL function L<ERR_count_to_mark(3)>.
=back
The core_obj_create() function registers a new OID and associated short name

View File

@ -590,10 +590,7 @@ int FuzzerTestOneInput(const uint8_t *buf, size_t len)
SSL *server;
BIO *in;
BIO *out;
#if !defined(OPENSSL_NO_EC) \
|| (!defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0))
BIO *bio_buf;
#endif
SSL_CTX *ctx;
int ret;
#ifndef OPENSSL_NO_DEPRECATED_3_0

View File

@ -253,6 +253,10 @@ OSSL_CORE_MAKE_FUNC(int, provider_up_ref,
OSSL_CORE_MAKE_FUNC(int, provider_free,
(const OSSL_CORE_HANDLE *prov, int deactivate))
/* Additional error functions provided by the core */
# define OSSL_FUNC_CORE_COUNT_TO_MARK 120
OSSL_CORE_MAKE_FUNC(int, core_count_to_mark, (const OSSL_CORE_HANDLE *prov))
/* Functions provided by the provider to the Core, reserved numbers 1024-1535 */
# define OSSL_FUNC_PROVIDER_TEARDOWN 1024
OSSL_CORE_MAKE_FUNC(void, provider_teardown, (void *provctx))

View File

@ -65,6 +65,7 @@ static OSSL_FUNC_core_vset_error_fn *c_vset_error;
static OSSL_FUNC_core_set_error_mark_fn *c_set_error_mark;
static OSSL_FUNC_core_clear_last_error_mark_fn *c_clear_last_error_mark;
static OSSL_FUNC_core_pop_error_to_mark_fn *c_pop_error_to_mark;
static OSSL_FUNC_core_count_to_mark_fn *c_count_to_mark;
static OSSL_FUNC_CRYPTO_malloc_fn *c_CRYPTO_malloc;
static OSSL_FUNC_CRYPTO_zalloc_fn *c_CRYPTO_zalloc;
static OSSL_FUNC_CRYPTO_free_fn *c_CRYPTO_free;
@ -834,6 +835,9 @@ int OSSL_provider_init_int(const OSSL_CORE_HANDLE *handle,
case OSSL_FUNC_CORE_POP_ERROR_TO_MARK:
set_func(c_pop_error_to_mark, OSSL_FUNC_core_pop_error_to_mark(in));
break;
case OSSL_FUNC_CORE_COUNT_TO_MARK:
set_func(c_count_to_mark, OSSL_FUNC_core_count_to_mark(in));
break;
case OSSL_FUNC_CRYPTO_MALLOC:
set_func(c_CRYPTO_malloc, OSSL_FUNC_CRYPTO_malloc(in));
break;
@ -1072,6 +1076,11 @@ int ERR_pop_to_mark(void)
return c_pop_error_to_mark(NULL);
}
int ERR_count_to_mark(void)
{
return c_count_to_mark != NULL ? c_count_to_mark(NULL) : 0;
}
/*
* This must take a library context, since it's called from the depths
* of crypto/initthread.c code, where it's (correctly) assumed that the

View File

@ -22,7 +22,7 @@ const PROV_CIPHER_HW_AES_HMAC_SHA_ETM *ossl_prov_cipher_hw_aes_cbc_hmac_sha1_etm
#else
void sha1_block_data_order(void *c, const void *p, size_t len);
# if defined(__aarch64__)
# if defined(__aarch64__) || defined(_M_ARM64)
int asm_aescbc_sha1_hmac(const uint8_t *csrc, uint8_t *cdst, uint64_t clen,
uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
CIPH_DIGEST *arg);

View File

@ -22,7 +22,7 @@ const PROV_CIPHER_HW_AES_HMAC_SHA_ETM *ossl_prov_cipher_hw_aes_cbc_hmac_sha256_e
#else
void sha256_block_data_order(void *c, const void *p, size_t len);
# if defined(__aarch64__)
# if defined(__aarch64__) || defined(_M_ARM64)
int asm_aescbc_sha256_hmac(const uint8_t *csrc, uint8_t *cdst, uint64_t clen,
uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
CIPH_DIGEST *arg);

View File

@ -26,7 +26,7 @@ const PROV_CIPHER_HW_AES_HMAC_SHA_ETM *ossl_prov_cipher_hw_aes_cbc_hmac_sha512_e
return NULL;
}
#else
# if defined(__aarch64__)
# if defined(__aarch64__) || defined(_M_ARM64)
void asm_aescbc_sha512_hmac(const uint8_t *csrc, uint8_t *cdst, uint64_t clen,
uint8_t *dsrc, uint8_t *ddst, uint64_t dlen,
CIPH_DIGEST *arg);

View File

@ -48,6 +48,7 @@ static OSSL_FUNC_core_vset_error_fn *c_vset_error;
static OSSL_FUNC_core_set_error_mark_fn *c_set_error_mark;
static OSSL_FUNC_core_clear_last_error_mark_fn *c_clear_last_error_mark;
static OSSL_FUNC_core_pop_error_to_mark_fn *c_pop_error_to_mark;
static OSSL_FUNC_core_count_to_mark_fn *c_count_to_mark;
#endif
/* Parameters we provide to the core */
@ -234,6 +235,9 @@ int OSSL_provider_init(const OSSL_CORE_HANDLE *handle,
case OSSL_FUNC_CORE_POP_ERROR_TO_MARK:
set_func(c_pop_error_to_mark, OSSL_FUNC_core_pop_error_to_mark(tmp));
break;
case OSSL_FUNC_CORE_COUNT_TO_MARK:
set_func(c_count_to_mark, OSSL_FUNC_core_count_to_mark(in));
break;
}
}
#endif
@ -301,4 +305,9 @@ int ERR_pop_to_mark(void)
{
return c_pop_error_to_mark(NULL);
}
int ERR_count_to_mark(void)
{
return c_count_to_mark != NULL ? c_count_to_mark(NULL) : 0;
}
#endif

View File

@ -23,9 +23,19 @@ print <<"_____";
#ifndef OPENSSL_NO_STDIO
# include <stdio.h>
#endif
_____
if (${name_uc} eq "RSA") {
print("#include <openssl/rsa.h>");
}
else {
print <<"_____";
#ifndef OPENSSL_NO_${name_uc}
# include <openssl/$name.h>
#endif
_____
}
print <<"_____";
int main(void)
{

View File

@ -24,6 +24,6 @@ test -d "$QUICHE_TARGET_PATH" || exit 1
"$QUICHE_TARGET_PATH/debug/quiche-server" --cert "$SRCTOP/test/certs/servercert.pem" \
--key "$SRCTOP/test/certs/serverkey.pem" --disable-gso \
--http-version HTTP/0.9 --root "$SRCTOP" --no-grease --disable-hystart &
--http-version HTTP/0.9 --root "$SRCTOP" --no-grease --disable-hystart > quiche_server_log 2>&1 &
echo $! >server.pid

View File

@ -1984,7 +1984,7 @@ static int test_tlsext_status_type(void)
if (!create_ssl_ctx_pair(libctx, TLS_server_method(), TLS_client_method(),
TLS1_VERSION, 0,
&sctx, &cctx, leaf, skey))
return 0;
goto end;
if (SSL_CTX_use_certificate_chain_file(sctx, leaf_chain) <= 0)
goto end;
if (SSL_CTX_get_tlsext_status_type(cctx) != -1)