diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f0dfa0e..01a42fb7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,8 +62,13 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()
-# Enable asserts regardless of build type
-add_definitions(-UNDEBUG)
+# Do not disable assertions based on CMAKE_BUILD_TYPE
+foreach(_build_type "Release" "MinSizeRel" "RelWithDebInfo")
+ foreach(_lang C CXX)
+ string(TOUPPER "CMAKE_${_lang}_FLAGS_${_build_type}" _var)
+ string(REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " " ${_var} "${${_var}}")
+ endforeach()
+endforeach()
set(BUILD_NC true)
@@ -84,16 +89,16 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(PLATFORM_LIBS ${PLATFORM_LIBS} pthread)
endif()
-if(WIN32 OR (CMAKE_SYSTEM_NAME MATCHES "MINGW"))
+if(WIN32)
set(BUILD_NC false)
- add_definitions(-D_GNU_SOURCE)
- add_definitions(-D_POSIX)
- add_definitions(-D_POSIX_SOURCE)
- add_definitions(-D__USE_MINGW_ANSI_STDIO)
+ if(MINGW)
+ add_definitions(-D_GNU_SOURCE)
+ add_definitions(-D_POSIX)
+ add_definitions(-D_POSIX_SOURCE)
+ add_definitions(-D__USE_MINGW_ANSI_STDIO)
+ endif()
endif()
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
-
if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
if(CMAKE_C_COMPILER MATCHES "gcc")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -fno-strict-aliasing")
@@ -129,7 +134,7 @@ if(WIN32)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
add_definitions(-D_CRT_DEPRECATED_NO_WARNINGS)
add_definitions(-D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS)
- add_definitions(-DCPPFLAGS -DNO_SYSLOG -DNO_CRYPT)
+ add_definitions(-DNO_SYSLOG)
add_definitions(-DWIN32_LEAN_AND_MEAN)
if(NOT CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
add_definitions(-D_WIN32_WINNT=0x0600)
@@ -140,6 +145,15 @@ endif()
if(MSVC)
add_definitions(-Dinline=__inline)
message(STATUS "Using [${CMAKE_C_COMPILER_ID}] compiler")
+
+ include(TestBigEndian)
+ TEST_BIG_ENDIAN(HAVE_BIG_ENDIAN)
+ if(HAVE_BIG_ENDIAN)
+ add_definitions(-DHAVE_BIG_ENDIAN)
+ else()
+ add_definitions(-DHAVE_LITTLE_ENDIAN)
+ endif()
+
if(CMAKE_C_COMPILER_ID MATCHES "MSVC" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
set(MSVC_DISABLED_WARNINGS_LIST
"C4018" # 'expression' : signed/unsigned mismatch
@@ -182,6 +196,8 @@ if(MSVC)
${MSVC_DISABLED_WARNINGS_LIST})
string(REGEX REPLACE "[/-]W[1234][ ]?" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MP -W4 ${MSVC_DISABLED_WARNINGS_STR}")
+else()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
check_function_exists(asprintf HAVE_ASPRINTF)
@@ -234,6 +250,11 @@ if(HAVE_STRSEP)
add_definitions(-DHAVE_STRSEP)
endif()
+check_function_exists(strtonum HAVE_STRTONUM)
+if(HAVE_STRTONUM)
+ add_definitions(-DHAVE_STRTONUM)
+endif()
+
check_function_exists(timegm HAVE_TIMEGM)
if(HAVE_TIMEGM)
add_definitions(-DHAVE_TIMEGM)
@@ -295,8 +316,8 @@ if(HAVE_TIMINGSAFE_BCMP)
endif()
check_function_exists(timingsafe_memcmp HAVE_TIMINGSAFE_MEMCMP)
-if(HAVE_MEMCMP)
- add_definitions(-DHAVE_MEMCMP)
+if(HAVE_TIMINGSAFE_MEMCMP)
+ add_definitions(-DHAVE_TIMINGSAFE_MEMCMP)
endif()
check_function_exists(memmem HAVE_MEMMEM)
@@ -333,49 +354,53 @@ if(APPLE AND (NOT CMAKE_OSX_ARCHITECTURES STREQUAL ""))
set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_OSX_ARCHITECTURES}")
endif()
-if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(aarch64|arm64|ARM64)")
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|ARM64)")
set(HOST_AARCH64 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
+ if(WIN32)
+ set(ENABLE_ASM false)
+ endif()
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
set(HOST_ARM true)
-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386")
+elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386")
set(HOST_X86_64 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64|AMD64)")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64|AMD64)")
set(HOST_X86_64 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(i[3-6]86|[xX]86)")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86)")
set(ENABLE_ASM false)
set(HOST_I386 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips64")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips64")
set(HOST_MIPS64 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips")
set(HOST_MIPS true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "powerpc")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc")
set(HOST_POWERPC true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "ppc64")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64")
set(HOST_PPC64 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "riscv64")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
set(HOST_RISCV64 true)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "sparc64")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "sparc64")
set(HOST_SPARC64 true)
else()
set(ENABLE_ASM false)
endif()
if(ENABLE_ASM)
- if("${CMAKE_C_COMPILER_ABI}" STREQUAL "ELF")
- if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)")
+ if(CMAKE_C_COMPILER_ABI STREQUAL "ELF")
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)")
set(HOST_ASM_ELF_X86_64 true)
- elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" AND
+ NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
set(HOST_ASM_ELF_ARMV4 true)
- elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386")
set(HOST_ASM_ELF_X86_64 true)
endif()
add_definitions(-DHAVE_GNU_STACK)
- elseif(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
+ elseif(APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
set(HOST_ASM_MACOSX_X86_64 true)
- elseif(MSVC AND ("${CMAKE_GENERATOR}" MATCHES "Win64" OR "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64"))
+ elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Win64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "x64"))
set(HOST_ASM_MASM_X86_64 true)
ENABLE_LANGUAGE(ASM_MASM)
- elseif(MINGW AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
+ elseif(MINGW AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
set(HOST_ASM_MINGW64_X86_64 true)
endif()
endif()
@@ -407,11 +432,23 @@ set(LIBTLS_LIBS tls ${PLATFORM_LIBS})
# libraries for regression test
if(BUILD_SHARED_LIBS)
- set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS})
- set(LIBTLS_TEST_LIBS tls-static ${PLATFORM_LIBS})
+ set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS} compat_obj)
+ set(LIBTLS_TEST_LIBS tls-static ${OPENSSL_TEST_LIBS} tls_compat_obj)
else()
- set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS})
- set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS})
+ set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS} compat_obj)
+ set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS} compat_obj tls_compat_obj)
+endif()
+
+if(OPENSSLDIR STREQUAL "")
+ if(WIN32)
+ set(OPENSSLDIR "C:/Windows/libressl/ssl")
+ else()
+ set(OPENSSLDIR "${CMAKE_INSTALL_PREFIX}/etc/ssl")
+ endif()
+
+ set(CONF_DIR "${CMAKE_INSTALL_PREFIX}/etc/ssl")
+else()
+ set(CONF_DIR "${OPENSSLDIR}")
endif()
add_subdirectory(include)
@@ -495,12 +532,6 @@ if(ENABLE_LIBRESSL_INSTALL)
endif()
endif(ENABLE_LIBRESSL_INSTALL)
-if(NOT "${OPENSSLDIR}" STREQUAL "")
- set(CONF_DIR "${OPENSSLDIR}")
-else()
- set(CONF_DIR "${CMAKE_INSTALL_PREFIX}/etc/ssl")
-endif()
-
if(ENABLE_LIBRESSL_INSTALL)
install(FILES cert.pem openssl.cnf x509v3.cnf DESTINATION ${CONF_DIR})
install(DIRECTORY DESTINATION ${CONF_DIR}/certs)
diff --git a/ChangeLog b/ChangeLog
index 22335293..76d554fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -28,14 +28,101 @@ history is also available from Git.
LibreSSL Portable Release Notes:
+3.9.2 - Stable release
+
+ * Bugfixes
+ - OpenBSD 7.5 errata 003. A missing bounds check could lead to a crash
+ due to dereferencing a zero-sized allocation.
+
+3.9.1 - Stable release
+
+ * Portable changes
+ - Updated tests with expiring certificates
+ - CET-related build fixes for Windows and macOS targets
+ - update libtls linker script to include libssl and libcrypto again
+
3.9.0 - In development
* Portable changes
+ - libcrypto no longer exports compat symbols in cmake builds.
+ - Most compatibility symbols are prefixed with libressl_ to avoid
+ symbol clashes in static links.
+ - Fixed various warnings on Windows.
+ - Removed assert pop-ups with Windows debug builds.
+ - Fixed crashes and hangs in Windows ARM64 builds.
+ - Improved control-flow enforcement (CET) support.
* Internal improvements
+ - Converted uses of OBJ_bsearch_() to standard bsearch().
+ - Greatly simplified by_file_ctrl().
+ - Simplified and cleaned up the OBJ_ API.
+ - Cleaned up the EVP_Cipher{Init,Update,Final}() implementations.
+ - Removed unused function pointers from X.509 stores and contexts.
+ - A lot of cleanup and reorganization in EVP.
+ - Removed all remaining ENGINE tentacles.
+ - Simplified internals of X509_TRUST handling.
+ - Made deletion from a lhash doall callback safe.
+ - Rewrote BIO_dump*(3) internals to be less bad.
* Documentation improvements
+ - ENGINE documentation was updated to reflect reality.
+ - Made EVP API documentation more accurate and less incoherent.
+ - Call out some shortcomings of the EC_KEY_set_* API explicitly.
* Testing and proactive security
+ - Bug fixes and simplifications in the Wycheproof tests.
+ * Compatibility changes
+ - Added ChaCha20 and chacha20 aliases for ChaCha.
+ - SSL_library_init() now has the same effect as OPENSSL_init_ssl().
+ - EVP_add_{cipher,digest}() were removed. From the OBJ_NAME API,
+ only OBJ_NAME_do_all*() remain. In particular, it is no longer
+ possible to add aliases for ciphers and digests.
+ - The thread unsafe global tables are no longer supported. It is no
+ longer possible to add aliases for ciphers and digests, custom ASN.1
+ strings table entries, ASN.1 methods, PKEY methods, digest methods,
+ CRL methods, purpose and trust identifiers, or X.509 extensions.
+ - Removed the _cb() and _fp() versions of BIO_dump{,_indent}().
+ - BIO_set() was removed.
+ - BIO_{sn,v,vsn}printf() were removed.
+ - Turn the long dysfunctional openssl(1) s_client -pause into a noop.
+ - openssl(1) x509 now supports -new -force_pubkey, -multivalue-rdn,
+ -set_issuer, -set_subject, and -utf8.
+ - Support ECDSA with SHA-3 signature algorithms.
+ - Support HMAC with truncated SHA-2 and SHA-3 as PBE PRF.
+ - GOST and STREEBOG support was removed.
+ - CRYPTO_THREADID, _LHASH, _STACK, X509_PURPOSE are now opaque,
+ X509_CERT_AUX and X509_TRUST were removed from the public API.
+ - ASN1_STRING_TABLE_get() and X509_PURPOSE_get0*() now return const
+ pointers.
+ - EVP_{CIPHER,MD}_CTX_init()'s signatures and semantics now match
+ OpenSSL's behavior.
+ - sk_find_ex() and OBJ_bsearch_() were removed.
+ - CRYPTO_malloc() was fixed to use size_t argument. CRYPTO_malloc()
+ and CRYPTO_free() now accept file and line arguments.
+ - A lot of decrepit CRYPTO memory API was removed.
* Bug fixes
- - Fixed aliasing issues in BN_mod_exp_simple() and BN_mod_exp_recp()
+ - Fixed aliasing issues in BN_mod_exp_simple() and BN_mod_exp_recp().
+ - Fixed numerous misuses of X509_ALGOR_set0() resulting in leaks and
+ potentially incorrect encodings.
+ - Fixed potential double free in X509v3_asid_add_id_or_range().
+ - Stopped using ASN1_time_parse() outside of libcrypto.
+ - Prepared OPENSSL_gmtime() and OPENSSL_timegm() as public API
+ wrappers of internal functions compatible with BoringSSL API.
+ - Removed print_bin() to avoid overwriting the stack with 5 bytes
+ of ' ' when ECPK parameters are printed with large indentation.
+ - Avoid a NULL dereference after memory allocation failure during TLS
+ version downgrade.
+ - Fixed various bugs in CMAC internals.
+ - Fixed 4-byte overreads in GHASH assembly on amd64 and i386.
+ - Fixed various NULL dereferences in PKCS #12 code due to mishandling
+ of OPTIONAL content in PKCS #7 ContentInfo.
+ - Aligned SSL_shutdown() behavior in TLSv1.3 with the legacy stack.
+ - Fixed the new X.509 verifier to find trust anchors in the trusted
+ stack.
+
+3.8.3 - Stable release
+
+ * Portable changes
+ - Removed assert pop-ups with Windows debug builds.
+ - Fixed crashes and hangs in Windows ARM64 builds.
+ - Improved control-flow enforcement (CET) support.
3.8.2 - Stable release
diff --git a/README.md b/README.md
index 7906fcf1..e4f56b17 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,19 @@

-## Official portable version of [LibreSSL](https://www.libressl.org) ##
-[](https://github.com/libressl/portable/actions/workflows/linux_test.yml)
-[](https://github.com/libressl/portable/actions/workflows/macos_test.yml)
-[](https://github.com/libressl/portable/actions/workflows/android_test.yml)
-[](https://github.com/libressl/portable/actions/workflows/cross_test.yml)
-[](https://github.com/libressl/portable/actions/workflows/solaris_test.yml)
+## Official portable version of [LibreSSL](https://www.libressl.org)
+
+[](https://github.com/libressl/portable/actions/workflows/linux.yml)
+[](https://github.com/libressl/portable/actions/workflows/macos.yml)
+[](https://github.com/libressl/portable/actions/workflows/windows.yml)
+[](https://github.com/libressl/portable/actions/workflows/android.yml)
+[](https://github.com/libressl/portable/actions/workflows/solaris.yml)
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libressl)
-[](https://github.com/libressl/portable/actions/workflows/linux_test_asan.yml)
LibreSSL is a fork of [OpenSSL](https://www.openssl.org) 1.0.1g developed by the
[OpenBSD](https://www.openbsd.org) project. Our goal is to modernize the codebase,
improve security, and apply best practice development processes from OpenBSD.
-## Compatibility with OpenSSL: ##
+## Compatibility with OpenSSL
LibreSSL provides much of the OpenSSL 1.1 API. The OpenSSL 3 API is not currently
supported. Incompatibilities between the projects exist and are unavoidable since
@@ -28,7 +28,7 @@ LibreSSL in order to use it, just as in moving between major versions of OpenSSL
LibreSSL's installed library version numbers are incremented to account for
ABI and API changes.
-## Compatibility with other operating systems: ##
+## Compatibility with other operating systems
While primarily developed on and taking advantage of APIs available on OpenBSD,
the LibreSSL portable project attempts to provide working alternatives for
@@ -46,6 +46,7 @@ At the time of this writing, LibreSSL is known to build and work on:
* AIX (5.3 and later)
LibreSSL also supports the following Windows environments:
+
* Microsoft Windows (Windows 7 / Windows Server 2008r2 or later, x86 and x64)
* Wine (32-bit and 64-bit)
* Mingw-w64, Cygwin, and Visual Studio
@@ -65,20 +66,24 @@ or to the GitHub
Severe vulnerabilities or bugs requiring coordination with OpenSSL can be
sent to the core team at libressl-security@openbsd.org.
-# Building LibreSSL #
+# Building LibreSSL
-## Prerequisites when building from a Git checkout ##
+## Prerequisites when building from a Git checkout
If you have checked this source using Git, or have downloaded a source tarball
-from Github, follow these initial steps to prepare the source tree for
-building. _Note: Your build will fail if you do not follow these instructions! If you cannot follow these instructions (e.g. Windows system using CMake) or cannot meet these prerequistes, please download an official release distribution from https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/ instead. Using official releases is strongly advised if you are not a developer._
+from GitHub, follow these initial steps to prepare the source tree for
+building. _Note: Your build will fail if you do not follow these instructions!
+If you cannot follow these instructions (e.g. Windows system using CMake) or
+cannot meet these prerequistes, please download an official release distribution
+from https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/ instead. Using official
+releases is strongly advised if you are not a developer._
1. Ensure you have the following packages installed:
automake, autoconf, git, libtool, perl
2. Run `./autogen.sh` to prepare the source tree for building or
run `./dist.sh` to prepare a tarball.
-## Steps that apply to all builds ##
+## Steps that apply to all builds
Once you have a source tree, either by downloaded using git and having
run the `autogen.sh` script above, or by downloading a release distribution from
@@ -111,9 +116,9 @@ ninja
ninja test
```
-### OS specific build information: ###
+### OS specific build information
-#### HP-UX (11i) ####
+#### HP-UX (11i)
Set the UNIX_STD environment variable to `2003` before running `configure`
in order to build with the HP C/aC++ compiler. See the "standards(5)" man
@@ -125,64 +130,70 @@ export UNIX_STD=2003
make
```
-#### Windows - Mingw-w64 ####
+#### Windows - Mingw-w64
LibreSSL builds against relatively recent versions of Mingw-w64, not to be
-confused with the original mingw.org project. Mingw-w64 3.2 or later
+confused with the original mingw.org project. Mingw-w64 3.2 or later
should work. See README.windows for more information
-#### Windows - Visual Studio ####
+#### Windows - Visual Studio
LibreSSL builds using the CMake target "Visual Studio 12 2013" and newer. To
generate a Visual Studio project, install CMake, enter the LibreSSL source
directory and run:
```sh
- mkdir build-vs2013
- cd build-vs2013
- cmake -G"Visual Studio 12 2013" ..
+mkdir build-vs2013
+cd build-vs2013
+cmake -G"Visual Studio 12 2013" ..
```
Replace "Visual Studio 12 2013" with whatever version of Visual Studio you
have installed. This will generate a LibreSSL.sln file that you can incorporate
into other projects or build by itself.
-#### Cmake - Additional Options ####
+#### CMake - Additional Options
-| Option Name | Default | Description
-| ------------ | -----: | ------
-| LIBRESSL_SKIP_INSTALL | OFF | allows skipping install() rules. Can be specified from command line using
```-DLIBRESSL_SKIP_INSTALL=ON``` |
-| LIBRESSL_APPS | ON | allows skipping application builds. Apps are required to run tests |
-| LIBRESSL_TESTS | ON | allows skipping of tests. Tests are only available in static builds |
-| BUILD_SHARED_LIBS | OFF | CMake option for building shared libraries. |
-| ENABLE_ASM | ON | builds assembly optimized rules. |
-| ENABLE_EXTRATESTS | OFF | Enable extra tests that may be unreliable on some platforms |
-| ENABLE_NC | OFF | Enable installing TLS-enabled nc(1) |
-| OPENSSLDIR | Blank | Set the default openssl directory. Can be specified from command line using
```-DOPENSSLDIR=``` |
+| Option Name | Default | Description |
+|-------------------------|--------:|-----------------------------------------------------------------------------------------------------------------|
+| `LIBRESSL_SKIP_INSTALL` | `OFF` | allows skipping install() rules. Can be specified from command line using
```-DLIBRESSL_SKIP_INSTALL=ON``` |
+| `LIBRESSL_APPS` | `ON` | allows skipping application builds. Apps are required to run tests |
+| `LIBRESSL_TESTS` | `ON` | allows skipping of tests. Tests are only available in static builds |
+| `BUILD_SHARED_LIBS` | `OFF` | CMake option for building shared libraries. |
+| `ENABLE_ASM` | `ON` | builds assembly optimized rules. |
+| `ENABLE_EXTRATESTS` | `OFF` | Enable extra tests that may be unreliable on some platforms |
+| `ENABLE_NC` | `OFF` | Enable installing TLS-enabled nc(1) |
+| `OPENSSLDIR` | Blank | Set the default openssl directory. Can be specified from command line using
```-DOPENSSLDIR=``` |
-# Using LibreSSL #
+# Using LibreSSL
-## CMake ##
+## CMake
-Make a new folder in your project root (where your main CMakeLists.txt file is located) called CMake. Copy the FindLibreSSL.cmake file to that folder, and add the following line to your main CMakeLists.txt:
+Make a new folder in your project root (where your main `CMakeLists.txt` file is
+located) called CMake. Copy the `FindLibreSSL.cmake` file to that folder, and
+add the following line to your main `CMakeLists.txt`:
```cmake
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
```
-After your **add_executable** or **add_library** line in your CMakeLists.txt file add the following:
+After your `add_executable` or `add_library` line in your `CMakeLists.txt` file
+add the following:
```cmake
find_package(LibreSSL REQUIRED)
```
-It will tell CMake to find LibreSSL and if found will let you use the following 3 interfaces in your CMakeLists.txt file:
+It will tell CMake to find LibreSSL and if found will let you use the following
+3 interfaces in your `CMakeLists.txt` file:
* LibreSSL::Crypto
* LibreSSL::SSL
* LibreSSL::TLS
-If you for example want to use the LibreSSL TLS library in your test program, include it like so (SSL and Crypto are required by TLS and included automatically too):
+If you for example want to use the LibreSSL TLS library in your test program,
+include it like so (SSL and Crypto are required by TLS and included
+automatically too):
```cmake
target_link_libraries(test LibreSSL::TLS)
@@ -204,10 +215,18 @@ find_package(LibreSSL REQUIRED)
target_link_libraries(test LibreSSL::TLS)
```
-#### Linux ####
+#### Linux
-Following the guide in the sections above to compile LibreSSL using make and running "sudo make install" will install LibreSSL to the /usr/local/ folder, and will found automatically by find_package. If your system installs it to another location or you have placed them yourself in a different location, you can set the CMake variable LIBRESSL_ROOT_DIR to the correct path, to help CMake find the library.
+Following the guide in the sections above to compile LibreSSL using make and
+running `sudo make install` will install LibreSSL to the `/usr/local/` folder,
+and will be found automatically by find_package. If your system installs it to
+another location, or you have placed them yourself in a different location, you
+can set the CMake variable `LIBRESSL_ROOT_DIR` to the correct path, to help
+CMake find the library.
-#### Windows ####
+#### Windows
-Placing the library files in C:/Program Files/LibreSSL/lib and the include files in C:/Program Files/LibreSSL/include should let CMake find them automatically, but it is recommended that you use CMake-GUI to set the paths. It is more convenient as you can have the files in any folder you choose.
+Placing the library files in `C:/Program Files/LibreSSL/lib` and the include
+files in `C:/Program Files/LibreSSL/include` should let CMake find them
+automatically, but it is recommended that you use CMake-GUI to set the paths.
+It is more convenient as you can have the files in any folder you choose.
diff --git a/VERSION b/VERSION
index 60a4093d..8c0fd68e 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1 @@
-3.8.2.0
-
+3.9.2.0
diff --git a/apps/nc/CMakeLists.txt b/apps/nc/CMakeLists.txt
index ffd68e55..7bbdb025 100644
--- a/apps/nc/CMakeLists.txt
+++ b/apps/nc/CMakeLists.txt
@@ -29,11 +29,7 @@ else()
set(NC_SRC ${NC_SRC} compat/readpassphrase.c)
endif()
-if(NOT "${OPENSSLDIR}" STREQUAL "")
- add_definitions(-DDEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
-else()
- add_definitions(-DDEFAULT_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
-endif()
+add_definitions(-DDEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
add_executable(nc ${NC_SRC})
target_include_directories(nc
@@ -44,7 +40,7 @@ target_include_directories(nc
PUBLIC
../../include
${CMAKE_BINARY_DIR}/include)
-target_link_libraries(nc ${LIBTLS_LIBS})
+target_link_libraries(nc ${LIBTLS_LIBS} compat_obj)
if(ENABLE_NC)
if(ENABLE_LIBRESSL_INSTALL)
diff --git a/apps/ocspcheck/CMakeLists.txt b/apps/ocspcheck/CMakeLists.txt
index 9cf7a8b3..778e8376 100644
--- a/apps/ocspcheck/CMakeLists.txt
+++ b/apps/ocspcheck/CMakeLists.txt
@@ -11,11 +11,7 @@ else()
set(OCSPCHECK_SRC ${OCSPCHECK_SRC} compat/memmem.c)
endif()
-if(NOT "${OPENSSLDIR}" STREQUAL "")
- add_definitions(-DDEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
-else()
- add_definitions(-DDEFAULT_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
-endif()
+add_definitions(-DDEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
add_executable(ocspcheck ${OCSPCHECK_SRC})
target_include_directories(ocspcheck
@@ -24,7 +20,7 @@ target_include_directories(ocspcheck
PUBLIC
../../include
${CMAKE_BINARY_DIR}/include)
-target_link_libraries(ocspcheck tls ${OPENSSL_LIBS})
+target_link_libraries(ocspcheck tls ${OPENSSL_LIBS} compat_obj tls_compat_obj)
if(ENABLE_LIBRESSL_INSTALL)
install(TARGETS ocspcheck DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/apps/ocspcheck/ocspcheck.c b/apps/ocspcheck/ocspcheck.c
index 516642b5..234f3d22 100644
--- a/apps/ocspcheck/ocspcheck.c
+++ b/apps/ocspcheck/ocspcheck.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ocspcheck.c,v 1.31 2022/12/28 21:30:17 jmc Exp $ */
+/* $OpenBSD: ocspcheck.c,v 1.32 2023/11/13 11:46:24 tb Exp $ */
/*
* Copyright (c) 2017,2020 Bob Beck
@@ -189,8 +189,9 @@ parse_ocsp_time(ASN1_GENERALIZEDTIME *gt)
if (gt == NULL)
return -1;
/* RFC 6960 specifies that all times in OCSP must be GENERALIZEDTIME */
- if (ASN1_time_parse(gt->data, gt->length, &tm,
- V_ASN1_GENERALIZEDTIME) == -1)
+ if (!ASN1_GENERALIZEDTIME_check(gt))
+ return -1;
+ if (!ASN1_TIME_to_tm(gt, &tm))
return -1;
if ((rv = timegm(&tm)) == -1)
return -1;
diff --git a/apps/openssl/CMakeLists.txt b/apps/openssl/CMakeLists.txt
index efea2175..f2dcf97c 100644
--- a/apps/openssl/CMakeLists.txt
+++ b/apps/openssl/CMakeLists.txt
@@ -75,7 +75,7 @@ target_include_directories(openssl
PUBLIC
../../include
${CMAKE_BINARY_DIR}/include)
-target_link_libraries(openssl ${OPENSSL_LIBS})
+target_link_libraries(openssl ${OPENSSL_LIBS} compat_obj)
if(ENABLE_LIBRESSL_INSTALL)
install(TARGETS openssl DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/apps/openssl/apps.c b/apps/openssl/apps.c
index 70857e04..6ffbe6f0 100644
--- a/apps/openssl/apps.c
+++ b/apps/openssl/apps.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: apps.c,v 1.66 2023/07/23 11:39:29 tb Exp $ */
+/* $OpenBSD: apps.c,v 1.67 2023/11/21 17:56:19 tb Exp $ */
/*
* Copyright (c) 2014 Joel Sing
*
@@ -1716,7 +1716,7 @@ args_verify(char ***pargs, int *pargc, int *badarg, BIO *err,
}
(*pargs)++;
} else if (strcmp(arg, "-purpose") == 0) {
- X509_PURPOSE *xptmp;
+ const X509_PURPOSE *xptmp;
if (!argn)
*badarg = 1;
else {
diff --git a/apps/openssl/ca.c b/apps/openssl/ca.c
index a93be88d..6fedd22c 100644
--- a/apps/openssl/ca.c
+++ b/apps/openssl/ca.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ca.c,v 1.56 2023/07/02 07:08:57 tb Exp $ */
+/* $OpenBSD: ca.c,v 1.58 2024/02/04 13:08:29 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -607,26 +607,6 @@ static const struct option ca_options[] = {
{ NULL },
};
-/*
- * Set a certificate time based on user provided input. Make sure
- * what we put in the certificate is legit for RFC 5280. Returns
- * 0 on success, -1 on an invalid time string. Strings must be
- * YYYYMMDDHHMMSSZ for post 2050 dates. YYYYMMDDHHMMSSZ or
- * YYMMDDHHMMSSZ is accepted for pre 2050 dates, and fixed up to
- * be the correct format in the certificate.
- */
-static int
-setCertificateTime(ASN1_TIME *x509time, char *timestring)
-{
- struct tm tm1;
-
- if (ASN1_time_parse(timestring, strlen(timestring), &tm1, 0) == -1)
- return (-1);
- if (!ASN1_TIME_set_tm(x509time, &tm1))
- return (-1);
- return 0;
-}
-
static void
ca_usage(void)
{
@@ -1985,7 +1965,7 @@ do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
if (strcmp(startdate, "today") == 0) {
if (X509_gmtime_adj(X509_get_notBefore(ret), 0) == NULL)
goto err;
- } else if (setCertificateTime(X509_get_notBefore(ret), startdate) == -1) {
+ } else if (!ASN1_TIME_set_string_X509(X509_get_notBefore(ret), startdate)) {
BIO_printf(bio_err, "Invalid start date %s\n", startdate);
goto err;
}
@@ -1994,7 +1974,7 @@ do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
if (X509_time_adj_ex(X509_get_notAfter(ret), days, 0,
NULL) == NULL)
goto err;
- } else if (setCertificateTime(X509_get_notAfter(ret), enddate) == -1) {
+ } else if (!ASN1_TIME_set_string_X509(X509_get_notAfter(ret), enddate)) {
BIO_printf(bio_err, "Invalid end date %s\n", enddate);
goto err;
}
@@ -2596,7 +2576,6 @@ get_certificate_status(const char *serial, CA_DB *db)
goto err;
}
if (strlen(serial) % 2) {
- /* Set the first char to 0 */ ;
row[DB_serial][0] = '0';
/* Copy String from serial to row[DB_serial] */
diff --git a/apps/openssl/cms.c b/apps/openssl/cms.c
index 121a413a..b94e1467 100644
--- a/apps/openssl/cms.c
+++ b/apps/openssl/cms.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms.c,v 1.34 2023/04/14 15:27:13 tb Exp $ */
+/* $OpenBSD: cms.c,v 1.35 2023/11/21 17:56:19 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
*/
@@ -1140,7 +1140,7 @@ cms_usage(void)
fprintf(stderr, "\nValid purposes:\n\n");
for (i = 0; i < X509_PURPOSE_get_count(); i++) {
- X509_PURPOSE *ptmp = X509_PURPOSE_get0(i);
+ const X509_PURPOSE *ptmp = X509_PURPOSE_get0(i);
fprintf(stderr, " %-18s%s\n", X509_PURPOSE_get0_sname(ptmp),
X509_PURPOSE_get0_name(ptmp));
}
diff --git a/apps/openssl/openssl.1 b/apps/openssl/openssl.1
index be060a3e..0e2ffbcd 100644
--- a/apps/openssl/openssl.1
+++ b/apps/openssl/openssl.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: openssl.1,v 1.152 2023/07/27 07:01:50 tb Exp $
+.\" $OpenBSD: openssl.1,v 1.155 2024/01/26 11:58:37 job Exp $
.\" ====================================================================
.\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
.\"
@@ -110,7 +110,7 @@
.\" copied and put under another distribution licence
.\" [including the GNU Public Licence.]
.\"
-.Dd $Mdocdate: July 27 2023 $
+.Dd $Mdocdate: January 26 2024 $
.Dt OPENSSL 1
.Os
.Sh NAME
@@ -4279,7 +4279,6 @@ Verify the input data and output the recovered data.
.Op Fl no_tls1_2
.Op Fl no_tls1_3
.Op Fl pass Ar arg
-.Op Fl pause
.Op Fl policy_check
.Op Fl port Ar port
.Op Fl prexit
@@ -4445,8 +4444,6 @@ Disable the use of TLS1.2 and 1.3, respectively.
Disable RFC 4507 session ticket support.
.It Fl pass Ar arg
The private key password source.
-.It Fl pause
-Pause 1 second between each read and write call.
.It Fl port Ar port
The
.Ar port
@@ -6103,6 +6100,7 @@ version.
.Op Fl extensions Ar section
.Op Fl extfile Ar file
.Op Fl fingerprint
+.Op Fl force_pubkey Ar key
.Op Fl hash
.Op Fl in Ar file
.Op Fl inform Cm der | net | pem
@@ -6112,7 +6110,9 @@ version.
.Op Fl keyform Cm der | pem
.Op Fl md5 | sha1
.Op Fl modulus
+.Op Fl multivalue-rdn
.Op Fl nameopt Ar option
+.Op Fl new
.Op Fl next_serial
.Op Fl noout
.Op Fl ocsp_uri
@@ -6124,7 +6124,9 @@ version.
.Op Fl purpose
.Op Fl req
.Op Fl serial
+.Op Fl set_issuer Ar name
.Op Fl set_serial Ar n
+.Op Fl set_subject Ar name
.Op Fl setalias Ar arg
.Op Fl signkey Ar file
.Op Fl sigopt Ar nm:v
@@ -6134,6 +6136,7 @@ version.
.Op Fl subject_hash_old
.Op Fl text
.Op Fl trustout
+.Op Fl utf8
.Op Fl x509toreq
.Ek
.El
@@ -6151,10 +6154,14 @@ The following are x509 input, output, and general purpose options:
.It Fl in Ar file
The input file to read from,
or standard input if not specified.
+This option cannot be used with
+.Fl new .
.It Fl inform Cm der | net | pem
The input format.
Normally, the command will expect an X.509 certificate,
but this can change if other options such as
+.Fl in
+or
.Fl req
are present.
.It Fl md5 | sha1
@@ -6257,6 +6264,16 @@ using the older algorithm as used by
versions before 1.0.0.
.It Fl modulus
Print the value of the modulus of the public key contained in the certificate.
+.It Fl multivalue-rdn
+This option causes the
+.Fl subj
+argument to be interpreted with full support for multivalued RDNs,
+for example
+.Qq "/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe" .
+If
+.Fl multivalue-rdn
+is not used, the UID value is set to
+.Qq "123456+CN=John Doe" .
.It Fl nameopt Ar option
Customise how the subject or issuer names are displayed,
either using a list of comma-separated options or by specifying
@@ -6689,12 +6706,39 @@ which contains the section to use.
.It Fl extfile Ar file
File containing certificate extensions to use.
If not specified, no extensions are added to the certificate.
+.It Fl force_pubkey Ar key
+Set the public key of the certificate to the public key contained in
+.Ar key .
.It Fl keyform Cm der | pem
-The format of the private key file used in the
+The format of the key file used in the
+.Fl force_pubkey
+and
.Fl signkey
-option.
+options.
+.It Fl new
+Generate a new certificate using the subject given by
+.Fl set_subject
+and signed by
+.Fl signkey .
+If no public key is provided with
+.Fl force_pubkey ,
+the resulting certificate is self-signed.
+This option cannot be used with
+.Fl in
+or
+.Fl req .
.It Fl req
Expect a certificate request on input instead of a certificate.
+This option cannot be used with
+.Fl new .
+.It Fl set_issuer Ar name
+The issuer name to use.
+.Ar name
+must be formatted as /type0=value0/type1=value1/type2=...;
+characters may be escaped by
+.Sq \e
+(backslash);
+no spaces are skipped.
.It Fl set_serial Ar n
The serial number to use.
This option can be used with either the
@@ -6713,6 +6757,14 @@ options) is not used.
The serial number can be decimal or hex (if preceded by
.Sq 0x ) .
Negative serial numbers can also be specified but their use is not recommended.
+.It Fl set_subject Ar name
+The subject name to use.
+.Ar name
+must be formatted as /type0=value0/type1=value1/type2=...;
+characters may be escaped by
+.Sq \e
+(backslash);
+no spaces are skipped.
.It Fl signkey Ar file
Self-sign
.Ar file
@@ -6733,6 +6785,10 @@ option is supplied.
If the input is a certificate request, a self-signed certificate
is created using the supplied private key using the subject name in
the request.
+.It Fl utf8
+Interpret field values read from a terminal or obtained from a configuration
+file as UTF-8 strings.
+By default, they are interpreted as ASCII.
.It Fl x509toreq
Convert a certificate into a certificate request.
The
diff --git a/apps/openssl/openssl.c b/apps/openssl/openssl.c
index 15888c7b..db87c636 100644
--- a/apps/openssl/openssl.c
+++ b/apps/openssl/openssl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: openssl.c,v 1.35 2023/06/11 13:02:10 jsg Exp $ */
+/* $OpenBSD: openssl.c,v 1.36 2024/02/03 15:58:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -211,12 +211,6 @@ FUNCTION functions[] = {
#endif
/* Message Digests. */
-#ifndef OPENSSL_NO_GOST
- { FUNC_TYPE_MD, "gost-mac", dgst_main },
- { FUNC_TYPE_MD, "md_gost94", dgst_main },
- { FUNC_TYPE_MD, "streebog256", dgst_main },
- { FUNC_TYPE_MD, "streebog512", dgst_main },
-#endif
#ifndef OPENSSL_NO_MD4
{ FUNC_TYPE_MD, "md4", dgst_main },
#endif
diff --git a/apps/openssl/pkcs12.c b/apps/openssl/pkcs12.c
index aedae640..c8706904 100644
--- a/apps/openssl/pkcs12.c
+++ b/apps/openssl/pkcs12.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pkcs12.c,v 1.25 2023/03/06 14:32:06 tb Exp $ */
+/* $OpenBSD: pkcs12.c,v 1.27 2024/02/28 17:04:38 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
*/
@@ -70,6 +70,7 @@
#include
#include
#include
+#include
#define NOKEYS 0x1
#define NOCERTS 0x2
@@ -1010,17 +1011,20 @@ get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **out_chain)
static int
alg_print(BIO *x, const X509_ALGOR *alg)
{
- PBEPARAM *pbe;
- const unsigned char *p;
-
- p = alg->parameter->value.sequence->data;
- pbe = d2i_PBEPARAM(NULL, &p, alg->parameter->value.sequence->length);
+ PBEPARAM *pbe = NULL;
+ const ASN1_OBJECT *aobj;
+ int param_type;
+ const void *param;
+
+ X509_ALGOR_get0(&aobj, ¶m_type, ¶m, alg);
+ if (param_type == V_ASN1_SEQUENCE)
+ pbe = ASN1_item_unpack(param, &PBEPARAM_it);
if (pbe == NULL)
return 1;
BIO_printf(bio_err, "%s, Iteration %ld\n",
- OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)),
+ OBJ_nid2ln(OBJ_obj2nid(aobj)),
ASN1_INTEGER_get(pbe->iter));
- PBEPARAM_free(pbe);
+ ASN1_item_free((ASN1_VALUE *)pbe, &PBEPARAM_it);
return 1;
}
diff --git a/apps/openssl/s_client.c b/apps/openssl/s_client.c
index e5a6b006..299042c5 100644
--- a/apps/openssl/s_client.c
+++ b/apps/openssl/s_client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: s_client.c,v 1.62 2023/07/03 08:03:56 beck Exp $ */
+/* $OpenBSD: s_client.c,v 1.64 2023/12/29 12:15:49 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -223,7 +223,6 @@ static struct {
char *npn_in;
unsigned int off;
char *passarg;
- int pause;
int peekaboo;
char *port;
int prexit;
@@ -659,9 +658,7 @@ static const struct option s_client_options[] = {
},
{
.name = "pause",
- .desc = "Pause 1 second between each read and write call",
- .type = OPTION_FLAG,
- .opt.flag = &cfg.pause,
+ .type = OPTION_DISCARD,
},
{
.name = "peekaboo",
@@ -832,7 +829,7 @@ sc_usage(void)
" [-keymatexport label] [-keymatexportlen len] [-legacy_server_connect]\n"
" [-msg] [-mtu mtu] [-nbio] [-nbio_test] [-no_comp] [-no_ign_eof]\n"
" [-no_legacy_server_connect] [-no_ticket] \n"
- " [-no_tls1_2] [-no_tls1_3] [-pass arg] [-pause] [-policy_check]\n"
+ " [-no_tls1_2] [-no_tls1_3] [-pass arg] [-policy_check]\n"
" [-port port] [-prexit] [-proxy host:port] [-quiet] [-reconnect]\n"
" [-servername name] [-serverpref] [-sess_in file] [-sess_out file]\n"
" [-showcerts] [-starttls protocol] [-state] [-status] [-timeout]\n"
@@ -1088,8 +1085,6 @@ s_client_main(int argc, char **argv)
goto end;
}
}
- if (cfg.pause & 0x01)
- SSL_set_debug(con, 1);
if (SSL_is_dtls(con)) {
sbio = BIO_new_dgram(s, BIO_NOCLOSE);
@@ -1130,7 +1125,6 @@ s_client_main(int argc, char **argv)
sbio = BIO_push(test, sbio);
}
if (cfg.debug) {
- SSL_set_debug(con, 1);
BIO_set_callback(sbio, bio_dump_callback);
BIO_set_callback_arg(sbio, (char *) bio_c_out);
}
diff --git a/apps/openssl/s_server.c b/apps/openssl/s_server.c
index 95fe633e..328ac28a 100644
--- a/apps/openssl/s_server.c
+++ b/apps/openssl/s_server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: s_server.c,v 1.58 2023/07/03 08:03:56 beck Exp $ */
+/* $OpenBSD: s_server.c,v 1.59 2023/12/29 12:15:49 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -1548,7 +1548,6 @@ sv_body(int s, unsigned char *context)
/* SSL_set_fd(con,s); */
if (cfg.debug) {
- SSL_set_debug(con, 1);
BIO_set_callback(SSL_get_rbio(con), bio_dump_callback);
BIO_set_callback_arg(SSL_get_rbio(con), (char *) bio_s_out);
}
@@ -1949,7 +1948,6 @@ www_body(int s, unsigned char *context)
BIO_push(io, ssl_bio);
if (cfg.debug) {
- SSL_set_debug(con, 1);
BIO_set_callback(SSL_get_rbio(con), bio_dump_callback);
BIO_set_callback_arg(SSL_get_rbio(con), (char *) bio_s_out);
}
diff --git a/apps/openssl/ts.c b/apps/openssl/ts.c
index 84008183..c62f1dd6 100644
--- a/apps/openssl/ts.c
+++ b/apps/openssl/ts.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ts.c,v 1.26 2023/03/06 14:32:06 tb Exp $ */
+/* $OpenBSD: ts.c,v 1.27 2023/11/19 09:19:54 tb Exp $ */
/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
* project 2002.
*/
@@ -599,7 +599,7 @@ create_query(BIO *data_bio, char *digest, const EVP_MD *md, const char *policy,
TS_MSG_IMPRINT *msg_imprint = NULL;
X509_ALGOR *algo = NULL;
unsigned char *data = NULL;
- ASN1_OBJECT *policy_obj = NULL;
+ ASN1_OBJECT *md_obj = NULL, *policy_obj = NULL;
ASN1_INTEGER *nonce_asn1 = NULL;
/* Setting default message digest. */
@@ -621,11 +621,14 @@ create_query(BIO *data_bio, char *digest, const EVP_MD *md, const char *policy,
/* Adding algorithm. */
if ((algo = X509_ALGOR_new()) == NULL)
goto err;
- if ((algo->algorithm = OBJ_nid2obj(EVP_MD_type(md))) == NULL)
+ if ((md_obj = OBJ_nid2obj(EVP_MD_type(md))) == NULL)
goto err;
- if ((algo->parameter = ASN1_TYPE_new()) == NULL)
+ /*
+ * This does not use X509_ALGOR_set_md() for historical reasons.
+ * See the comment in PKCS7_SIGNER_INFO_set() for details.
+ */
+ if (!X509_ALGOR_set0(algo, md_obj, V_ASN1_NULL, NULL))
goto err;
- algo->parameter->type = V_ASN1_NULL;
if (!TS_MSG_IMPRINT_set_algo(msg_imprint, algo))
goto err;
diff --git a/apps/openssl/verify.c b/apps/openssl/verify.c
index b4e0f33f..a87d5d47 100644
--- a/apps/openssl/verify.c
+++ b/apps/openssl/verify.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: verify.c,v 1.17 2023/04/14 15:27:13 tb Exp $ */
+/* $OpenBSD: verify.c,v 1.18 2023/11/21 17:56:19 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -251,7 +251,7 @@ verify_usage(void)
fprintf(stderr, "\nValid purposes:\n\n");
for (i = 0; i < X509_PURPOSE_get_count(); i++) {
- X509_PURPOSE *ptmp = X509_PURPOSE_get0(i);
+ const X509_PURPOSE *ptmp = X509_PURPOSE_get0(i);
fprintf(stderr, " %-18s%s\n", X509_PURPOSE_get0_sname(ptmp),
X509_PURPOSE_get0_name(ptmp));
}
diff --git a/apps/openssl/x509.c b/apps/openssl/x509.c
index 7c8f34f6..0d5cf5d0 100644
--- a/apps/openssl/x509.c
+++ b/apps/openssl/x509.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: x509.c,v 1.33 2023/04/14 06:47:07 tb Exp $ */
+/* $OpenBSD: x509.c,v 1.37 2024/01/26 11:58:37 job Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -81,12 +81,13 @@
static int callb(int ok, X509_STORE_CTX *ctx);
static int sign(X509 *x, EVP_PKEY *pkey, int days, int clrext,
- const EVP_MD *digest, CONF *conf, char *section);
+ const EVP_MD *digest, CONF *conf, char *section, X509_NAME *issuer,
+ char *force_pubkey);
static int x509_certify(X509_STORE *ctx, char *CAfile, const EVP_MD *digest,
X509 *x, X509 *xca, EVP_PKEY *pkey, STACK_OF(OPENSSL_STRING) *sigopts,
char *serial, int create, int days, int clrext, CONF *conf, char *section,
- ASN1_INTEGER *sno);
-static int purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt);
+ ASN1_INTEGER *sno, X509_NAME *issuer);
+static int purpose_print(BIO *bio, X509 *cert, const X509_PURPOSE *pt);
static struct {
char *alias;
@@ -103,6 +104,7 @@ static struct {
unsigned long certflag;
int checkend;
int checkoffset;
+ unsigned long chtype;
int clrext;
int clrreject;
int clrtrust;
@@ -113,6 +115,7 @@ static struct {
char *extfile;
char *extsect;
int fingerprint;
+ char *force_pubkey;
char *infile;
int informat;
int issuer;
@@ -124,6 +127,8 @@ static struct {
int keyformat;
const EVP_MD *md_alg;
int modulus;
+ int multirdn;
+ int new;
int next_serial;
unsigned long nmflag;
int noout;
@@ -139,6 +144,8 @@ static struct {
STACK_OF(ASN1_OBJECT) *reject;
int reqfile;
int serial;
+ char *set_issuer;
+ char *set_subject;
int sign_flag;
STACK_OF(OPENSSL_STRING) *sigopts;
ASN1_INTEGER *sno;
@@ -312,6 +319,13 @@ x509_opt_sigopt(char *arg)
return (0);
}
+static int
+x509_opt_utf8(void)
+{
+ cfg.chtype = MBSTRING_UTF8;
+ return (0);
+}
+
static const struct option x509_options[] = {
{
.name = "C",
@@ -467,6 +481,13 @@ static const struct option x509_options[] = {
.opt.order = &cfg.fingerprint,
.order = &cfg.num,
},
+ {
+ .name = "force_pubkey",
+ .argname = "key",
+ .desc = "Force the public key to be put in the certificate",
+ .type = OPTION_ARG,
+ .opt.arg = &cfg.force_pubkey,
+ },
{
.name = "hash",
.desc = "Synonym for -subject_hash",
@@ -511,6 +532,12 @@ static const struct option x509_options[] = {
.order = &cfg.num,
},
#endif
+ {
+ .name = "key",
+ .argname = "file",
+ .type = OPTION_ARG_FUNC,
+ .opt.argfunc = x509_opt_signkey,
+ },
{
.name = "keyform",
.argname = "fmt",
@@ -525,6 +552,12 @@ static const struct option x509_options[] = {
.opt.order = &cfg.modulus,
.order = &cfg.num,
},
+ {
+ .name = "multivalue-rdn",
+ .desc = "Enable support for multivalued RDNs",
+ .type = OPTION_FLAG,
+ .opt.flag = &cfg.multirdn,
+ },
{
.name = "nameopt",
.argname = "option",
@@ -532,6 +565,12 @@ static const struct option x509_options[] = {
.type = OPTION_ARG_FUNC,
.opt.argfunc = x509_opt_nameopt,
},
+ {
+ .name = "new",
+ .desc = "Generate a new certificate",
+ .type = OPTION_FLAG,
+ .opt.flag = &cfg.new,
+ },
{
.name = "next_serial",
.desc = "Print the next serial number",
@@ -608,6 +647,13 @@ static const struct option x509_options[] = {
.opt.order = &cfg.serial,
.order = &cfg.num,
},
+ {
+ .name = "set_issuer",
+ .argname = "name",
+ .desc = "Set the issuer name",
+ .type = OPTION_ARG,
+ .opt.arg = &cfg.set_issuer,
+ },
{
.name = "set_serial",
.argname = "n",
@@ -615,6 +661,13 @@ static const struct option x509_options[] = {
.type = OPTION_ARG_FUNC,
.opt.argfunc = x509_opt_set_serial,
},
+ {
+ .name = "set_subject",
+ .argname = "name",
+ .desc = "Set the subject name",
+ .type = OPTION_ARG,
+ .opt.arg = &cfg.set_subject,
+ },
{
.name = "setalias",
.argname = "arg",
@@ -643,6 +696,11 @@ static const struct option x509_options[] = {
.opt.order = &cfg.startdate,
.order = &cfg.num,
},
+ {
+ .name = "subj",
+ .type = OPTION_ARG,
+ .opt.arg = &cfg.set_subject,
+ },
{
.name = "subject",
.desc = "Print subject name",
@@ -679,6 +737,12 @@ static const struct option x509_options[] = {
.type = OPTION_FLAG,
.opt.flag = &cfg.trustout,
},
+ {
+ .name = "utf8",
+ .desc = "Input characters are in UTF-8 (default ASCII)",
+ .type = OPTION_FUNC,
+ .opt.func = x509_opt_utf8,
+ },
{
.name = "x509toreq",
.desc = "Output a certification request object",
@@ -704,16 +768,17 @@ x509_usage(void)
" [-CAkeyform der | pem] [-CAserial file] [-certopt option]\n"
" [-checkend arg] [-clrext] [-clrreject] [-clrtrust] [-dates]\n"
" [-days arg] [-email] [-enddate] [-extensions section]\n"
- " [-extfile file] [-fingerprint] [-hash] [-in file]\n"
- " [-inform der | net | pem] [-issuer] [-issuer_hash]\n"
- " [-issuer_hash_old] [-keyform der | pem] [-md5 | -sha1]\n"
- " [-modulus] [-nameopt option] [-next_serial] [-noout]\n"
- " [-ocsp_uri] [-ocspid] [-out file]\n"
- " [-outform der | net | pem] [-passin arg] [-pubkey]\n"
- " [-purpose] [-req] [-serial] [-set_serial n] [-setalias arg]\n"
- " [-signkey file] [-sigopt nm:v] [-startdate] [-subject]\n"
- " [-subject_hash] [-subject_hash_old] [-text] [-trustout]\n"
- " [-x509toreq]\n");
+ " [-extfile file] [-fingerprint] [-force_pubkey key] [-hash]\n"
+ " [-in file] [-inform der | net | pem] [-issuer]\n"
+ " [-issuer_hash] [-issuer_hash_old] [-keyform der | pem]\n"
+ " [-md5 | -sha1] [-modulus] [-multivalue-rdn]\n"
+ " [-nameopt option] [-new] [-next_serial] [-noout] [-ocsp_uri]\n"
+ " [-ocspid] [-out file] [-outform der | net | pem]\n"
+ " [-passin arg] [-pubkey] [-purpose] [-req] [-serial]\n"
+ " [-set_issuer name] [-set_serial n] [-set_subject name]\n"
+ " [-setalias arg] [-signkey file] [-sigopt nm:v] [-startdate]\n"
+ " [-subject] [-subject_hash] [-subject_hash_old] [-text]\n"
+ " [-trustout] [-utf8] [-x509toreq]\n");
fprintf(stderr, "\n");
options_usage(x509_options);
fprintf(stderr, "\n");
@@ -725,7 +790,9 @@ x509_main(int argc, char **argv)
int ret = 1;
X509_REQ *req = NULL;
X509 *x = NULL, *xca = NULL;
- EVP_PKEY *Upkey = NULL, *CApkey = NULL;
+ X509_NAME *iname = NULL, *sname = NULL;
+ EVP_PKEY *Fpkey = NULL, *Upkey = NULL, *CApkey = NULL;
+ EVP_PKEY *pkey;
int i;
BIO *out = NULL;
BIO *STDout = NULL;
@@ -741,6 +808,7 @@ x509_main(int argc, char **argv)
}
memset(&cfg, 0, sizeof(cfg));
+ cfg.chtype = MBSTRING_ASC;
cfg.days = DEF_DAYS;
cfg.informat = FORMAT_PEM;
cfg.outformat = FORMAT_PEM;
@@ -811,8 +879,33 @@ x509_main(int argc, char **argv)
goto end;
}
}
+ if (cfg.force_pubkey != NULL) {
+ if ((Fpkey = load_pubkey(bio_err, cfg.force_pubkey,
+ cfg.keyformat, 0, NULL, "Forced key")) == NULL)
+ goto end;
+ }
+ if (cfg.new) {
+ if (cfg.infile != NULL) {
+ BIO_printf(bio_err, "Can't combine -new and -in\n");
+ goto end;
+ }
+ if (cfg.reqfile) {
+ BIO_printf(bio_err, "Can't combine -new and -req\n");
+ goto end;
+ }
+ if (cfg.set_subject == NULL) {
+ BIO_printf(bio_err, "Must use -set_subject with -new\n");
+ goto end;
+ }
+ if (cfg.keyfile == NULL) {
+ BIO_printf(bio_err, "Must use -signkey with -new\n");
+ goto end;
+ }
+ if ((Upkey = load_key(bio_err, cfg.keyfile, cfg.keyformat, 0,
+ passin, "Private key")) == NULL)
+ goto end;
+ }
if (cfg.reqfile) {
- EVP_PKEY *pkey;
BIO *in;
if (!cfg.sign_flag && !cfg.CA_flag) {
@@ -861,6 +954,8 @@ x509_main(int argc, char **argv)
print_name(bio_err, "subject=", X509_REQ_get_subject_name(req),
cfg.nmflag);
+ }
+ if (cfg.reqfile || cfg.new) {
if ((x = X509_new()) == NULL)
goto end;
@@ -875,9 +970,21 @@ x509_main(int argc, char **argv)
} else if (!X509_set_serialNumber(x, cfg.sno))
goto end;
- if (!X509_set_issuer_name(x, X509_REQ_get_subject_name(req)))
+ if (cfg.set_issuer != NULL) {
+ iname = parse_name(cfg.set_issuer, cfg.chtype,
+ cfg.multirdn);
+ if (iname == NULL)
+ goto end;
+ }
+
+ if (cfg.set_subject != NULL)
+ sname = parse_name(cfg.set_subject, cfg.chtype,
+ cfg.multirdn);
+ else
+ sname = X509_NAME_dup(X509_REQ_get_subject_name(req));
+ if (sname == NULL)
goto end;
- if (!X509_set_subject_name(x, X509_REQ_get_subject_name(req)))
+ if (!X509_set_subject_name(x, sname))
goto end;
if (X509_gmtime_adj(X509_get_notBefore(x), 0) == NULL)
@@ -886,7 +993,11 @@ x509_main(int argc, char **argv)
NULL) == NULL)
goto end;
- if ((pkey = X509_REQ_get0_pubkey(req)) == NULL)
+ if ((pkey = Fpkey) == NULL)
+ pkey = X509_REQ_get0_pubkey(req);
+ if (pkey == NULL)
+ pkey = Upkey;
+ if (pkey == NULL)
goto end;
if (!X509_set_pubkey(x, pkey))
goto end;
@@ -1022,7 +1133,7 @@ x509_main(int argc, char **argv)
}
#endif
else if (cfg.pprint == i) {
- X509_PURPOSE *ptmp;
+ const X509_PURPOSE *ptmp;
int j;
BIO_printf(STDout, "Certificate purposes:\n");
@@ -1156,8 +1267,7 @@ x509_main(int argc, char **argv)
ASN1_TIME *nB = X509_get_notBefore(x);
BIO_puts(STDout, "notBefore=");
- if (ASN1_time_parse(nB->data, nB->length, NULL,
- 0) == -1)
+ if (!ASN1_TIME_to_tm(nB, NULL))
BIO_puts(STDout,
"INVALID RFC5280 TIME");
else
@@ -1167,8 +1277,7 @@ x509_main(int argc, char **argv)
ASN1_TIME *nA = X509_get_notAfter(x);
BIO_puts(STDout, "notAfter=");
- if (ASN1_time_parse(nA->data, nA->length, NULL,
- 0) == -1)
+ if (!ASN1_TIME_to_tm(nA, NULL))
BIO_puts(STDout,
"INVALID RFC5280 TIME");
else
@@ -1193,10 +1302,7 @@ x509_main(int argc, char **argv)
BIO_printf(STDout, "%02X%c", md[j],
(j + 1 == (int)n) ? '\n' : ':');
}
-
- /* should be in the library */
} else if (cfg.sign_flag == i && cfg.x509req == 0) {
- BIO_printf(bio_err, "Getting Private key\n");
if (Upkey == NULL) {
Upkey = load_key(bio_err, cfg.keyfile,
cfg.keyformat, 0, passin,
@@ -1206,10 +1312,10 @@ x509_main(int argc, char **argv)
}
if (!sign(x, Upkey, cfg.days,
cfg.clrext, cfg.digest,
- extconf, cfg.extsect))
+ extconf, cfg.extsect, iname,
+ cfg.force_pubkey))
goto end;
} else if (cfg.CA_flag == i) {
- BIO_printf(bio_err, "Getting CA Private Key\n");
if (cfg.CAkeyfile != NULL) {
CApkey = load_key(bio_err, cfg.CAkeyfile,
cfg.CAkeyformat, 0, passin,
@@ -1220,7 +1326,7 @@ x509_main(int argc, char **argv)
if (!x509_certify(ctx, cfg.CAfile, cfg.digest,
x, xca, CApkey, cfg.sigopts, cfg.CAserial,
cfg.CA_createserial, cfg.days, cfg.clrext,
- extconf, cfg.extsect, cfg.sno))
+ extconf, cfg.extsect, cfg.sno, iname))
goto end;
} else if (cfg.x509req == i) {
EVP_PKEY *pk;
@@ -1304,10 +1410,13 @@ x509_main(int argc, char **argv)
NCONF_free(extconf);
BIO_free_all(out);
BIO_free_all(STDout);
+ X509_NAME_free(iname);
+ X509_NAME_free(sname);
X509_STORE_free(ctx);
X509_REQ_free(req);
X509_free(x);
X509_free(xca);
+ EVP_PKEY_free(Fpkey);
EVP_PKEY_free(Upkey);
EVP_PKEY_free(CApkey);
sk_OPENSSL_STRING_free(cfg.sigopts);
@@ -1368,7 +1477,7 @@ static int
x509_certify(X509_STORE *ctx, char *CAfile, const EVP_MD *digest, X509 *x,
X509 *xca, EVP_PKEY *pkey, STACK_OF(OPENSSL_STRING) *sigopts,
char *serialfile, int create, int days, int clrext, CONF *conf,
- char *section, ASN1_INTEGER *sno)
+ char *section, ASN1_INTEGER *sno, X509_NAME *issuer)
{
int ret = 0;
ASN1_INTEGER *bs = NULL;
@@ -1407,8 +1516,14 @@ x509_certify(X509_STORE *ctx, char *CAfile, const EVP_MD *digest, X509 *x,
"CA certificate and CA private key do not match\n");
goto end;
}
- if (!X509_set_issuer_name(x, X509_get_subject_name(xca)))
+
+ if (issuer == NULL)
+ issuer = X509_get_subject_name(xca);
+ if (issuer == NULL)
goto end;
+ if (!X509_set_issuer_name(x, issuer))
+ goto end;
+
if (!X509_set_serialNumber(x, bs))
goto end;
@@ -1485,7 +1600,7 @@ callb(int ok, X509_STORE_CTX *ctx)
/* self sign */
static int
sign(X509 *x, EVP_PKEY *pkey, int days, int clrext, const EVP_MD *digest,
- CONF *conf, char *section)
+ CONF *conf, char *section, X509_NAME *issuer, char *force_pubkey)
{
EVP_PKEY *pktmp;
@@ -1495,7 +1610,11 @@ sign(X509 *x, EVP_PKEY *pkey, int days, int clrext, const EVP_MD *digest,
EVP_PKEY_copy_parameters(pktmp, pkey);
EVP_PKEY_save_parameters(pktmp, 1);
- if (!X509_set_issuer_name(x, X509_get_subject_name(x)))
+ if (issuer == NULL)
+ issuer = X509_get_subject_name(x);
+ if (issuer == NULL)
+ goto err;
+ if (!X509_set_issuer_name(x, issuer))
goto err;
if (X509_gmtime_adj(X509_get_notBefore(x), 0) == NULL)
goto err;
@@ -1508,8 +1627,10 @@ sign(X509 *x, EVP_PKEY *pkey, int days, int clrext, const EVP_MD *digest,
(long) 60 * 60 * 24 * days) == NULL)
goto err;
- if (!X509_set_pubkey(x, pkey))
- goto err;
+ if (force_pubkey == NULL) {
+ if (!X509_set_pubkey(x, pkey))
+ goto err;
+ }
if (clrext) {
while (X509_get_ext_count(x) > 0) {
if (X509_delete_ext(x, 0) == NULL)
@@ -1536,10 +1657,10 @@ sign(X509 *x, EVP_PKEY *pkey, int days, int clrext, const EVP_MD *digest,
}
static int
-purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt)
+purpose_print(BIO *bio, X509 *cert, const X509_PURPOSE *pt)
{
int id, i, idret;
- char *pname;
+ const char *pname;
id = X509_PURPOSE_get_id(pt);
pname = X509_PURPOSE_get0_name(pt);
diff --git a/cert.pem b/cert.pem
index e5215f3c..0dd54a2a 100644
--- a/cert.pem
+++ b/cert.pem
@@ -1,4 +1,4 @@
-# $OpenBSD: cert.pem,v 1.26 2023/05/06 17:55:38 tb Exp $
+# $OpenBSD: cert.pem,v 1.28 2023/11/27 21:44:21 tb Exp $
### /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
=== /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
@@ -12,11 +12,11 @@ Certificate:
Not After : May 5 15:22:07 2036 GMT
Subject: C=ES, CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
65:CD:EB:AB:35:1E:00:3E:7E:D5:74:C0:1C:B4:73:47:0E:1A:64:2F
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:1
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: X509v3 Any Policy
CPS: http://www.firmaprofesional.com/cps
User Notice:
@@ -75,31 +75,31 @@ Certificate:
Not After : Dec 31 09:37:37 2030 GMT
Subject: CN=ACCVRAIZ1, OU=PKIACCV, O=ACCV, C=ES
X509v3 extensions:
- Authority Information Access:
+ Authority Information Access:
CA Issuers - URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1.crt
OCSP - URI:http://ocsp.accv.es
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: X509v3 Any Policy
User Notice:
Explicit Text:
CPS: http://www.accv.es/legislacion_c.htm
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1_der.crl
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Alternative Name:
+ X509v3 Subject Alternative Name:
email:accv@accv.es
SHA1 Fingerprint=93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17
SHA256 Fingerprint=9A:6E:C0:12:E1:A7:DA:9D:BE:34:19:4D:47:8A:D7:C0:DB:18:22:FB:07:1D:F1:29:81:49:6E:D1:04:38:41:13
@@ -161,11 +161,11 @@ Certificate:
Not After : Sep 22 11:22:02 2030 GMT
Subject: C=IT, L=Milan, O=Actalis S.p.A./03358520967, CN=Actalis Authentication Root CA
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0
X509v3 Key Usage: critical
@@ -219,7 +219,7 @@ Certificate:
Not After : Dec 31 14:06:06 2030 GMT
Subject: C=US, O=AffirmTrust, CN=AffirmTrust Commercial
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
9D:93:C6:53:8B:5E:CA:AF:3F:9F:1E:0F:E5:99:95:BC:24:F6:94:8F
X509v3 Basic Constraints: critical
CA:TRUE
@@ -258,7 +258,7 @@ Certificate:
Not After : Dec 31 14:08:24 2030 GMT
Subject: C=US, O=AffirmTrust, CN=AffirmTrust Networking
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
07:1F:D2:E7:9C:DA:C2:6E:A2:40:B4:B0:7A:50:10:50:74:C4:C8:BD
X509v3 Basic Constraints: critical
CA:TRUE
@@ -297,7 +297,7 @@ Certificate:
Not After : Dec 31 14:10:36 2040 GMT
Subject: C=US, O=AffirmTrust, CN=AffirmTrust Premium
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
9D:C0:67:A6:0C:22:D9:26:F5:45:AB:A6:65:52:11:27:D8:45:AC:63
X509v3 Basic Constraints: critical
CA:TRUE
@@ -347,7 +347,7 @@ Certificate:
Not After : Dec 31 14:20:24 2040 GMT
Subject: C=US, O=AffirmTrust, CN=AffirmTrust Premium ECC
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
9A:AF:29:7A:C0:11:35:35:26:51:30:00:C3:6A:FE:40:D5:AE:D6:3C
X509v3 Basic Constraints: critical
CA:TRUE
@@ -383,11 +383,11 @@ Certificate:
Not After : Apr 26 08:57:56 2044 GMT
Subject: C=TN, O=Agence Nationale de Certification Electronique, CN=TunTrust Root CA
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
06:9A:9B:1F:53:7D:F1:F5:A4:C8:D3:86:3E:A1:73:59:B4:F7:44:21
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:06:9A:9B:1F:53:7D:F1:F5:A4:C8:D3:86:3E:A1:73:59:B4:F7:44:21
X509v3 Key Usage: critical
@@ -446,7 +446,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
SHA1 Fingerprint=8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16
SHA256 Fingerprint=8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E
@@ -486,7 +486,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B0:0C:F0:4C:30:F4:05:58:02:48:FD:33:E5:52:AF:4B:84:E3:66:52
SHA1 Fingerprint=5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A
SHA256 Fingerprint=1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4
@@ -537,7 +537,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
AB:B6:DB:D7:06:9E:37:AC:30:86:07:91:70:C7:9C:C4:19:B1:78:C0
SHA1 Fingerprint=0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E
SHA256 Fingerprint=18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4
@@ -569,7 +569,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
D3:EC:C7:3A:65:6E:CC:E1:DA:76:9A:56:FB:9C:F3:86:6D:57:E5:81
SHA1 Fingerprint=F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE
SHA256 Fingerprint=E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92
@@ -600,10 +600,10 @@ Certificate:
Not After : Aug 30 10:00:38 2039 GMT
Subject: serialNumber=G63287510, C=ES, O=ANF Autoridad de Certificacion, OU=ANF CA Raiz, CN=ANF Secure Server Root CA
X509v3 extensions:
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:9C:5F:D0:6C:63:A3:5F:93:CA:93:98:08:AD:8C:87:A5:2C:5C:C1:37
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
9C:5F:D0:6C:63:A3:5F:93:CA:93:98:08:AD:8C:87:A5:2C:5C:C1:37
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -662,7 +662,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
8D:06:66:74:24:76:3A:F3:89:F7:BC:D6:BD:47:7D:2F:BC:10:5F:4B
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -697,7 +697,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
8C:FB:1C:75:BC:02:D3:9F:4E:2E:48:D9:F9:60:54:AA:C4:B3:4F:FA
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -750,14 +750,14 @@ Certificate:
Not After : Dec 31 23:59:59 2030 GMT
Subject: CN=Atos TrustedRoot 2011, O=Atos, C=DE
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
A7:A5:06:B1:2C:A6:09:60:EE:D1:97:E9:70:AE:BC:3B:19:6C:DB:21
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:A7:A5:06:B1:2C:A6:09:60:EE:D1:97:E9:70:AE:BC:3B:19:6C:DB:21
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.6189.3.4.1.1
X509v3 Key Usage: critical
@@ -785,6 +785,91 @@ maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
-----END CERTIFICATE-----
+=== /CN=Atos TrustedRoot Root CA ECC TLS 2021/O=Atos/C=DE
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 3d:98:3b:a6:66:3d:90:63:f7:7e:26:57:38:04:ef:00
+ Signature Algorithm: ecdsa-with-SHA384
+ Validity
+ Not Before: Apr 22 09:26:23 2021 GMT
+ Not After : Apr 17 09:26:22 2041 GMT
+ Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021, O=Atos, C=DE
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Subject Key Identifier:
+ 76:28:25:D6:7D:E0:66:9A:7A:09:B2:6A:3B:8E:33:D7:36:D3:4F:A2
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+SHA1 Fingerprint=9E:BC:75:10:42:B3:02:F3:81:F4:F7:30:62:D4:8F:C3:A7:51:B2:DD
+SHA256 Fingerprint=B2:FA:E5:3E:14:CC:D7:AB:92:12:06:47:01:AE:27:9C:1D:89:88:FA:CB:77:5F:A8:A0:08:91:4E:66:39:88:A8
+-----BEGIN CERTIFICATE-----
+MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w
+LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w
+CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0
+MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF
+Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI
+zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X
+tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4
+AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2
+KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD
+aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu
+CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo
+9H1/IISpQuQo
+-----END CERTIFICATE-----
+=== /CN=Atos TrustedRoot Root CA RSA TLS 2021/O=Atos/C=DE
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 53:d5:cf:e6:19:93:0b:fb:2b:05:12:d8:c2:2a:a2:a4
+ Signature Algorithm: sha384WithRSAEncryption
+ Validity
+ Not Before: Apr 22 09:21:10 2021 GMT
+ Not After : Apr 17 09:21:09 2041 GMT
+ Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021, O=Atos, C=DE
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Subject Key Identifier:
+ 74:49:99:D1:FF:B4:7A:68:45:75:C3:7E:B4:DC:CC:CE:39:33:DA:08
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+SHA1 Fingerprint=18:52:3B:0D:06:37:E4:D6:3A:DF:23:E4:98:FB:5B:16:FB:86:74:48
+SHA256 Fingerprint=81:A9:08:8E:A5:9F:B3:64:C5:48:A6:F8:55:59:09:9B:6F:04:05:EF:BF:18:E5:32:4E:C9:F4:57:BA:00:11:2F
+-----BEGIN CERTIFICATE-----
+MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM
+MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx
+MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00
+MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD
+QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z
+4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv
+Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ
+kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs
+GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln
+nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh
+3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD
+0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy
+geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8
+ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB
+c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI
+pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
+dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
+DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS
+4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs
+o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ
+qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw
+xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM
+rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4
+AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR
+0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY
+o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5
+dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE
+oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ==
+-----END CERTIFICATE-----
### Baltimore
@@ -799,7 +884,7 @@ Certificate:
Not After : May 12 23:59:00 2025 GMT
Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:3
@@ -829,6 +914,95 @@ ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
-----END CERTIFICATE-----
+### BEIJING CERTIFICATE AUTHORITY
+
+=== /C=CN/O=BEIJING CERTIFICATE AUTHORITY/CN=BJCA Global Root CA1
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 55:6f:65:e3:b4:d9:90:6a:1b:09:d1:6c:3e:c0:6c:20
+ Signature Algorithm: sha256WithRSAEncryption
+ Validity
+ Not Before: Dec 19 03:16:17 2019 GMT
+ Not After : Dec 12 03:16:17 2044 GMT
+ Subject: C=CN, O=BEIJING CERTIFICATE AUTHORITY, CN=BJCA Global Root CA1
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ C5:EF:ED:CC:D8:8D:21:C6:48:E4:E3:D7:14:2E:A7:16:93:E5:98:01
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+SHA1 Fingerprint=D5:EC:8D:7B:4C:BA:79:F4:E7:E8:CB:9D:6B:AE:77:83:10:03:21:6A
+SHA256 Fingerprint=F3:89:6F:88:FE:7C:0A:88:27:66:A7:FA:6A:D2:74:9F:B5:7A:7F:3E:98:FB:76:9C:1F:A7:B0:9C:2C:44:D5:AE
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU
+MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI
+T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz
+MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF
+SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh
+bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z
+xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ
+spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5
+58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR
+at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll
+5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq
+nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK
+V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/
+pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO
+z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn
+jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+
+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF
+7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4
+YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli
+awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u
++2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88
+X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN
+SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo
+P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI
++pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz
+znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9
+eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2
+YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy
+r/6zcCwupvI=
+-----END CERTIFICATE-----
+=== /C=CN/O=BEIJING CERTIFICATE AUTHORITY/CN=BJCA Global Root CA2
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 2c:17:08:7d:64:2a:c0:fe:85:18:59:06:cf:b4:4a:eb
+ Signature Algorithm: ecdsa-with-SHA384
+ Validity
+ Not Before: Dec 19 03:18:21 2019 GMT
+ Not After : Dec 12 03:18:21 2044 GMT
+ Subject: C=CN, O=BEIJING CERTIFICATE AUTHORITY, CN=BJCA Global Root CA2
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ D2:4A:B1:51:7F:06:F0:D1:82:1F:4E:6E:5F:AB:83:FC:48:D4:B0:91
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+SHA1 Fingerprint=F4:27:86:EB:6E:B8:6D:88:31:67:02:FB:BA:66:A4:53:00:AA:7A:A6
+SHA256 Fingerprint=57:4D:F6:93:1E:27:80:39:66:7B:72:0A:FD:C1:60:0F:C2:7E:B6:6D:D3:09:29:79:FB:73:85:64:87:21:28:82
+-----BEGIN CERTIFICATE-----
+MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw
+CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ
+VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy
+MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ
+TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS
+b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B
+IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+
++kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK
+sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
+AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA
+94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B
+43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==
+-----END CERTIFICATE-----
+
### Buypass AS-983163327
=== /C=NO/O=Buypass AS-983163327/CN=Buypass Class 2 Root CA
@@ -844,7 +1018,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C9:80:77:E0:62:92:82:F5:46:9C:F3:BA:F7:4C:C3:DE:B8:A3:AD:39
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -894,7 +1068,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
47:B8:CD:FF:E5:6F:EE:F8:B2:EC:2F:4E:0E:F9:25:B0:8E:3C:6B:C3
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -950,7 +1124,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
F3:28:18:CB:64:75:EE:29:2A:EB:ED:AE:23:58:38:85:EB:C8:22:07
SHA1 Fingerprint=F9:E1:6D:DC:01:89:CF:D5:82:45:63:3E:C5:37:7D:C2:EB:93:6F:2B
SHA256 Fingerprint=B4:58:5F:22:E4:AC:75:6A:4E:86:12:A1:36:1C:5D:9D:03:1A:93:FD:84:FE:BB:77:8F:A3:06:8B:0F:C4:2D:C2
@@ -983,7 +1157,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E0:AA:3F:25:8D:9F:44:5C:C1:3A:E8:2E:AE:77:4C:84:3E:67:0C:F4
SHA1 Fingerprint=A0:50:EE:0F:28:71:F4:27:B2:12:6D:6F:50:96:25:BA:CC:86:42:AF
SHA256 Fingerprint=77:B8:2C:D8:64:4C:43:05:F7:AC:C5:CB:15:6B:45:67:50:04:03:3D:51:C6:0C:62:02:A8:E0:C3:34:67:D3:A0
@@ -1036,7 +1210,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E0:8C:9B:DB:25:49:B3:F1:7C:86:D6:B2:42:87:0B:D0:6B:A0:D9:E4
SHA1 Fingerprint=FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B
SHA256 Fingerprint=EA:A9:62:C4:FA:4A:6B:AF:EB:E4:15:19:6D:35:1C:CD:88:8D:4F:53:F3:FA:8A:E6:D7:C4:66:A9:4E:60:42:BB
@@ -1079,7 +1253,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
82:21:2D:66:C6:D7:A0:E0:15:EB:CE:4C:09:77:C4:60:9E:54:6E:03
SHA1 Fingerprint=26:F9:93:B4:ED:3D:28:27:B0:B9:4B:A7:E9:15:1D:A3:8D:92:E5:32
SHA256 Fingerprint=65:7C:FE:2F:A7:3F:AA:38:46:25:71:F3:32:A2:36:3A:46:FC:E7:02:09:51:71:07:02:CD:FB:B6:EE:DA:33:05
@@ -1128,14 +1302,14 @@ Certificate:
Not After : Dec 31 03:07:01 2029 GMT
Subject: C=CN, O=China Financial Certification Authority, CN=CFCA EV ROOT
X509v3 extensions:
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:E3:FE:2D:FD:28:D0:0B:B5:BA:B6:A2:C4:BF:06:AA:05:8C:93:FB:2F
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E3:FE:2D:FD:28:D0:0B:B5:BA:B6:A2:C4:BF:06:AA:05:8C:93:FB:2F
SHA1 Fingerprint=E2:B8:29:4B:55:84:AB:6B:58:C2:90:46:6C:AC:3F:B8:39:8F:84:83
SHA256 Fingerprint=5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD
@@ -1188,7 +1362,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
F2:77:17:FA:5E:A8:FE:F6:3D:71:D5:68:BA:C9:46:0C:38:D8:AF:B0
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -1237,11 +1411,11 @@ Certificate:
Not After : Dec 20 02:31:27 2034 GMT
Subject: C=TW, O=Chunghwa Telecom Co., Ltd., OU=ePKI Root Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
1E:0C:F7:B6:67:F2:E1:92:26:09:45:C0:55:39:2E:77:3F:42:4A:A2
- X509v3 Basic Constraints:
+ X509v3 Basic Constraints:
CA:TRUE
- setCext-hashedRoot:
+ setCext-hashedRoot:
0/0-...0...+......0...g*.....E...
V|.[x....S.....
SHA1 Fingerprint=67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
@@ -1280,61 +1454,6 @@ W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
-----END CERTIFICATE-----
-### Comodo CA Limited
-
-=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Validity
- Not Before: Jan 1 00:00:00 2004 GMT
- Not After : Dec 31 23:59:59 2028 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.comodoca.com/AAACertificateServices.crl
-
- Full Name:
- URI:http://crl.comodo.net/AAACertificateServices.crl
-
-SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
-SHA256 Fingerprint=D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
-YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
-GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
-BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
-3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
-YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
-rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
-ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
-oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
-b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
-AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
-GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
-G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
-l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
-smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
### COMODO CA Limited
=== /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO Certification Authority
@@ -1349,13 +1468,13 @@ Certificate:
Not After : Dec 31 23:59:59 2029 GMT
Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
0B:58:E5:8B:C6:4C:15:37:A4:40:A9:30:A9:21:BE:47:36:5A:56:FF
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.comodoca.com/COMODOCertificationAuthority.crl
@@ -1399,7 +1518,7 @@ Certificate:
Not After : Jan 18 23:59:59 2038 GMT
Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO ECC Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
75:71:A7:19:48:19:BC:9D:9D:EA:41:47:DF:94:C4:48:77:99:D3:79
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -1435,7 +1554,7 @@ Certificate:
Not After : Jan 18 23:59:59 2038 GMT
Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -1478,6 +1597,61 @@ QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
NVOFBkpdn627G190
-----END CERTIFICATE-----
+### Comodo CA Limited
+
+=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1 (0x1)
+ Signature Algorithm: sha1WithRSAEncryption
+ Validity
+ Not Before: Jan 1 00:00:00 2004 GMT
+ Not After : Dec 31 23:59:59 2028 GMT
+ Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.comodoca.com/AAACertificateServices.crl
+
+ Full Name:
+ URI:http://crl.comodo.net/AAACertificateServices.crl
+
+SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
+SHA256 Fingerprint=D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
+MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
+GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
+YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
+GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
+BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
+3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
+YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
+rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
+ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
+oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
+b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
+AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
+GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
+G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
+l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
+smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
### D-Trust GmbH
=== /C=DE/O=D-Trust GmbH/CN=D-TRUST BR Root CA 1 2020
@@ -1494,11 +1668,11 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
73:91:10:AB:FF:55:B3:5A:7C:09:25:D5:B2:BA:08:A0:6B:AB:1F:6D
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.d-trust.net/crl/d-trust_br_root_ca_1_2020.crl
@@ -1540,11 +1714,11 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
7F:10:01:16:37:3A:A4:28:E4:50:F8:A4:F7:EC:6B:32:B6:FE:E9:8B
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.d-trust.net/crl/d-trust_ev_root_ca_1_2020.crl
@@ -1585,11 +1759,11 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
FD:DA:14:C4:9F:30:DE:21:BD:1E:42:39:FC:AB:63:23:49:E0:F1:84
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist
@@ -1637,11 +1811,11 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
D3:94:8A:4C:62:13:2A:19:2E:CC:AF:72:8A:7D:36:D7:9A:1C:DC:67
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%20EV%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist
@@ -1693,16 +1867,16 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
1A:ED:FE:41:39:90:B4:24:59:BE:01:F2:52:D5:45:F6:5A:39:DC:11
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:1A:ED:FE:41:39:90:B4:24:59:BE:01:F2:52:D5:45:F6:5A:39:DC:11
DirName:/C=FR/O=Dhimyotis/CN=Certigna
serial:FE:DC:E3:01:0F:C9:48:FF
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- Netscape Cert Type:
+ Netscape Cert Type:
SSL CA, S/MIME CA, Object Signing CA
SHA1 Fingerprint=B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97
SHA256 Fingerprint=E3:B6:A2:DB:2E:D7:CE:48:84:2F:7A:C5:32:41:C7:B7:1D:54:14:4B:FB:40:C1:1F:3F:1D:0B:42:F5:EE:A1:2D
@@ -1744,16 +1918,16 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
18:87:56:E0:6E:77:EE:24:35:3C:4E:73:9A:1F:D6:E1:E2:79:7E:2B
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:18:87:56:E0:6E:77:EE:24:35:3C:4E:73:9A:1F:D6:E1:E2:79:7E:2B
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: X509v3 Any Policy
CPS: https://wwww.certigna.fr/autorites/
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.certigna.fr/certignarootca.crl
@@ -1818,9 +1992,9 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
45:EB:A2:AF:F4:92:CB:82:31:2D:51:8B:A7:A7:21:9D:F3:6D:C8:0F
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:45:EB:A2:AF:F4:92:CB:82:31:2D:51:8B:A7:A7:21:9D:F3:6D:C8:0F
SHA1 Fingerprint=05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
@@ -1863,7 +2037,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
CE:C3:4A:B9:99:55:F2:B8:DB:60:BF:A9:7E:BD:56:B5:97:36:A7:D6
SHA1 Fingerprint=A1:4B:48:D9:43:EE:0A:0E:40:90:4F:3C:E0:A4:C0:91:93:51:5D:3F
SHA256 Fingerprint=7D:05:EB:B6:82:33:9F:8C:94:51:EE:09:4E:EB:FE:FA:79:53:A1:14:ED:B2:F4:49:49:45:2F:AB:7D:2F:C1:85
@@ -1905,7 +2079,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
CB:D0:BD:A9:E1:98:05:51:A1:4D:37:A2:83:79:CE:8D:1D:2A:E4:84
SHA1 Fingerprint=F5:17:A2:4F:9A:48:C6:C9:F8:A2:00:26:9F:DC:0F:48:2C:AB:30:89
SHA256 Fingerprint=7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2
@@ -1940,9 +2114,9 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
SHA1 Fingerprint=A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
@@ -1985,7 +2159,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
4E:22:54:20:18:95:E6:E3:6E:E6:0F:FA:FA:B9:12:ED:06:17:8F:39
SHA1 Fingerprint=DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4
SHA256 Fingerprint=CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
@@ -2027,7 +2201,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B3:DB:48:A4:F9:A1:C5:D8:AE:36:41:CC:11:63:69:62:29:BC:4B:C6
SHA1 Fingerprint=7E:04:DE:89:6A:3E:66:6D:00:E6:87:D3:3F:FA:D9:3B:E8:3D:34:9E
SHA256 Fingerprint=31:AD:66:48:F8:10:41:38:C7:38:F3:9E:A4:32:01:33:39:3E:3A:18:CC:02:29:6E:F9:7C:2A:C9:EF:67:31:D0
@@ -2062,9 +2236,9 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
SHA1 Fingerprint=5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25
@@ -2108,7 +2282,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
EC:D7:E3:82:D2:71:5D:64:4C:DF:2E:67:3F:E7:BA:98:AE:1C:0F:4F
SHA1 Fingerprint=DD:FB:16:CD:49:31:C9:73:A2:03:7D:3F:C8:3A:4D:7D:77:5D:05:E4
SHA256 Fingerprint=55:2F:7B:DC:F1:A7:AF:9E:6C:E6:72:01:7F:4F:12:AB:F7:72:40:C7:8E:76:1A:C2:03:D1:D9:D2:0A:C8:99:88
@@ -2159,7 +2333,7 @@ Certificate:
Not After : Jan 14 23:59:59 2046 GMT
Subject: C=US, O=DigiCert, Inc., CN=DigiCert TLS ECC P384 Root G5
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C1:51:45:50:59:AB:3E:E7:2C:5A:FA:20:22:12:07:80:88:7C:11:6A
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -2193,7 +2367,7 @@ Certificate:
Not After : Jan 14 23:59:59 2046 GMT
Subject: C=US, O=DigiCert, Inc., CN=DigiCert TLS RSA4096 Root G5
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
51:33:1C:ED:36:40:AF:17:D3:25:CD:69:68:F2:AF:4E:23:3E:B3:41
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -2251,7 +2425,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B5:99:F8:AF:B0:94:F5:E3:20:D6:0A:AD:CE:4E:56:A4:2E:6E:42:ED
SHA1 Fingerprint=B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71
SHA256 Fingerprint=E2:3D:4A:03:6D:7B:70:E9:F5:95:B1:42:20:79:D2:B9:1E:DF:BB:1F:B6:51:A0:63:3E:AA:8A:9D:C5:F8:07:03
@@ -2305,9 +2479,9 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
DC:2E:1F:D1:61:37:79:E4:AB:D5:D5:B3:12:71:68:3D:6A:68:9C:22
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:DC:2E:1F:D1:61:37:79:E4:AB:D5:D5:B3:12:71:68:3D:6A:68:9C:22
SHA1 Fingerprint=D0:67:C1:13:51:01:0C:AA:D0:C7:6A:65:37:31:16:26:4F:53:71:A2
@@ -2345,106 +2519,6 @@ aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
-----END CERTIFICATE-----
-### E-Tugra EBG A.S.
-
-=== /C=TR/L=Ankara/O=E-Tugra EBG A.S./OU=E-Tugra Trust Center/CN=E-Tugra Global Root CA ECC v3
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 26:46:19:77:31:e1:4f:6f:28:36:de:39:51:86:e6:d4:97:88:22:c1
- Signature Algorithm: ecdsa-with-SHA384
- Validity
- Not Before: Mar 18 09:46:58 2020 GMT
- Not After : Mar 12 09:46:58 2045 GMT
- Subject: C=TR, L=Ankara, O=E-Tugra EBG A.S., OU=E-Tugra Trust Center, CN=E-Tugra Global Root CA ECC v3
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:FF:82:31:72:3E:F9:C4:66:6C:AD:38:9E:D1:B0:51:88:A5:90:CC:F5
-
- X509v3 Subject Key Identifier:
- FF:82:31:72:3E:F9:C4:66:6C:AD:38:9E:D1:B0:51:88:A5:90:CC:F5
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
-SHA1 Fingerprint=8A:2F:AF:57:53:B1:B0:E6:A1:04:EC:5B:6A:69:71:6D:F6:1C:E2:84
-SHA256 Fingerprint=87:3F:46:85:FA:7F:56:36:25:25:2E:6D:36:BC:D7:F1:6F:C2:49:51:F2:64:E4:7E:1B:95:4F:49:08:CD:CA:13
------BEGIN CERTIFICATE-----
-MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw
-gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn
-cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD
-VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2
-NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r
-YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh
-IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF
-Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ
-KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK
-fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB
-Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C
-MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp
-ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6
-7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx
-vmjkI6TZraE3
------END CERTIFICATE-----
-=== /C=TR/L=Ankara/O=E-Tugra EBG A.S./OU=E-Tugra Trust Center/CN=E-Tugra Global Root CA RSA v3
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0d:4d:c5:cd:16:22:95:96:08:7e:b8:0b:7f:15:06:34:fb:79:10:34
- Signature Algorithm: sha256WithRSAEncryption
- Validity
- Not Before: Mar 18 09:07:17 2020 GMT
- Not After : Mar 12 09:07:17 2045 GMT
- Subject: C=TR, L=Ankara, O=E-Tugra EBG A.S., OU=E-Tugra Trust Center, CN=E-Tugra Global Root CA RSA v3
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:B2:B4:AE:E6:2D:F7:26:D5:AA:75:2D:76:4B:C0:1B:53:21:D0:48:EF
-
- X509v3 Subject Key Identifier:
- B2:B4:AE:E6:2D:F7:26:D5:AA:75:2D:76:4B:C0:1B:53:21:D0:48:EF
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
-SHA1 Fingerprint=E9:A8:5D:22:14:52:1C:5B:AA:0A:B4:BE:24:6A:23:8A:C9:BA:E2:A9
-SHA256 Fingerprint=EF:66:B0:B1:0A:3C:DB:9F:2E:36:48:C7:6B:D2:AF:18:EA:D2:BF:E6:F1:17:65:5E:28:C4:06:0D:A1:A3:F4:C2
------BEGIN CERTIFICATE-----
-MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQEL
-BQAwgYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUt
-VHVncmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYw
-JAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIFJTQSB2MzAeFw0yMDAzMTgw
-OTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMG
-QW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
-Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBD
-QSBSU0EgdjMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J7
-7gnJY9LTQ91ew6aEOErxjYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscx
-uj7X/iWpKo429NEvx7epXTPcMHD4QGxLsqYxYdE0PD0xesevxKenhOGXpOhL9hd8
-7jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF/YP9f4RtNGx/ardLAQO/
-rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8qQedmCeFL
-l+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bG
-wzrwbMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4
-znKS4iicvObpCdg604nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBO
-M/J+JjKsBY04pOZ2PJ8QaQ5tndLBeSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK
-5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiMbIedBi3x7+PmBvrFZhNb/FAH
-nnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbgh3cXTJ2w2Amo
-DVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
-AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSy
-tK7mLfcm1ap1LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEL
-BQADggIBAImocn+M684uGMQQgC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ
-6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN438o2Fi+CiJ+8EUdPdk3ILY7r3y18
-Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/qln0F7psTpURs+APQ
-3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3sSdPk
-vmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn9
-9t2HVhjYsCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQ
-mhty3QUBjYZgv6Rn7rWlDdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YA
-VSgU7NbHEqIbZULpkejLPoeJVF3Zr52XnGnnCv8PWniLYypMfUeUP95L6VPQMPHF
-9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFHIK+WEj5jlB0E5y67hscM
-moi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiXYY60MGo8
-bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ
------END CERTIFICATE-----
-
### eMudhra Inc
=== /C=US/OU=emSign PKI/O=eMudhra Inc/CN=emSign ECC Root CA - C3
@@ -2459,7 +2533,7 @@ Certificate:
Not After : Feb 18 18:30:00 2043 GMT
Subject: C=US, OU=emSign PKI, O=eMudhra Inc, CN=emSign ECC Root CA - C3
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
FB:5A:48:D0:80:20:40:F2:A8:E9:00:07:69:19:77:A7:E6:C3:F4:CF
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -2493,7 +2567,7 @@ Certificate:
Not After : Feb 18 18:30:00 2043 GMT
Subject: C=US, OU=emSign PKI, O=eMudhra Inc, CN=emSign Root CA - C1
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
FE:A1:E0:70:1E:2A:03:39:52:5A:42:BE:5C:91:85:7A:18:AA:4D:B5
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -2537,7 +2611,7 @@ Certificate:
Not After : Feb 18 18:30:00 2043 GMT
Subject: C=IN, OU=emSign PKI, O=eMudhra Technologies Limited, CN=emSign ECC Root CA - G3
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
7C:5D:02:84:13:D4:CC:8A:9B:81:CE:17:1C:2E:29:1E:9C:48:63:42
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -2572,7 +2646,7 @@ Certificate:
Not After : Feb 18 18:30:00 2043 GMT
Subject: C=IN, OU=emSign PKI, O=eMudhra Technologies Limited, CN=emSign Root CA - G1
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
FB:EF:0D:86:9E:B0:E3:DD:A9:B9:F1:21:17:7F:3E:FC:F0:77:2B:1A
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -2620,7 +2694,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
SHA1 Fingerprint=8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4
SHA256 Fingerprint=43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39
@@ -2665,7 +2739,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B7:63:E7:1A:DD:8D:E9:08:A6:55:83:A4:E0:6A:50:41:65:11:42:49
SHA1 Fingerprint=20:D8:06:40:DF:9B:25:F5:12:25:3A:11:EA:F7:59:8A:EB:14:B5:47
SHA256 Fingerprint=02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5
@@ -2703,7 +2777,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
9F:38:C4:56:23:C3:39:E8:A0:71:6C:E8:54:4C:E4:E8:3A:B1:BF:67
SHA1 Fingerprint=14:88:4E:86:26:37:B0:26:AF:59:62:5C:40:77:EC:35:29:BA:96:01
SHA256 Fingerprint=DB:35:17:D1:F6:73:2A:2D:5A:B9:7C:53:3E:C7:07:79:EE:32:70:A6:2F:B4:AC:42:38:37:24:60:E6:F0:1E:88
@@ -2758,14 +2832,14 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Private Key Usage Period:
+ X509v3 Private Key Usage Period:
Not Before: Nov 27 20:23:42 2006 GMT, Not After: Nov 27 20:53:42 2026 GMT
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
- 1.2.840.113533.7.65.0:
+ 1.2.840.113533.7.65.0:
0...V7.1:4.0....
SHA1 Fingerprint=B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
SHA256 Fingerprint=73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C
@@ -2814,7 +2888,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
55:E4:81:D1:11:80:BE:D8:89:B9:08:A3:31:F9:A1:24:09:16:B9:70
SHA1 Fingerprint=50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31
SHA256 Fingerprint=6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
@@ -2862,9 +2936,9 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
F7:7D:C5:FD:C4:E8:9A:1B:77:64:A7:F5:1D:A0:CC:BF:87:60:9A:6D
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: X509v3 Any Policy
CPS: http://www.cert.fnmt.es/dpcs/
@@ -2918,7 +2992,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
01:B9:2F:EF:BF:11:86:60:F2:4F:D0:41:6E:AB:73:1F:E7:D2:6E:49
SHA1 Fingerprint=62:FF:D9:9E:C0:65:0D:03:CE:75:93:D2:ED:3F:2D:32:C9:E3:E5:4A
SHA256 Fingerprint=55:41:53:B1:3D:2C:F9:DD:B7:53:BF:BE:1A:4E:0A:E0:8D:0A:A4:18:70:58:FE:60:A2:B8:62:B2:E4:B8:7B:CB
@@ -2957,7 +3031,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
54:B0:7B:AD:45:B8:E2:40:7F:FB:0A:6E:FB:BE:33:C9:3C:A3:84:D5
SHA1 Fingerprint=6B:A0:B0:98:E1:71:EF:5A:AD:FE:48:15:80:77:10:F4:BD:6F:0B:28
SHA256 Fingerprint=B0:85:D7:0B:96:4F:19:1A:73:E4:AF:0D:54:AE:7A:0E:07:AA:FD:AF:9B:71:DD:08:62:13:8A:B7:32:5A:24:A2
@@ -2989,7 +3063,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
3D:E6:29:48:9B:EA:07:CA:21:44:4A:26:DE:6E:DE:D2:83:D0:9F:59
SHA1 Fingerprint=1F:24:C6:30:CD:A4:18:EF:20:69:FF:AD:4F:DD:5F:46:3A:1B:69:AA
SHA256 Fingerprint=17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24
@@ -3023,7 +3097,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
8F:F0:4B:7F:A8:2E:45:24:AE:4D:50:FA:63:9A:8B:DE:E2:DD:1B:BC
SHA1 Fingerprint=D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
SHA256 Fingerprint=CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
@@ -3064,9 +3138,9 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
AE:6C:05:A3:93:13:E2:A2:E7:E2:D7:1C:D6:C7:F0:7F:C8:67:53:A0
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:AE:6C:05:A3:93:13:E2:A2:E7:E2:D7:1C:D6:C7:F0:7F:C8:67:53:A0
SHA1 Fingerprint=80:94:64:0E:B5:A7:A1:CA:11:9C:1F:DD:D5:9F:81:02:63:A7:FB:D1
@@ -3122,7 +3196,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
31:0A:90:8F:B6:C6:9D:D2:44:4B:80:B5:A2:E6:1F:B1:12:4F:1B:95
SHA1 Fingerprint=39:B4:6C:D5:FE:80:06:EB:E2:2F:4A:BB:08:33:A0:AF:DB:B9:DD:84
SHA256 Fingerprint=CB:B9:C4:4D:84:B8:04:3E:10:50:EA:31:A6:9F:51:49:55:D7:BF:D2:E2:C6:B4:93:01:01:9A:D6:1D:9F:50:58
@@ -3155,7 +3229,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
03:5C:AB:73:81:87:A8:CC:B0:A6:D5:94:E2:36:96:49:FF:05:99:2C
SHA1 Fingerprint=53:A2:B0:4B:CA:6B:D6:45:E6:39:8A:8E:C4:0D:D2:BF:77:C3:A2:90
SHA256 Fingerprint=4F:A3:12:6D:8D:3A:11:D1:C4:85:5A:4F:80:7C:BA:D6:CF:91:9D:3A:5A:88:B0:3B:EA:2C:63:72:D9:3C:40:C9
@@ -3206,7 +3280,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
SHA1 Fingerprint=B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C
SHA256 Fingerprint=EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99
@@ -3249,7 +3323,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
SHA1 Fingerprint=47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
SHA256 Fingerprint=45:14:0B:32:47:EB:9C:C8:C5:B4:F0:D7:B5:30:91:F7:32:92:08:9E:6E:5A:63:E2:74:9D:D3:AC:A9:19:8E:DA
@@ -3295,7 +3369,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E4:AF:2B:26:71:1A:2B:48:27:85:2F:52:66:2C:EF:F0:89:13:71:3E
SHA1 Fingerprint=E5:8C:1C:C4:91:3B:38:63:4B:E9:10:6E:E3:AD:8E:6B:9D:D9:81:4A
SHA256 Fingerprint=D9:47:43:2A:BD:E7:B7:FA:90:FC:2E:6B:59:10:1B:12:80:E0:E1:C7:E4:E4:0F:A3:C6:88:7F:FF:57:A7:F4:CF
@@ -3346,7 +3420,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
BB:FF:CA:8E:23:9F:4F:99:CA:DB:E2:68:A6:A5:15:27:17:1E:D9:0E
SHA1 Fingerprint=9A:44:49:76:32:DB:DE:FA:D0:BC:FB:5A:7B:17:BD:9E:56:09:24:94
SHA256 Fingerprint=8D:25:CD:97:22:9D:BF:70:35:6B:DA:4E:B3:CC:73:40:31:E2:4C:F0:0F:AF:CF:D3:2D:C7:6E:B5:84:1C:7E:A8
@@ -3397,7 +3471,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C1:F1:26:BA:A0:2D:AE:85:81:CF:D3:F1:2A:12:BD:B8:0A:67:FD:BC
SHA1 Fingerprint=ED:E5:71:80:2B:C8:92:B9:5B:83:3C:D2:32:68:3F:09:CD:A0:1E:46
SHA256 Fingerprint=34:D8:A7:3E:E2:08:D9:BC:DB:0D:95:65:20:93:4B:4E:40:E6:94:82:59:6E:8B:6F:73:C8:42:6B:01:0A:6F:48
@@ -3430,7 +3504,7 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
80:4C:D6:EB:74:FF:49:36:A3:D5:D8:FC:B5:3E:C5:6A:F0:94:1D:8C
SHA1 Fingerprint=77:D3:03:67:B5:E0:0C:15:F6:0C:38:61:DF:7C:E1:3B:92:46:4D:47
SHA256 Fingerprint=34:9D:FA:40:58:C5:E2:63:12:3B:39:8A:E7:95:57:3C:4E:13:13:C8:3F:E6:8F:93:55:6C:D5:E8:03:1B:3C:7D
@@ -3461,7 +3535,7 @@ Certificate:
Not After : Dec 31 15:59:59 2040 GMT
Subject: C=CN, O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD., CN=GDCA TrustAUTH R5 ROOT
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E2:C9:40:9F:4D:CE:E8:9A:A1:7C:CF:0E:3F:65:C5:29:88:6A:19:51
X509v3 Basic Constraints: critical
CA:TRUE
@@ -3518,7 +3592,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C9:1B:53:81:12:FE:04:D5:16:D1:AA:BC:9A:6F:B7:A0:95:19:6E:CA
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -3553,7 +3627,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
0A:48:23:A6:60:A4:92:0A:33:EA:93:5B:C5:57:EA:25:4D:BD:12:EE
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -3610,7 +3684,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B4:22:0B:82:99:24:01:0E:9C:BB:E4:0E:FD:BF:FB:97:20:93:99:2A
SHA1 Fingerprint=9F:F1:71:8D:92:D5:9A:F3:7D:74:97:B4:BC:6F:84:68:0B:BA:B6:66
SHA256 Fingerprint=44:B5:45:AA:8A:25:E6:5A:73:CA:15:DC:27:FC:36:D2:4C:1C:B9:95:3A:06:65:39:B1:15:82:DC:48:7B:48:33
@@ -3646,7 +3720,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
71:15:67:C8:C8:C9:BD:75:5D:72:D0:38:18:6A:9D:F3:71:24:54:0B
SHA1 Fingerprint=01:0C:06:95:A6:98:19:14:FF:BF:5F:C6:B0:B6:95:EA:29:E9:12:A6
SHA256 Fingerprint=A0:40:92:9A:02:CE:53:B4:AC:F4:F2:FF:C6:98:1C:E4:49:6F:75:5E:6D:45:FE:0B:2A:69:2B:CD:52:52:3F:36
@@ -3688,43 +3762,6 @@ vm9qp/UsQu0yrbYhnr68
### Hongkong Post
-=== /C=HK/O=Hongkong Post/CN=Hongkong Post Root CA 1
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1000 (0x3e8)
- Signature Algorithm: sha1WithRSAEncryption
- Validity
- Not Before: May 15 05:13:14 2003 GMT
- Not After : May 15 04:52:29 2023 GMT
- Subject: C=HK, O=Hongkong Post, CN=Hongkong Post Root CA 1
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:3
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
-SHA1 Fingerprint=D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58
-SHA256 Fingerprint=F9:E6:7D:33:6C:51:00:2A:C0:54:C6:32:02:2D:66:DD:A2:E7:E3:FF:F1:0A:D0:61:ED:31:D8:BB:B4:10:CF:B2
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
-FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
-Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
-A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
-b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
-jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
-PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
-ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
-nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
-q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
-MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
-mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
-7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
-oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
-EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
-fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
-AmvZWg==
------END CERTIFICATE-----
=== /C=HK/ST=Hong Kong/L=Hong Kong/O=Hongkong Post/CN=Hongkong Post Root CA 3
Certificate:
Data:
@@ -3741,10 +3778,10 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:17:9D:CD:1E:8B:D6:39:2B:70:D3:5C:D4:A0:B8:1F:B0:00:FC:C5:61
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
17:9D:CD:1E:8B:D6:39:2B:70:D3:5C:D4:A0:B8:1F:B0:00:FC:C5:61
SHA1 Fingerprint=58:A2:D0:EC:20:52:81:5B:C1:F3:F8:64:02:24:4E:C2:8E:02:4B:02
SHA256 Fingerprint=5A:2F:C0:3F:0C:83:B0:90:BB:FA:40:60:4B:09:88:44:6C:76:36:18:3D:F9:84:6E:17:10:1A:44:7F:B8:EF:D6
@@ -3801,7 +3838,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
ED:44:19:C0:D3:F0:06:8B:EE:A4:7B:BE:42:E7:26:54:C8:8E:36:76
SHA1 Fingerprint=DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25
SHA256 Fingerprint=5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE
@@ -3852,7 +3889,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
E3:71:E0:9E:D8:A7:42:D9:DB:71:91:6B:94:93:EB:C3:A3:D1:14:A3
SHA1 Fingerprint=BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD
SHA256 Fingerprint=30:D0:89:5A:9A:44:8A:26:20:91:63:55:22:D1:F5:20:10:B5:86:7A:CA:E1:2C:78:EF:95:8F:D4:F4:38:9F:2F
@@ -3906,7 +3943,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E
SHA1 Fingerprint=CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8
SHA256 Fingerprint=96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6
@@ -3957,7 +3994,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
7C:42:96:AE:DE:4B:48:3B:FA:92:F8:9E:8C:CF:6D:8B:A9:72:37:95
SHA1 Fingerprint=BD:B1:B9:3C:D5:97:8D:45:C6:26:14:55:F8:DB:95:C7:5A:D1:53:AF
SHA256 Fingerprint=69:72:9B:8E:15:A8:6E:FC:17:7A:57:AF:B7:17:1D:FC:64:AD:D2:8C:2F:CA:8C:F1:50:7E:34:45:3C:CB:14:70
@@ -3990,7 +4027,7 @@ Certificate:
Not After : Jul 31 07:26:44 2043 GMT
Subject: C=CN, O=iTrusChina Co.,Ltd., CN=vTrus ECC Root CA
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
98:39:CD:BE:D8:B2:8C:F7:B2:AB:E1:AD:24:AF:7B:7C:A1:DB:1F:CF
X509v3 Basic Constraints: critical
CA:TRUE
@@ -4024,7 +4061,7 @@ Certificate:
Not After : Jul 31 07:24:05 2043 GMT
Subject: C=CN, O=iTrusChina Co.,Ltd., CN=vTrus Root CA
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
54:62:70:63:F1:75:84:43:58:8E:D1:16:20:B1:C6:AC:1A:BC:F6:89
X509v3 Basic Constraints: critical
CA:TRUE
@@ -4078,13 +4115,13 @@ Certificate:
Not After : Dec 13 08:27:25 2037 GMT
Subject: C=ES, O=IZENPE S.A., CN=Izenpe.com
X509v3 extensions:
- X509v3 Subject Alternative Name:
+ X509v3 Subject Alternative Name:
email:info@izenpe.com, DirName:/O=IZENPE S.A. - CIF A01337260-RMerc.Vitoria-Gasteiz T1055 F62 S8/street=Avda del Mediterraneo Etorbidea 14 - 01010 Vitoria-Gasteiz
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
1D:1C:65:0E:A8:F2:25:7B:B4:91:CF:E4:B1:B1:E6:BD:55:74:6C:05
SHA1 Fingerprint=2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19
SHA256 Fingerprint=25:30:CC:8E:98:32:15:02:BA:D9:6F:9B:1F:BA:1B:09:9E:2D:29:9E:0F:45:48:BB:91:4F:36:3B:C0:D4:53:1F
@@ -4136,7 +4173,7 @@ Certificate:
Not After : Apr 8 04:56:47 2029 GMT
Subject: C=JP, O=Japan Certification Services, Inc., CN=SecureSign RootCA11
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
5B:F8:4D:4F:B2:A5:86:D4:3A:D2:F1:63:9A:A0:BE:09:F6:57:B7:DE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -4184,7 +4221,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
2E:16:A9:4A:18:B5:CB:CC:F5:6F:50:F3:23:5F:F8:5D:E7:AC:F0:C8
SHA1 Fingerprint=E2:52:FA:95:3F:ED:DB:24:60:BD:6E:28:F3:9C:CC:CF:5E:B3:3F:DE
SHA256 Fingerprint=A1:33:9D:33:28:1A:0B:56:E5:57:D3:D3:2B:1C:E7:F9:36:7E:B0:94:BD:5F:A7:2A:7E:50:04:C8:DE:D7:CA:FE
@@ -4228,9 +4265,9 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
87:11:15:08:D1:AA:C1:78:0C:B1:AF:CE:C6:C9:90:EF:BF:30:04:C0
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:87:11:15:08:D1:AA:C1:78:0C:B1:AF:CE:C6:C9:90:EF:BF:30:04:C0
SHA1 Fingerprint=89:D4:83:03:4F:9E:9A:48:80:5F:72:37:D4:A9:A6:EF:CB:7C:1F:D1
@@ -4266,12 +4303,12 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
CB:0F:C6:DF:42:43:CC:3D:CB:B5:48:23:A1:1A:7A:A6:2A:BB:34:68
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:CB:0F:C6:DF:42:43:CC:3D:CB:B5:48:23:A1:1A:7A:A6:2A:BB:34:68
- X509v3 Subject Alternative Name:
+ X509v3 Subject Alternative Name:
email:info@e-szigno.hu
SHA1 Fingerprint=89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E
SHA256 Fingerprint=3C:5F:81:FE:A5:FA:B8:2C:64:BF:A2:EA:EC:AF:CD:E8:E0:77:FC:86:20:A7:CA:E5:37:16:3D:F3:6E:DB:F3:78
@@ -4318,9 +4355,9 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C8:CB:99:72:70:52:0C:F8:E6:BE:B2:04:57:29:2A:CF:42:10:ED:35
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=99:9A:64:C3:7F:F4:7D:9F:AB:95:F1:47:69:89:14:60:EE:C4:C3:C5
SHA256 Fingerprint=35:8D:F3:9D:76:4A:F9:E1:B7:66:E9:C9:72:DF:35:2E:E1:5C:FA:C2:27:AF:6A:D1:D7:0E:8E:4A:6E:DC:BA:02
@@ -4355,9 +4392,9 @@ Certificate:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
09:CB:59:7F:86:B2:70:8F:1A:C3:39:E3:C0:D9:E9:BF:BB:4D:B2:23
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=73:A5:E6:4A:3B:FF:83:16:FF:0E:DC:CC:61:8A:90:6E:4E:AE:4D:74
SHA256 Fingerprint=C7:41:F7:0F:4B:2A:8D:88:BF:2E:71:C1:41:22:EF:53:EF:10:EB:A0:CF:A5:E6:4C:FA:20:F4:18:85:30:73:E0
@@ -4409,7 +4446,7 @@ Certificate:
Not After : Aug 18 23:59:59 2037 GMT
Subject: C=KR, O=NAVER BUSINESS PLATFORM Corp., CN=NAVER Global Root Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
D2:9F:88:DF:A1:CD:2C:BD:EC:F5:3B:01:01:93:33:27:B2:EB:60:4B
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -4468,7 +4505,7 @@ Certificate:
CA:TRUE, pathlen:4
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
CC:FA:67:93:F0:B6:B8:D0:A5:C0:1E:F3:53:FD:8C:53:DF:83:D7:96
SHA1 Fingerprint=06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91
SHA256 Fingerprint=6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98
@@ -4515,7 +4552,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
A3:97:D6:F3:5E:A2:10:E1:AB:45:9F:3C:17:64:3C:EE:01:70:9C:CC
SHA1 Fingerprint=1B:8E:EA:57:96:29:1A:C9:39:EA:B8:0A:81:1A:73:73:C0:93:79:67
SHA256 Fingerprint=8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74
@@ -4563,11 +4600,11 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Key Usage:
+ X509v3 Key Usage:
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
1A:84:62:BC:48:4C:33:25:04:D4:EE:D0:F6:03:C4:19:46:D1:94:6B
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:1A:84:62:BC:48:4C:33:25:04:D4:EE:D0:F6:03:C4:19:46:D1:94:6B
DirName:/C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 2
serial:05:09
@@ -4623,7 +4660,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
ED:E7:6F:76:5A:BF:60:EC:49:5B:C6:A5:77:BB:72:16:71:9B:C4:3D
SHA1 Fingerprint=09:3C:61:F3:8B:8B:DC:7D:55:DF:75:38:02:05:00:E1:25:F5:C8:36
SHA256 Fingerprint=8F:E4:FB:0A:F9:3A:4D:0D:67:DB:0B:EB:B2:3E:37:C7:1B:F3:25:DC:BC:DD:24:0E:A0:4D:AF:58:B4:7E:18:40
@@ -4671,17 +4708,17 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.8024.0.3
User Notice:
Explicit Text: Any use of this Certificate constitutes acceptance of the QuoVadis Root CA 3 Certificate Policy / Certification Practice Statement.
CPS: http://www.quovadisglobal.com/cps
- X509v3 Key Usage:
+ X509v3 Key Usage:
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
F2:C0:13:E0:82:43:3E:FB:EE:2F:67:32:96:35:5C:DB:B8:CB:02:D0
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:F2:C0:13:E0:82:43:3E:FB:EE:2F:67:32:96:35:5C:DB:B8:CB:02:D0
DirName:/C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 3
serial:05:C6
@@ -4742,7 +4779,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C6:17:D0:BC:A8:EA:02:43:F2:1B:06:99:5D:2B:90:20:B9:D7:9C:E4
SHA1 Fingerprint=48:12:BD:92:3C:A8:C4:39:06:E7:30:6D:27:96:E6:A4:CF:22:2E:7D
SHA256 Fingerprint=88:EF:81:DE:20:2E:B0:18:45:2E:43:F8:64:72:5C:EA:5F:BD:1F:C2:D9:D2:05:73:07:09:C5:D8:B8:69:0F:46
@@ -4792,7 +4829,7 @@ Certificate:
Not After : Jan 18 05:15:28 2038 GMT
Subject: C=JP, O=SECOM Trust Systems CO.,LTD., CN=Security Communication ECC RootCA1
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
86:1C:E7:FE:2D:A5:4A:8B:08:FE:28:11:FA:BE:A3:66:F8:60:59:2F
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -4826,7 +4863,7 @@ Certificate:
Not After : Jan 18 06:17:16 2038 GMT
Subject: C=JP, O=SECOM Trust Systems CO.,LTD., CN=Security Communication RootCA3
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
64:14:7C:FC:58:72:16:A6:0A:29:34:15:6F:2A:CB:BC:FC:AF:A8:AB
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -4877,7 +4914,7 @@ Certificate:
Not After : May 29 05:00:39 2029 GMT
Subject: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication RootCA2
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
0A:85:A9:77:65:05:98:7C:40:81:F8:0F:97:2C:38:F1:0A:EC:3C:CF
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -4907,46 +4944,93 @@ t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
-----END CERTIFICATE-----
-### SECOM Trust.net
+### Sectigo Limited
-=== /C=JP/O=SECOM Trust.net/OU=Security Communication RootCA1
+=== /C=GB/O=Sectigo Limited/CN=Sectigo Public Server Authentication Root E46
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number:
+ 42:f2:cc:da:1b:69:37:44:5f:15:fe:75:28:10:b8:f4
+ Signature Algorithm: ecdsa-with-SHA384
Validity
- Not Before: Sep 30 04:20:49 2003 GMT
- Not After : Sep 30 04:20:49 2023 GMT
- Subject: C=JP, O=SECOM Trust.net, OU=Security Communication RootCA1
+ Not Before: Mar 22 00:00:00 2021 GMT
+ Not After : Mar 21 23:59:59 2046 GMT
+ Subject: C=GB, O=Sectigo Limited, CN=Sectigo Public Server Authentication Root E46
X509v3 extensions:
- X509v3 Subject Key Identifier:
- A0:73:49:99:68:DC:85:5B:65:E3:9B:28:2F:57:9F:BD:33:BC:07:48
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ D1:22:DA:4C:59:F1:4B:5F:26:38:AA:9D:D6:EE:EB:0D:C3:FB:A9:61
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+SHA1 Fingerprint=EC:8A:39:6C:40:F0:2E:BC:42:75:D4:9F:AB:1C:1A:5B:67:BE:D2:9A
+SHA256 Fingerprint=C9:0F:26:F0:FB:1B:40:18:B2:22:27:51:9B:5C:A2:B5:3E:2C:A5:B3:BE:5C:F1:8E:FE:1B:EF:47:38:0C:53:83
+-----BEGIN CERTIFICATE-----
+MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw
+CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T
+ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN
+MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG
+A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT
+ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC
+WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+
+6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B
+Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa
+qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q
+4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw==
+-----END CERTIFICATE-----
+=== /C=GB/O=Sectigo Limited/CN=Sectigo Public Server Authentication Root R46
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 75:8d:fd:8b:ae:7c:07:00:fa:a9:25:a7:e1:c7:ad:14
+ Signature Algorithm: sha384WithRSAEncryption
+ Validity
+ Not Before: Mar 22 00:00:00 2021 GMT
+ Not After : Mar 21 23:59:59 2046 GMT
+ Subject: C=GB, O=Sectigo Limited, CN=Sectigo Public Server Authentication Root R46
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ 56:73:58:64:95:F9:92:1A:B0:12:2A:04:62:79:A1:40:15:88:21:49
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
-SHA1 Fingerprint=36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7
-SHA256 Fingerprint=E7:5E:72:ED:9F:56:0E:EC:6E:B4:80:00:73:A4:3F:C3:AD:19:19:5A:39:22:82:01:78:95:97:4A:99:02:6B:6C
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
-MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
-dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
-WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
-VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
-9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
-DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
-Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
-QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
-xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
-A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
-kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
-Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
-Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
-JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
-RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
+SHA1 Fingerprint=AD:98:F9:F3:E4:7D:75:3B:65:D4:82:B3:A4:52:17:BB:6E:F5:E4:38
+SHA256 Fingerprint=7B:B6:47:A6:2A:EE:AC:88:BF:25:7A:A5:22:D0:1F:FE:A3:95:E0:AB:45:C7:3F:93:F6:56:54:EC:38:F2:5A:06
+-----BEGIN CERTIFICATE-----
+MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf
+MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD
+Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw
+HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY
+MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp
+YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa
+ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz
+SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf
+iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X
+ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3
+IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS
+VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE
+SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu
++Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt
+8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L
+HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt
+zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P
+AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c
+mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ
+YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52
+gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA
+Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB
+JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX
+DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui
+TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5
+dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65
+LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp
+0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY
+QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL
-----END CERTIFICATE-----
### SecureTrust Corporation
@@ -4963,20 +5047,20 @@ Certificate:
Not After : Dec 31 19:52:06 2029 GMT
Subject: C=US, O=SecureTrust Corporation, CN=Secure Global CA
X509v3 extensions:
- 1.3.6.1.4.1.311.20.2:
+ 1.3.6.1.4.1.311.20.2:
...C.A
- X509v3 Key Usage:
+ X509v3 Key Usage:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
AF:44:04:C2:41:7E:48:83:DB:4E:39:02:EC:EC:84:7A:E6:CE:C9:A4
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.securetrust.com/SGCA.crl
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B
SHA256 Fingerprint=42:00:F5:04:3A:C8:59:0E:BB:52:7D:20:9E:D1:50:30:29:FB:CB:D4:1C:A1:B5:06:EC:27:F1:5A:DE:7D:AC:69
@@ -5014,20 +5098,20 @@ Certificate:
Not After : Dec 31 19:40:55 2029 GMT
Subject: C=US, O=SecureTrust Corporation, CN=SecureTrust CA
X509v3 extensions:
- 1.3.6.1.4.1.311.20.2:
+ 1.3.6.1.4.1.311.20.2:
...C.A
- X509v3 Key Usage:
+ X509v3 Key Usage:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
42:32:B6:16:FA:04:FD:FE:5D:4B:7A:C3:FD:F7:4C:40:1D:5A:43:AF
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.securetrust.com/STCA.crl
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11
SHA256 Fingerprint=F1:C1:B5:0A:E5:A2:0D:D8:03:0E:C9:F6:BC:24:82:3D:D3:67:B5:25:57:59:B4:E7:1B:61:FC:E9:F7:37:5D:73
@@ -5056,6 +5140,98 @@ CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
### SSL Corporation
+=== /C=US/O=SSL Corporation/CN=SSL.com TLS ECC Root CA 2022
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 14:03:f5:ab:fb:37:8b:17:40:5b:e2:43:b2:a5:d1:c4
+ Signature Algorithm: ecdsa-with-SHA384
+ Validity
+ Not Before: Aug 25 16:33:48 2022 GMT
+ Not After : Aug 19 16:33:47 2046 GMT
+ Subject: C=US, O=SSL Corporation, CN=SSL.com TLS ECC Root CA 2022
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Authority Key Identifier:
+ keyid:89:8F:2F:A3:E8:2B:A0:14:54:7B:F3:56:B8:26:5F:67:38:0B:9C:D0
+
+ X509v3 Subject Key Identifier:
+ 89:8F:2F:A3:E8:2B:A0:14:54:7B:F3:56:B8:26:5F:67:38:0B:9C:D0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+SHA1 Fingerprint=9F:5F:D9:1A:54:6D:F5:0C:71:F0:EE:7A:BD:17:49:98:84:73:E2:39
+SHA256 Fingerprint=C3:2F:FD:9F:46:F9:36:D1:6C:36:73:99:09:59:43:4B:9A:D6:0A:AF:BB:9E:7C:F3:36:54:F1:44:CC:1B:A1:43
+-----BEGIN CERTIFICATE-----
+MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw
+CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT
+U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2
+MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh
+dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG
+ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm
+acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN
+SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
+GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW
+uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp
+15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN
+b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g==
+-----END CERTIFICATE-----
+=== /C=US/O=SSL Corporation/CN=SSL.com TLS RSA Root CA 2022
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 6f:be:da:ad:73:bd:08:40:e2:8b:4d:be:d4:f7:5b:91
+ Signature Algorithm: sha256WithRSAEncryption
+ Validity
+ Not Before: Aug 25 16:34:22 2022 GMT
+ Not After : Aug 19 16:34:21 2046 GMT
+ Subject: C=US, O=SSL Corporation, CN=SSL.com TLS RSA Root CA 2022
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Authority Key Identifier:
+ keyid:FB:2E:37:EE:E3:84:7A:27:2E:CD:19:35:B1:33:7C:FF:D4:44:42:B9
+
+ X509v3 Subject Key Identifier:
+ FB:2E:37:EE:E3:84:7A:27:2E:CD:19:35:B1:33:7C:FF:D4:44:42:B9
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+SHA1 Fingerprint=EC:2C:83:40:72:AF:26:95:10:FF:0E:F2:03:EE:31:70:F6:78:9D:CA
+SHA256 Fingerprint=8F:AF:7D:2E:2C:B4:70:9B:B8:E0:B3:36:66:BF:75:A5:DD:45:B5:DE:48:0F:8E:A8:D4:BF:E6:BE:BC:17:F2:ED
+-----BEGIN CERTIFICATE-----
+MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO
+MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD
+DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX
+DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw
+b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP
+L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY
+t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins
+S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3
+PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO
+L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3
+R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w
+dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS
++YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS
+d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG
+AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f
+gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
+BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z
+NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt
+hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM
+QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf
+R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ
+DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW
+P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy
+lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq
+bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w
+AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q
+r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji
+Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU
+98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA=
+-----END CERTIFICATE-----
=== /C=US/ST=Texas/L=Houston/O=SSL Corporation/CN=SSL.com EV Root Certification Authority ECC
Certificate:
Data:
@@ -5067,11 +5243,11 @@ Certificate:
Not After : Feb 12 18:15:23 2041 GMT
Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com EV Root Certification Authority ECC
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
5B:CA:5E:E5:DE:D2:81:AA:CD:A8:2D:64:51:B6:D9:72:9B:97:E6:4F
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:5B:CA:5E:E5:DE:D2:81:AA:CD:A8:2D:64:51:B6:D9:72:9B:97:E6:4F
X509v3 Key Usage: critical
@@ -5107,10 +5283,10 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:F9:60:BB:D4:E3:D5:34:F6:B8:F5:06:80:25:A7:73:DB:46:69:A8:9E
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
F9:60:BB:D4:E3:D5:34:F6:B8:F5:06:80:25:A7:73:DB:46:69:A8:9E
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
@@ -5161,11 +5337,11 @@ Certificate:
Not After : Feb 12 18:14:03 2041 GMT
Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com Root Certification Authority ECC
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
82:D1:85:73:30:E7:35:04:D3:8E:02:92:FB:E5:A4:D1:C4:21:E8:CD
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:82:D1:85:73:30:E7:35:04:D3:8E:02:92:FB:E5:A4:D1:C4:21:E8:CD
X509v3 Key Usage: critical
@@ -5199,11 +5375,11 @@ Certificate:
Not After : Feb 12 17:39:39 2041 GMT
Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com Root Certification Authority RSA
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
DD:04:09:07:A2:F5:7A:7D:52:53:12:92:95:EE:38:80:25:0D:A6:59
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:DD:04:09:07:A2:F5:7A:7D:52:53:12:92:95:EE:38:80:25:0D:A6:59
X509v3 Key Usage: critical
@@ -5258,14 +5434,14 @@ Certificate:
Not After : Jun 29 17:39:16 2034 GMT
Subject: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
DirName:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
serial:00
- X509v3 Basic Constraints:
+ X509v3 Basic Constraints:
CA:TRUE
SHA1 Fingerprint=AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A
SHA256 Fingerprint=14:65:FA:20:53:97:B8:76:FA:A6:F0:A9:95:8E:55:90:E4:0F:CC:7F:AA:4F:B7:C2:C8:67:75:21:FB:5F:B6:58
@@ -5308,7 +5484,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
SHA1 Fingerprint=B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E
SHA256 Fingerprint=2C:E1:CB:0B:F9:D2:F9:E1:02:99:3F:BE:21:51:52:C3:B2:DD:0C:AB:DE:1C:68:E5:31:9B:83:91:54:DB:B7:F5
@@ -5350,7 +5526,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
9C:5F:00:DF:AA:01:D7:30:2B:38:88:A2:B8:6D:4A:9C:F2:11:91:83
SHA1 Fingerprint=92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F
SHA256 Fingerprint=56:8D:69:05:A2:C8:87:08:A4:B3:02:51:90:ED:CF:ED:B1:97:4A:60:6A:13:C6:E5:29:0F:CB:2A:E6:3E:DA:B5
@@ -5397,12 +5573,12 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
5B:25:7B:96:A4:65:51:7E:B8:39:F3:C0:78:66:5E:E8:3A:E7:F0:EE
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:5B:25:7B:96:A4:65:51:7E:B8:39:F3:C0:78:66:5E:E8:3A:E7:F0:EE
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: 2.16.756.1.89.1.2.1.1
CPS: http://repository.swisssign.com/
@@ -5456,12 +5632,12 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
17:A0:CD:C1:E4:41:B6:3A:5B:3B:CB:45:9D:BD:1C:C2:98:FA:86:58
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:17:A0:CD:C1:E4:41:B6:3A:5B:3B:CB:45:9D:BD:1C:C2:98:FA:86:58
- X509v3 Certificate Policies:
+ X509v3 Certificate Policies:
Policy: 2.16.756.1.89.1.3.1.1
CPS: http://repository.swisssign.com/
@@ -5518,7 +5694,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
BF:59:20:36:00:79:A0:A0:22:6B:8C:D5:F2:61:D2:B8:2C:CB:82:4A
SHA1 Fingerprint=59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9
SHA256 Fingerprint=91:E2:F5:78:8D:58:10:EB:A7:BA:58:73:7D:E1:54:8A:8E:CA:CD:01:45:98:BC:0B:14:3E:04:1B:17:05:25:52
@@ -5560,7 +5736,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
B5:03:F7:76:3B:61:82:6A:12:AA:18:53:EB:03:21:94:BF:FE:CE:CA
SHA1 Fingerprint=55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1
SHA256 Fingerprint=FD:73:DA:D3:1C:64:4F:F1:B4:3B:EF:0C:CD:DA:96:71:0B:9C:D9:87:5E:CA:7E:31:70:7A:F3:E9:6D:52:2B:BD
@@ -5653,7 +5829,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
6A:38:5B:26:8D:DE:8B:5A:F2:4F:7A:54:83:19:18:E3:08:35:A6:BA
SHA1 Fingerprint=CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48
SHA256 Fingerprint=BF:D8:8F:E1:10:1C:41:AE:3E:80:1B:F8:BE:56:35:0E:E9:BA:D1:A6:B9:BD:51:5E:DC:5C:6D:5B:87:11:AC:44
@@ -5693,10 +5869,10 @@ Certificate:
Not After : Nov 29 11:55:54 2043 GMT
Subject: C=FI, O=Telia Finland Oyj, CN=Telia Root CA v2
X509v3 extensions:
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:72:AC:E4:33:79:AA:45:87:F6:FD:AC:1D:9E:D6:C7:2F:86:D8:24:39
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
72:AC:E4:33:79:AA:45:87:F6:FD:AC:1D:9E:D6:C7:2F:86:D8:24:39
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -5753,9 +5929,9 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Key Usage:
+ X509v3 Key Usage:
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
F0:8F:59:38:00:B3:F5:8F:9A:96:0C:D5:EB:FA:7B:AA:17:E8:13:12
SHA1 Fingerprint=43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37
SHA256 Fingerprint=DD:69:36:FE:21:F8:F0:77:C1:23:A1:A5:21:C1:22:24:F7:22:55:B7:3E:03:A7:26:06:93:E8:A2:4B:0F:A3:89
@@ -5803,14 +5979,14 @@ Certificate:
Not After : Jun 29 17:06:20 2034 GMT
Subject: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
- X509v3 Authority Key Identifier:
+ X509v3 Authority Key Identifier:
keyid:D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
DirName:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
serial:00
- X509v3 Basic Constraints:
+ X509v3 Basic Constraints:
CA:TRUE
SHA1 Fingerprint=27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
SHA256 Fingerprint=C3:84:6B:F2:4B:9E:93:CA:64:27:4C:0E:C6:7C:1E:CC:5E:02:4F:FC:AC:D2:D7:40:19:35:0E:81:FE:54:6A:E4
@@ -5853,7 +6029,7 @@ Certificate:
Not After : Jan 18 23:59:59 2038 GMT
Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust ECC Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
3A:E1:09:86:D4:CF:19:C2:96:76:74:49:76:DC:E0:35:C6:63:63:9A
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -5889,7 +6065,7 @@ Certificate:
Not After : Jan 18 23:59:59 2038 GMT
Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
53:79:BF:5A:AA:2B:4A:CF:54:80:E1:D8:9B:C0:9D:F2:B2:03:66:CB
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -5948,7 +6124,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
99:E0:19:67:0D:62:DB:76:B3:DA:3D:B8:5B:E8:FD:42:D2:31:0E:87
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -6004,7 +6180,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
A3:41:06:AC:90:6D:D1:4A:EB:75:A5:4A:10:99:B3:B1:A1:8B:4A:F7
SHA1 Fingerprint=B4:90:82:DD:45:0C:BE:8B:5B:B1:66:D3:E2:A4:08:26:CD:ED:42:CF
SHA256 Fingerprint=94:5B:BC:82:5E:A5:54:F4:89:D1:FD:51:A7:3D:DF:2E:A6:24:AC:70:19:A0:52:05:22:5C:22:A7:8C:CF:A8:B4
@@ -6039,7 +6215,7 @@ Certificate:
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
55:A9:84:89:D2:C1:32:BD:18:CB:6C:A6:07:4E:C8:E7:9D:BE:82:90
SHA1 Fingerprint=E7:F3:A3:C8:CF:6F:C3:04:2E:6D:0E:67:32:C5:9E:68:95:0D:5E:D2
SHA256 Fingerprint=55:90:38:59:C8:C0:C3:EB:B8:75:9E:CE:4E:25:57:22:5F:F5:75:8B:BD:38:EB:D4:82:76:60:1E:1B:D5:80:97
@@ -6074,7 +6250,7 @@ Certificate:
Not After : Oct 25 08:25:55 2043 GMT
Subject: C=TR, L=Gebze - Kocaeli, O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK, OU=Kamu Sertifikasyon Merkezi - Kamu SM, CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
65:3F:C7:8A:86:C6:3C:DD:3C:54:5C:35:F8:3A:ED:52:0C:47:57:C8
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -6123,7 +6299,7 @@ Certificate:
Not After : Dec 31 00:00:00 2038 GMT
Subject: C=CN, O=UniTrust, CN=UCA Extended Validation Root
X509v3 extensions:
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
D9:74:3A:E4:30:3D:0D:F7:12:DC:7E:5A:05:9F:1E:34:9A:F7:E1:14
X509v3 Basic Constraints: critical
CA:TRUE
@@ -6178,7 +6354,7 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
81:C4:8C:CC:F5:E4:30:FF:A5:0C:08:5F:8C:15:67:21:74:01:DF:DF
SHA1 Fingerprint=28:F9:78:16:19:7A:FF:18:25:18:AA:44:FE:C1:A0:CE:5C:B6:4C:8A
SHA256 Fingerprint=9B:EA:11:C9:76:FE:01:47:64:C1:BE:56:A6:F9:14:B5:A5:60:31:7A:BD:99:88:39:33:82:E5:16:1A:A0:49:3C
@@ -6229,7 +6405,7 @@ Certificate:
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
@@ -6272,13 +6448,13 @@ Certificate:
Not After : Dec 1 15:10:31 2039 GMT
Subject: C=CH, O=WISeKey, OU=OISTE Foundation Endorsed, CN=OISTE WISeKey Global Root GB CA
X509v3 extensions:
- X509v3 Key Usage:
+ X509v3 Key Usage:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
35:0F:C8:36:63:5E:E2:A3:EC:F9:3B:66:15:CE:51:52:E3:91:9A:3D
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=0F:F9:40:76:18:D3:D7:6A:4B:98:F0:A8:35:9E:0C:FD:27:AC:CC:ED
SHA256 Fingerprint=6B:9C:08:E8:6E:B0:F7:67:CF:AD:65:CD:98:B6:21:49:E5:49:4A:67:F5:84:5E:7B:D1:ED:01:9F:27:B8:6B:D6
@@ -6320,9 +6496,9 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
48:87:14:AC:E3:C3:9E:90:60:3A:D7:CA:89:EE:D3:AD:8C:B4:50:66
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=E0:11:84:5E:34:DE:BE:88:81:B9:9C:F6:16:26:D1:96:1F:C3:B9:31
SHA256 Fingerprint=85:60:F9:1C:36:24:DA:BA:95:70:B5:FE:A0:DB:E3:6F:F1:1A:83:23:BE:94:86:85:4F:B3:F3:4A:55:71:19:8D
@@ -6356,20 +6532,20 @@ Certificate:
Not After : Jan 1 05:37:19 2035 GMT
Subject: C=US, OU=www.xrampsecurity.com, O=XRamp Security Services Inc, CN=XRamp Global Certification Authority
X509v3 extensions:
- 1.3.6.1.4.1.311.20.2:
+ 1.3.6.1.4.1.311.20.2:
...C.A
- X509v3 Key Usage:
+ X509v3 Key Usage:
Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
- X509v3 Subject Key Identifier:
+ X509v3 Subject Key Identifier:
C6:4F:A2:3D:06:63:84:09:9C:CE:62:E4:04:AC:8D:5C:B5:E9:B6:1B
- X509v3 CRL Distribution Points:
+ X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.xrampsecurity.com/XGCA.crl
- 1.3.6.1.4.1.311.21.1:
+ 1.3.6.1.4.1.311.21.1:
...
SHA1 Fingerprint=B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
SHA256 Fingerprint=CE:CD:DC:90:50:99:D8:DA:DF:C5:B1:D2:09:B7:37:CB:E2:C1:8C:FB:2C:10:C0:FF:0B:CF:0D:32:86:FC:1A:A2
diff --git a/configure b/configure
index a7ed528c..fc316c98 100644
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libressl 3.8.2.
+# Generated by GNU Autoconf 2.71 for libressl 3.9.2.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -618,8 +618,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libressl'
PACKAGE_TARNAME='libressl'
-PACKAGE_VERSION='3.8.2'
-PACKAGE_STRING='libressl 3.8.2'
+PACKAGE_VERSION='3.9.2'
+PACKAGE_STRING='libressl 3.9.2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -758,6 +758,8 @@ HAVE_STRLCPY_FALSE
HAVE_STRLCPY_TRUE
HAVE_STRLCAT_FALSE
HAVE_STRLCAT_TRUE
+HAVE_STRCASECMP_FALSE
+HAVE_STRCASECMP_TRUE
HAVE_RECALLOCARRAY_FALSE
HAVE_RECALLOCARRAY_TRUE
HAVE_REALLOCARRAY_FALSE
@@ -1504,7 +1506,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libressl 3.8.2 to adapt to many kinds of systems.
+\`configure' configures libressl 3.9.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1575,7 +1577,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libressl 3.8.2:";;
+ short | recursive ) echo "Configuration of libressl 3.9.2:";;
esac
cat <<\_ACEOF
@@ -1693,7 +1695,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libressl configure 3.8.2
+libressl configure 3.9.2
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2143,7 +2145,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libressl $as_me 3.8.2, which was
+It was created by libressl $as_me 3.9.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -2898,11 +2900,11 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-LIBCRYPTO_VERSION=52:0:0
+LIBCRYPTO_VERSION=53:0:0
-LIBSSL_VERSION=55:0:0
+LIBSSL_VERSION=56:0:0
-LIBTLS_VERSION=28:0:0
+LIBTLS_VERSION=29:0:0
@@ -3494,7 +3496,7 @@ fi
# Define the identity of the package.
PACKAGE='libressl'
- VERSION='3.8.2'
+ VERSION='3.9.2'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -12065,7 +12067,7 @@ case $host_os in
# Don't use arc4random on systems before 10.12 because of
# weak seed on failure to open /dev/random, based on latest
# public source:
- # http://www.opensource.apple.com/source/Libc/Libc-997.90.3/gen/FreeBSD/arc4random.c
+ # https://www.opensource.apple.com/source/Libc/Libc-997.90.3/gen/FreeBSD/arc4random.c
#
# We use the presence of getentropy() to detect 10.12. The
# following check take into account that:
@@ -12864,6 +12866,45 @@ fi
fi
+fi
+
+ # Check for control-flow integrity support
+ if test "x$HOST_OS" != "xdarwin"
+then :
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $saved_CC supports \"-fcf-protection=full\"" >&5
+printf %s "checking if $saved_CC supports \"-fcf-protection=full\"... " >&6; }
+ old_cflags="$CFLAGS"
+ CFLAGS="-fcf-protection=full -Wall -Werror"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include
+int
+main (void)
+{
+printf("Hello")
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ CFLAGS=$old_cflags
+ HARDEN_CFLAGS="$HARDEN_CFLAGS -fcf-protection=full"
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ CFLAGS=$old_cflags
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+
+
fi
fi
@@ -13302,6 +13343,12 @@ then :
fi
+ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h
+
+fi
ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
if test "x$ac_cv_func_strlcat" = xyes
then :
@@ -13482,6 +13529,14 @@ else
HAVE_RECALLOCARRAY_FALSE=
fi
+ if test "x$ac_cv_func_strcasecmp" = xyes; then
+ HAVE_STRCASECMP_TRUE=
+ HAVE_STRCASECMP_FALSE='#'
+else
+ HAVE_STRCASECMP_TRUE='#'
+ HAVE_STRCASECMP_FALSE=
+fi
+
if test "x$ac_cv_func_strlcat" = xyes; then
HAVE_STRLCAT_TRUE=
HAVE_STRLCAT_FALSE='#'
@@ -14904,6 +14959,10 @@ if test -z "${HAVE_RECALLOCARRAY_TRUE}" && test -z "${HAVE_RECALLOCARRAY_FALSE}"
as_fn_error $? "conditional \"HAVE_RECALLOCARRAY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_STRCASECMP_TRUE}" && test -z "${HAVE_STRCASECMP_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_STRCASECMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_STRLCAT_TRUE}" && test -z "${HAVE_STRLCAT_FALSE}"; then
as_fn_error $? "conditional \"HAVE_STRLCAT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -15494,7 +15553,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libressl $as_me 3.8.2, which was
+This file was extended by libressl $as_me 3.9.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15553,7 +15612,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-libressl config.status 3.8.2
+libressl config.status 3.9.2
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 7efb143e..d4e0d60c 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -111,6 +111,8 @@ if(HOST_ASM_MACOSX_X86_64)
bn/arch/amd64/word_clz.S
bn/arch/amd64/bn_arch.c
)
+ add_definitions(-Dendbr64=)
+ add_definitions(-Dendbr32=)
add_definitions(-DAES_ASM)
add_definitions(-DBSAES_ASM)
add_definitions(-DVPAES_ASM)
@@ -152,7 +154,6 @@ if(HOST_ASM_MASM_X86_64)
whrlpool/wp-masm-x86_64.S
cpuid-masm-x86_64.S
)
- add_definitions(-Dendbr64=)
add_definitions(-DAES_ASM)
add_definitions(-DBSAES_ASM)
add_definitions(-DVPAES_ASM)
@@ -194,6 +195,7 @@ if(HOST_ASM_MINGW64_X86_64)
cpuid-mingw64-x86_64.S
)
add_definitions(-Dendbr64=)
+ add_definitions(-Dendbr32=)
add_definitions(-DAES_ASM)
add_definitions(-DBSAES_ASM)
add_definitions(-DVPAES_ASM)
@@ -277,7 +279,6 @@ set(
asn1/a_time_tm.c
asn1/a_type.c
asn1/a_utf8.c
- asn1/ameth_lib.c
asn1/asn1_err.c
asn1/asn1_gen.c
asn1/asn1_item.c
@@ -439,7 +440,6 @@ set(
des/ofb_enc.c
des/pcbc_enc.c
des/qud_cksm.c
- des/rand_key.c
des/set_key.c
des/str2key.c
des/xcbc_enc.c
@@ -488,11 +488,7 @@ set(
evp/bio_b64.c
evp/bio_enc.c
evp/bio_md.c
- evp/c_all.c
- evp/cipher_method_lib.c
- evp/digest.c
evp/e_aes.c
- evp/e_aes_cbc_hmac_sha1.c
evp/e_bf.c
evp/e_camellia.c
evp/e_cast.c
@@ -500,24 +496,21 @@ set(
evp/e_chacha20poly1305.c
evp/e_des.c
evp/e_des3.c
- evp/e_gost2814789.c
evp/e_idea.c
evp/e_null.c
evp/e_rc2.c
evp/e_rc4.c
- evp/e_rc4_hmac_md5.c
evp/e_sm4.c
evp/e_xcbc_d.c
- evp/encode.c
evp/evp_aead.c
- evp/evp_enc.c
+ evp/evp_cipher.c
+ evp/evp_digest.c
+ evp/evp_encode.c
evp/evp_err.c
evp/evp_key.c
- evp/evp_lib.c
+ evp/evp_names.c
evp/evp_pbe.c
evp/evp_pkey.c
- evp/m_gost2814789.c
- evp/m_gostr341194.c
evp/m_md4.c
evp/m_md5.c
evp/m_md5_sha1.c
@@ -526,36 +519,15 @@ set(
evp/m_sha1.c
evp/m_sha3.c
evp/m_sigver.c
- evp/m_streebog.c
evp/m_sm3.c
evp/m_wp.c
- evp/names.c
- evp/p5_crpt.c
- evp/p5_crpt2.c
- evp/p_dec.c
- evp/p_enc.c
+ evp/p_legacy.c
evp/p_lib.c
- evp/p_open.c
- evp/p_seal.c
evp/p_sign.c
evp/p_verify.c
evp/pmeth_fn.c
evp/pmeth_gn.c
evp/pmeth_lib.c
- gost/gost2814789.c
- gost/gost89_keywrap.c
- gost/gost89_params.c
- gost/gost89imit_ameth.c
- gost/gost89imit_pmeth.c
- gost/gost_asn1.c
- gost/gost_err.c
- gost/gostr341001.c
- gost/gostr341001_ameth.c
- gost/gostr341001_key.c
- gost/gostr341001_params.c
- gost/gostr341001_pmeth.c
- gost/gostr341194.c
- gost/streebog.c
hkdf/hkdf.c
hmac/hm_ameth.c
hmac/hm_pmeth.c
@@ -567,7 +539,6 @@ set(
idea/i_skey.c
kdf/hkdf_evp.c
kdf/kdf_err.c
- lhash/lh_stats.c
lhash/lhash.c
md4/md4.c
md5/md5.c
@@ -578,7 +549,6 @@ set(
modes/gcm128.c
modes/ofb128.c
modes/xts128.c
- objects/o_names.c
objects/obj_dat.c
objects/obj_err.c
objects/obj_lib.c
@@ -606,7 +576,6 @@ set(
pkcs12/p12_add.c
pkcs12/p12_asn.c
pkcs12/p12_attr.c
- pkcs12/p12_crpt.c
pkcs12/p12_crt.c
pkcs12/p12_decr.c
pkcs12/p12_init.c
@@ -734,6 +703,8 @@ set(
x509/x_all.c
)
+set(COMPAT_SRC empty.c)
+
if(UNIX)
set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c)
set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
@@ -749,154 +720,119 @@ if(WIN32)
endif()
if(WIN32)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/posix_win.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} gettimeofday)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} getuid)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_perror)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fopen)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fgets)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_open)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_rename)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_connect)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_close)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_read)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_write)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_getsockopt)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_setsockopt)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/posix_win.c)
endif()
if(NOT HAVE_ASPRINTF)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/bsd-asprintf.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} asprintf)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} vasprintf)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/bsd-asprintf.c)
endif()
if(NOT HAVE_FREEZERO)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/freezero.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} freezero)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/freezero.c)
endif()
if(NOT HAVE_GETOPT)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getopt_long.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} getopt)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} optarg)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} optind)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getopt_long.c)
endif()
if(NOT HAVE_GETPAGESIZE)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getpagesize.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getpagesize.c)
endif()
if(NOT HAVE_GETPROGNAME)
if(WIN32)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getprogname_windows.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getprogname_windows.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getprogname_linux.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getprogname_linux.c)
else()
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getprogname_unimpl.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getprogname_unimpl.c)
endif()
endif()
if(NOT HAVE_REALLOCARRAY)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} reallocarray)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/reallocarray.c)
endif()
if(NOT HAVE_RECALLOCARRAY)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} recallocarray)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/recallocarray.c)
endif()
if(NOT HAVE_STRCASECMP)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strcasecmp.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strcasecmp)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strcasecmp.c)
endif()
if(NOT HAVE_STRLCAT)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcat.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strlcat)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strlcat.c)
endif()
if(NOT HAVE_STRLCPY)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcpy.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strlcpy)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strlcpy.c)
endif()
if(NOT HAVE_STRNDUP)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strndup.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strndup)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strndup.c)
if(NOT HAVE_STRNLEN)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strnlen.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strnlen)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strnlen.c)
endif()
endif()
if(NOT HAVE_STRSEP)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strsep.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strsep)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strsep.c)
endif()
if(NOT HAVE_STRTONUM)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/strtonum.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} strtonum)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/strtonum.c)
endif()
if(NOT HAVE_SYSLOG_R)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/syslog_r.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/syslog_r.c)
endif()
if(NOT HAVE_TIMEGM)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/timegm.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} timegm)
+ # XXX - Remove after next bump once libtls, ocspcheck, and asn1time are fixed.
+ set(COMPAT_SRC ${COMPAT_SRC} compat/timegm.c)
endif()
if(NOT HAVE_EXPLICIT_BZERO)
if(WIN32)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero_win.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero_win.c)
else()
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero.c)
set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0)
endif()
- set(EXTRA_EXPORT ${EXTRA_EXPORT} explicit_bzero)
endif()
if(NOT HAVE_ARC4RANDOM_BUF)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_buf)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_uniform)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random_uniform.c)
if(NOT HAVE_GETENTROPY)
if(WIN32)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_win.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_win.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "AIX")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_aix.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_freebsd.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_hpux.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_hpux.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_linux.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_linux.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_netbsd.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_netbsd.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_osx.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_osx.c)
elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_solaris.c)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_solaris.c)
endif()
- set(EXTRA_EXPORT ${EXTRA_EXPORT} getentropy)
endif()
endif()
if(NOT HAVE_TIMINGSAFE_BCMP)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_bcmp.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} timingsafe_bcmp)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_bcmp.c)
endif()
if(NOT HAVE_TIMINGSAFE_MEMCMP)
- set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c)
- set(EXTRA_EXPORT ${EXTRA_EXPORT} timingsafe_memcmp)
+ set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_memcmp.c)
endif()
if(NOT ENABLE_ASM)
@@ -912,29 +848,21 @@ else()
endif()
endif()
-if(NOT "${OPENSSLDIR}" STREQUAL "")
- add_definitions(-DOPENSSLDIR=\"${OPENSSLDIR}\")
-else()
- if(WIN32)
- add_definitions(-DOPENSSLDIR=\"C:/Windows/libressl/ssl\")
- else()
- add_definitions(-DOPENSSLDIR=\"${CMAKE_INSTALL_PREFIX}/etc/ssl\")
- endif()
-endif()
+add_definitions(-DOPENSSLDIR=\"${OPENSSLDIR}\")
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/crypto.sym SYMS)
foreach(SYM IN LISTS CRYPTO_UNEXPORT)
string(REPLACE "${SYM}\n" "" SYMS ${SYMS})
endforeach()
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS})
-if(EXTRA_EXPORT)
- list(SORT EXTRA_EXPORT)
- foreach(SYM IN LISTS EXTRA_EXPORT)
- file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym "${SYM}\n")
- endforeach()
-endif()
-set(LIBTLS_EXTRA_EXPORT ${EXTRA_EXPORT} PARENT_SCOPE)
+add_library(compat_obj OBJECT ${COMPAT_SRC})
+target_include_directories(compat_obj
+ PRIVATE
+ ../include/compat
+ PUBLIC
+ ../include
+ ${CMAKE_BINARY_DIR}/include)
add_library(crypto_obj OBJECT ${CRYPTO_SRC})
target_include_directories(crypto_obj
@@ -953,11 +881,13 @@ target_include_directories(crypto_obj
evp
hidden
hmac
+ lhash
modes
ocsp
pkcs12
rsa
sha
+ stack
x509
../include/compat
PUBLIC
@@ -972,6 +902,8 @@ elseif(HOST_I386)
target_include_directories(crypto_obj PRIVATE bn/arch/i386/)
elseif(HOST_MIPS64)
target_include_directories(crypto_obj PRIVATE bn/arch/mips64)
+elseif(HOST_MIPS)
+ target_include_directories(crypto_obj PRIVATE bn/arch/mips)
elseif(HOST_POWERPC)
target_include_directories(crypto_obj PRIVATE bn/arch/powerpc)
elseif(HOST_POWERPC64)
@@ -984,7 +916,7 @@ elseif(HOST_X86_64)
target_include_directories(crypto_obj PRIVATE bn/arch/amd64)
endif()
-add_library(crypto $ empty.c)
+add_library(crypto $ $ empty.c)
export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym)
target_link_libraries(crypto ${PLATFORM_LIBS})
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index 0059b597..d6fb3d0f 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -13,11 +13,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/crypto/ecdh
AM_CPPFLAGS += -I$(top_srcdir)/crypto/ecdsa
AM_CPPFLAGS += -I$(top_srcdir)/crypto/evp
AM_CPPFLAGS += -I$(top_srcdir)/crypto/hmac
+AM_CPPFLAGS += -I$(top_srcdir)/crypto/lhash
AM_CPPFLAGS += -I$(top_srcdir)/crypto/modes
AM_CPPFLAGS += -I$(top_srcdir)/crypto/ocsp
AM_CPPFLAGS += -I$(top_srcdir)/crypto/pkcs12
AM_CPPFLAGS += -I$(top_srcdir)/crypto/rsa
AM_CPPFLAGS += -I$(top_srcdir)/crypto/sha
+AM_CPPFLAGS += -I$(top_srcdir)/crypto/stack
AM_CPPFLAGS += -I$(top_srcdir)/crypto/x509
AM_CPPFLAGS += -I$(top_srcdir)/crypto
@@ -229,6 +231,7 @@ noinst_HEADERS += arm_arch.h
noinst_HEADERS += constant_time.h
noinst_HEADERS += cryptlib.h
noinst_HEADERS += crypto_internal.h
+noinst_HEADERS += crypto_local.h
noinst_HEADERS += md32_common.h
noinst_HEADERS += x86_arch.h
@@ -259,7 +262,6 @@ libcrypto_la_SOURCES += asn1/a_time_posix.c
libcrypto_la_SOURCES += asn1/a_time_tm.c
libcrypto_la_SOURCES += asn1/a_type.c
libcrypto_la_SOURCES += asn1/a_utf8.c
-libcrypto_la_SOURCES += asn1/ameth_lib.c
libcrypto_la_SOURCES += asn1/asn1_err.c
libcrypto_la_SOURCES += asn1/asn1_gen.c
libcrypto_la_SOURCES += asn1/asn1_item.c
@@ -530,7 +532,6 @@ libcrypto_la_SOURCES += des/ofb64enc.c
libcrypto_la_SOURCES += des/ofb_enc.c
libcrypto_la_SOURCES += des/pcbc_enc.c
libcrypto_la_SOURCES += des/qud_cksm.c
-libcrypto_la_SOURCES += des/rand_key.c
libcrypto_la_SOURCES += des/set_key.c
libcrypto_la_SOURCES += des/str2key.c
libcrypto_la_SOURCES += des/xcbc_enc.c
@@ -601,11 +602,7 @@ libcrypto_la_SOURCES += err/err_prn.c
libcrypto_la_SOURCES += evp/bio_b64.c
libcrypto_la_SOURCES += evp/bio_enc.c
libcrypto_la_SOURCES += evp/bio_md.c
-libcrypto_la_SOURCES += evp/c_all.c
-libcrypto_la_SOURCES += evp/cipher_method_lib.c
-libcrypto_la_SOURCES += evp/digest.c
libcrypto_la_SOURCES += evp/e_aes.c
-libcrypto_la_SOURCES += evp/e_aes_cbc_hmac_sha1.c
libcrypto_la_SOURCES += evp/e_bf.c
libcrypto_la_SOURCES += evp/e_camellia.c
libcrypto_la_SOURCES += evp/e_cast.c
@@ -613,24 +610,21 @@ libcrypto_la_SOURCES += evp/e_chacha.c
libcrypto_la_SOURCES += evp/e_chacha20poly1305.c
libcrypto_la_SOURCES += evp/e_des.c
libcrypto_la_SOURCES += evp/e_des3.c
-libcrypto_la_SOURCES += evp/e_gost2814789.c
libcrypto_la_SOURCES += evp/e_idea.c
libcrypto_la_SOURCES += evp/e_null.c
libcrypto_la_SOURCES += evp/e_rc2.c
libcrypto_la_SOURCES += evp/e_rc4.c
-libcrypto_la_SOURCES += evp/e_rc4_hmac_md5.c
libcrypto_la_SOURCES += evp/e_sm4.c
libcrypto_la_SOURCES += evp/e_xcbc_d.c
-libcrypto_la_SOURCES += evp/encode.c
libcrypto_la_SOURCES += evp/evp_aead.c
-libcrypto_la_SOURCES += evp/evp_enc.c
+libcrypto_la_SOURCES += evp/evp_cipher.c
+libcrypto_la_SOURCES += evp/evp_digest.c
+libcrypto_la_SOURCES += evp/evp_encode.c
libcrypto_la_SOURCES += evp/evp_err.c
libcrypto_la_SOURCES += evp/evp_key.c
-libcrypto_la_SOURCES += evp/evp_lib.c
+libcrypto_la_SOURCES += evp/evp_names.c
libcrypto_la_SOURCES += evp/evp_pbe.c
libcrypto_la_SOURCES += evp/evp_pkey.c
-libcrypto_la_SOURCES += evp/m_gost2814789.c
-libcrypto_la_SOURCES += evp/m_gostr341194.c
libcrypto_la_SOURCES += evp/m_md4.c
libcrypto_la_SOURCES += evp/m_md5.c
libcrypto_la_SOURCES += evp/m_md5_sha1.c
@@ -639,17 +633,10 @@ libcrypto_la_SOURCES += evp/m_ripemd.c
libcrypto_la_SOURCES += evp/m_sha1.c
libcrypto_la_SOURCES += evp/m_sha3.c
libcrypto_la_SOURCES += evp/m_sigver.c
-libcrypto_la_SOURCES += evp/m_streebog.c
libcrypto_la_SOURCES += evp/m_sm3.c
libcrypto_la_SOURCES += evp/m_wp.c
-libcrypto_la_SOURCES += evp/names.c
-libcrypto_la_SOURCES += evp/p5_crpt.c
-libcrypto_la_SOURCES += evp/p5_crpt2.c
-libcrypto_la_SOURCES += evp/p_dec.c
-libcrypto_la_SOURCES += evp/p_enc.c
+libcrypto_la_SOURCES += evp/p_legacy.c
libcrypto_la_SOURCES += evp/p_lib.c
-libcrypto_la_SOURCES += evp/p_open.c
-libcrypto_la_SOURCES += evp/p_seal.c
libcrypto_la_SOURCES += evp/p_sign.c
libcrypto_la_SOURCES += evp/p_verify.c
libcrypto_la_SOURCES += evp/pmeth_fn.c
@@ -657,24 +644,6 @@ libcrypto_la_SOURCES += evp/pmeth_gn.c
libcrypto_la_SOURCES += evp/pmeth_lib.c
noinst_HEADERS += evp/evp_local.h
-# gost
-libcrypto_la_SOURCES += gost/gost2814789.c
-libcrypto_la_SOURCES += gost/gost89_keywrap.c
-libcrypto_la_SOURCES += gost/gost89_params.c
-libcrypto_la_SOURCES += gost/gost89imit_ameth.c
-libcrypto_la_SOURCES += gost/gost89imit_pmeth.c
-libcrypto_la_SOURCES += gost/gost_asn1.c
-libcrypto_la_SOURCES += gost/gost_err.c
-libcrypto_la_SOURCES += gost/gostr341001.c
-libcrypto_la_SOURCES += gost/gostr341001_ameth.c
-libcrypto_la_SOURCES += gost/gostr341001_key.c
-libcrypto_la_SOURCES += gost/gostr341001_params.c
-libcrypto_la_SOURCES += gost/gostr341001_pmeth.c
-libcrypto_la_SOURCES += gost/gostr341194.c
-libcrypto_la_SOURCES += gost/streebog.c
-noinst_HEADERS += gost/gost_asn1.h
-noinst_HEADERS += gost/gost_local.h
-
# hidden
noinst_HEADERS += hidden/crypto_namespace.h
noinst_HEADERS += hidden/openssl/asn1.h
@@ -694,7 +663,6 @@ noinst_HEADERS += hidden/openssl/dh.h
noinst_HEADERS += hidden/openssl/dsa.h
noinst_HEADERS += hidden/openssl/ec.h
noinst_HEADERS += hidden/openssl/err.h
-noinst_HEADERS += hidden/openssl/gost.h
noinst_HEADERS += hidden/openssl/hkdf.h
noinst_HEADERS += hidden/openssl/hmac.h
noinst_HEADERS += hidden/openssl/idea.h
@@ -708,6 +676,7 @@ noinst_HEADERS += hidden/openssl/pem.h
noinst_HEADERS += hidden/openssl/pkcs12.h
noinst_HEADERS += hidden/openssl/pkcs7.h
noinst_HEADERS += hidden/openssl/poly1305.h
+noinst_HEADERS += hidden/openssl/posix_time.h
noinst_HEADERS += hidden/openssl/rand.h
noinst_HEADERS += hidden/openssl/rc2.h
noinst_HEADERS += hidden/openssl/rsa.h
@@ -744,8 +713,8 @@ libcrypto_la_SOURCES += kdf/hkdf_evp.c
libcrypto_la_SOURCES += kdf/kdf_err.c
# lhash
-libcrypto_la_SOURCES += lhash/lh_stats.c
libcrypto_la_SOURCES += lhash/lhash.c
+noinst_HEADERS += lhash/lhash_local.h
# md4
libcrypto_la_SOURCES += md4/md4.c
@@ -764,7 +733,6 @@ libcrypto_la_SOURCES += modes/xts128.c
noinst_HEADERS += modes/modes_local.h
# objects
-libcrypto_la_SOURCES += objects/o_names.c
libcrypto_la_SOURCES += objects/obj_dat.c
libcrypto_la_SOURCES += objects/obj_err.c
libcrypto_la_SOURCES += objects/obj_lib.c
@@ -800,7 +768,6 @@ libcrypto_la_SOURCES += pem/pvkfmt.c
libcrypto_la_SOURCES += pkcs12/p12_add.c
libcrypto_la_SOURCES += pkcs12/p12_asn.c
libcrypto_la_SOURCES += pkcs12/p12_attr.c
-libcrypto_la_SOURCES += pkcs12/p12_crpt.c
libcrypto_la_SOURCES += pkcs12/p12_crt.c
libcrypto_la_SOURCES += pkcs12/p12_decr.c
libcrypto_la_SOURCES += pkcs12/p12_init.c
@@ -884,6 +851,7 @@ libcrypto_la_SOURCES += sm4/sm4.c
# stack
libcrypto_la_SOURCES += stack/stack.c
+noinst_HEADERS += stack/stack_local.h
# ts
libcrypto_la_SOURCES += ts/ts_asn1.c
diff --git a/crypto/Makefile.am.macosx-x86_64 b/crypto/Makefile.am.macosx-x86_64
index b9b89cf0..c0322f8d 100644
--- a/crypto/Makefile.am.macosx-x86_64
+++ b/crypto/Makefile.am.macosx-x86_64
@@ -34,6 +34,8 @@ ASM_X86_64_MACOSX += bn/arch/amd64/bn_arch.c
EXTRA_DIST += $(ASM_X86_64_MACOSX)
if HOST_ASM_MACOSX_X86_64
+libcrypto_la_CPPFLAGS += -Dendbr64=
+libcrypto_la_CPPFLAGS += -Dendbr32=
libcrypto_la_CPPFLAGS += -DAES_ASM
libcrypto_la_CPPFLAGS += -DBSAES_ASM
libcrypto_la_CPPFLAGS += -DVPAES_ASM
diff --git a/crypto/Makefile.am.mingw64-x86_64 b/crypto/Makefile.am.mingw64-x86_64
index 5a277c59..d9efc286 100644
--- a/crypto/Makefile.am.mingw64-x86_64
+++ b/crypto/Makefile.am.mingw64-x86_64
@@ -21,6 +21,8 @@ ASM_X86_64_MINGW64 += cpuid-mingw64-x86_64.S
EXTRA_DIST += $(ASM_X86_64_MINGW64)
if HOST_ASM_MINGW64_X86_64
+libcrypto_la_CPPFLAGS += -Dendbr64=
+libcrypto_la_CPPFLAGS += -Dendbr32=
libcrypto_la_CPPFLAGS += -DAES_ASM
libcrypto_la_CPPFLAGS += -DBSAES_ASM
libcrypto_la_CPPFLAGS += -DVPAES_ASM
diff --git a/crypto/Makefile.in b/crypto/Makefile.in
index 2bb77405..1d7384d6 100644
--- a/crypto/Makefile.in
+++ b/crypto/Makefile.in
@@ -148,8 +148,9 @@ host_triplet = @host@
@HOST_ASM_ELF_X86_64_TRUE@ -DSHA256_ASM -DSHA512_ASM \
@HOST_ASM_ELF_X86_64_TRUE@ -DWHIRLPOOL_ASM -DOPENSSL_CPUID_OBJ
@HOST_ASM_ELF_X86_64_TRUE@am__append_43 = $(ASM_X86_64_ELF)
-@HOST_ASM_MACOSX_X86_64_TRUE@am__append_44 = -DAES_ASM -DBSAES_ASM \
-@HOST_ASM_MACOSX_X86_64_TRUE@ -DVPAES_ASM -DOPENSSL_IA32_SSE2 \
+@HOST_ASM_MACOSX_X86_64_TRUE@am__append_44 = -Dendbr64= -Dendbr32= \
+@HOST_ASM_MACOSX_X86_64_TRUE@ -DAES_ASM -DBSAES_ASM -DVPAES_ASM \
+@HOST_ASM_MACOSX_X86_64_TRUE@ -DOPENSSL_IA32_SSE2 \
@HOST_ASM_MACOSX_X86_64_TRUE@ -DOPENSSL_BN_ASM_MONT \
@HOST_ASM_MACOSX_X86_64_TRUE@ -DOPENSSL_BN_ASM_MONT5 -DMD5_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@ -DGHASH_ASM -DRSA_ASM -DSHA1_ASM \
@@ -167,7 +168,8 @@ host_triplet = @host@
@HOST_ASM_MASM_X86_64_TRUE@am__append_47 = $(ASM_X86_64_MASM)
#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5
-@HOST_ASM_MINGW64_X86_64_TRUE@am__append_48 = -DAES_ASM -DBSAES_ASM \
+@HOST_ASM_MINGW64_X86_64_TRUE@am__append_48 = -Dendbr64= -Dendbr32= \
+@HOST_ASM_MINGW64_X86_64_TRUE@ -DAES_ASM -DBSAES_ASM \
@HOST_ASM_MINGW64_X86_64_TRUE@ -DVPAES_ASM -DOPENSSL_IA32_SSE2 \
@HOST_ASM_MINGW64_X86_64_TRUE@ -DMD5_ASM -DGHASH_ASM -DRSA_ASM \
@HOST_ASM_MINGW64_X86_64_TRUE@ -DSHA1_ASM -DSHA256_ASM \
@@ -382,89 +384,77 @@ am__libcrypto_la_SOURCES_DIST = aes/aes-elf-armv4.S \
asn1/a_object.c asn1/a_octet.c asn1/a_pkey.c asn1/a_print.c \
asn1/a_pubkey.c asn1/a_strex.c asn1/a_string.c asn1/a_strnid.c \
asn1/a_time.c asn1/a_time_posix.c asn1/a_time_tm.c \
- asn1/a_type.c asn1/a_utf8.c asn1/ameth_lib.c asn1/asn1_err.c \
- asn1/asn1_gen.c asn1/asn1_item.c asn1/asn1_lib.c \
- asn1/asn1_old.c asn1/asn1_old_lib.c asn1/asn1_par.c \
- asn1/asn1_types.c asn1/asn_mime.c asn1/asn_moid.c \
- asn1/bio_asn1.c asn1/bio_ndef.c asn1/p5_pbe.c asn1/p5_pbev2.c \
- asn1/p8_pkey.c asn1/t_crl.c asn1/t_req.c asn1/t_spki.c \
- asn1/t_x509.c asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c \
- asn1/tasn_fre.c asn1/tasn_new.c asn1/tasn_prn.c \
- asn1/tasn_typ.c asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c \
- asn1/x_bignum.c asn1/x_crl.c asn1/x_exten.c asn1/x_info.c \
- asn1/x_long.c asn1/x_name.c asn1/x_pkey.c asn1/x_pubkey.c \
- asn1/x_req.c asn1/x_sig.c asn1/x_spki.c asn1/x_val.c \
- asn1/x_x509.c asn1/x_x509a.c bf/bf_cfb64.c bf/bf_ecb.c \
- bf/bf_enc.c bf/bf_ofb64.c bf/bf_skey.c bio/b_dump.c \
- bio/b_posix.c bio/b_print.c bio/b_sock.c bio/b_win.c \
- bio/bf_buff.c bio/bf_nbio.c bio/bf_null.c bio/bio_cb.c \
- bio/bio_err.c bio/bio_lib.c bio/bio_meth.c bio/bss_acpt.c \
- bio/bss_bio.c bio/bss_conn.c bio/bss_dgram.c bio/bss_fd.c \
- bio/bss_file.c bio/bss_log.c bio/bss_mem.c bio/bss_null.c \
- bio/bss_sock.c bn/bn_add.c bn/bn_bpsw.c bn/bn_const.c \
- bn/bn_convert.c bn/bn_ctx.c bn/bn_div.c bn/bn_err.c \
- bn/bn_exp.c bn/bn_gcd.c bn/bn_isqrt.c bn/bn_kron.c bn/bn_lib.c \
- bn/bn_mod.c bn/bn_mod_sqrt.c bn/bn_mont.c bn/bn_mul.c \
- bn/bn_prime.c bn/bn_primitives.c bn/bn_print.c bn/bn_rand.c \
- bn/bn_recp.c bn/bn_shift.c bn/bn_small_primes.c bn/bn_sqr.c \
- bn/bn_word.c buffer/buf_err.c buffer/buffer.c \
- bytestring/bs_ber.c bytestring/bs_cbb.c bytestring/bs_cbs.c \
- camellia/cmll_cfb.c camellia/cmll_ctr.c camellia/cmll_ecb.c \
- camellia/cmll_misc.c camellia/cmll_ofb.c cast/c_cfb64.c \
- cast/c_ecb.c cast/c_enc.c cast/c_ofb64.c cast/c_skey.c \
- chacha/chacha.c cmac/cm_ameth.c cmac/cm_pmeth.c cmac/cmac.c \
- cms/cms_asn1.c cms/cms_att.c cms/cms_dd.c cms/cms_enc.c \
- cms/cms_env.c cms/cms_err.c cms/cms_ess.c cms/cms_io.c \
- cms/cms_kari.c cms/cms_lib.c cms/cms_pwri.c cms/cms_sd.c \
- cms/cms_smime.c conf/conf_api.c conf/conf_def.c \
- conf/conf_err.c conf/conf_lib.c conf/conf_mall.c \
- conf/conf_mod.c conf/conf_sap.c ct/ct_b64.c ct/ct_err.c \
- ct/ct_log.c ct/ct_oct.c ct/ct_policy.c ct/ct_prn.c ct/ct_sct.c \
- ct/ct_sct_ctx.c ct/ct_vfy.c ct/ct_x509v3.c \
+ asn1/a_type.c asn1/a_utf8.c asn1/asn1_err.c asn1/asn1_gen.c \
+ asn1/asn1_item.c asn1/asn1_lib.c asn1/asn1_old.c \
+ asn1/asn1_old_lib.c asn1/asn1_par.c asn1/asn1_types.c \
+ asn1/asn_mime.c asn1/asn_moid.c asn1/bio_asn1.c \
+ asn1/bio_ndef.c asn1/p5_pbe.c asn1/p5_pbev2.c asn1/p8_pkey.c \
+ asn1/t_crl.c asn1/t_req.c asn1/t_spki.c asn1/t_x509.c \
+ asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c asn1/tasn_fre.c \
+ asn1/tasn_new.c asn1/tasn_prn.c asn1/tasn_typ.c \
+ asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c asn1/x_bignum.c \
+ asn1/x_crl.c asn1/x_exten.c asn1/x_info.c asn1/x_long.c \
+ asn1/x_name.c asn1/x_pkey.c asn1/x_pubkey.c asn1/x_req.c \
+ asn1/x_sig.c asn1/x_spki.c asn1/x_val.c asn1/x_x509.c \
+ asn1/x_x509a.c bf/bf_cfb64.c bf/bf_ecb.c bf/bf_enc.c \
+ bf/bf_ofb64.c bf/bf_skey.c bio/b_dump.c bio/b_posix.c \
+ bio/b_print.c bio/b_sock.c bio/b_win.c bio/bf_buff.c \
+ bio/bf_nbio.c bio/bf_null.c bio/bio_cb.c bio/bio_err.c \
+ bio/bio_lib.c bio/bio_meth.c bio/bss_acpt.c bio/bss_bio.c \
+ bio/bss_conn.c bio/bss_dgram.c bio/bss_fd.c bio/bss_file.c \
+ bio/bss_log.c bio/bss_mem.c bio/bss_null.c bio/bss_sock.c \
+ bn/bn_add.c bn/bn_bpsw.c bn/bn_const.c bn/bn_convert.c \
+ bn/bn_ctx.c bn/bn_div.c bn/bn_err.c bn/bn_exp.c bn/bn_gcd.c \
+ bn/bn_isqrt.c bn/bn_kron.c bn/bn_lib.c bn/bn_mod.c \
+ bn/bn_mod_sqrt.c bn/bn_mont.c bn/bn_mul.c bn/bn_prime.c \
+ bn/bn_primitives.c bn/bn_print.c bn/bn_rand.c bn/bn_recp.c \
+ bn/bn_shift.c bn/bn_small_primes.c bn/bn_sqr.c bn/bn_word.c \
+ buffer/buf_err.c buffer/buffer.c bytestring/bs_ber.c \
+ bytestring/bs_cbb.c bytestring/bs_cbs.c camellia/cmll_cfb.c \
+ camellia/cmll_ctr.c camellia/cmll_ecb.c camellia/cmll_misc.c \
+ camellia/cmll_ofb.c cast/c_cfb64.c cast/c_ecb.c cast/c_enc.c \
+ cast/c_ofb64.c cast/c_skey.c chacha/chacha.c cmac/cm_ameth.c \
+ cmac/cm_pmeth.c cmac/cmac.c cms/cms_asn1.c cms/cms_att.c \
+ cms/cms_dd.c cms/cms_enc.c cms/cms_env.c cms/cms_err.c \
+ cms/cms_ess.c cms/cms_io.c cms/cms_kari.c cms/cms_lib.c \
+ cms/cms_pwri.c cms/cms_sd.c cms/cms_smime.c conf/conf_api.c \
+ conf/conf_def.c conf/conf_err.c conf/conf_lib.c \
+ conf/conf_mall.c conf/conf_mod.c conf/conf_sap.c ct/ct_b64.c \
+ ct/ct_err.c ct/ct_log.c ct/ct_oct.c ct/ct_policy.c ct/ct_prn.c \
+ ct/ct_sct.c ct/ct_sct_ctx.c ct/ct_vfy.c ct/ct_x509v3.c \
curve25519/curve25519-generic.c curve25519/curve25519.c \
des/cbc_cksm.c des/cbc_enc.c des/cfb64ede.c des/cfb64enc.c \
des/cfb_enc.c des/des_enc.c des/ecb3_enc.c des/ecb_enc.c \
des/ede_cbcm_enc.c des/enc_read.c des/enc_writ.c des/fcrypt.c \
des/fcrypt_b.c des/ofb64ede.c des/ofb64enc.c des/ofb_enc.c \
- des/pcbc_enc.c des/qud_cksm.c des/rand_key.c des/set_key.c \
- des/str2key.c des/xcbc_enc.c dh/dh_ameth.c dh/dh_asn1.c \
- dh/dh_check.c dh/dh_err.c dh/dh_gen.c dh/dh_key.c dh/dh_lib.c \
- dh/dh_pmeth.c dsa/dsa_ameth.c dsa/dsa_asn1.c dsa/dsa_err.c \
- dsa/dsa_gen.c dsa/dsa_key.c dsa/dsa_lib.c dsa/dsa_meth.c \
- dsa/dsa_ossl.c dsa/dsa_pmeth.c dsa/dsa_prn.c ec/ec_ameth.c \
- ec/ec_asn1.c ec/ec_check.c ec/ec_curve.c ec/ec_cvt.c \
- ec/ec_err.c ec/ec_key.c ec/ec_kmeth.c ec/ec_lib.c ec/ec_mult.c \
- ec/ec_oct.c ec/ec_pmeth.c ec/ec_print.c ec/eck_prn.c \
- ec/ecp_mont.c ec/ecp_oct.c ec/ecp_smpl.c ec/ecx_methods.c \
- ecdh/ecdh.c ecdsa/ecdsa.c engine/engine_stubs.c err/err.c \
- err/err_all.c err/err_prn.c evp/bio_b64.c evp/bio_enc.c \
- evp/bio_md.c evp/c_all.c evp/cipher_method_lib.c evp/digest.c \
- evp/e_aes.c evp/e_aes_cbc_hmac_sha1.c evp/e_bf.c \
- evp/e_camellia.c evp/e_cast.c evp/e_chacha.c \
- evp/e_chacha20poly1305.c evp/e_des.c evp/e_des3.c \
- evp/e_gost2814789.c evp/e_idea.c evp/e_null.c evp/e_rc2.c \
- evp/e_rc4.c evp/e_rc4_hmac_md5.c evp/e_sm4.c evp/e_xcbc_d.c \
- evp/encode.c evp/evp_aead.c evp/evp_enc.c evp/evp_err.c \
- evp/evp_key.c evp/evp_lib.c evp/evp_pbe.c evp/evp_pkey.c \
- evp/m_gost2814789.c evp/m_gostr341194.c evp/m_md4.c \
+ des/pcbc_enc.c des/qud_cksm.c des/set_key.c des/str2key.c \
+ des/xcbc_enc.c dh/dh_ameth.c dh/dh_asn1.c dh/dh_check.c \
+ dh/dh_err.c dh/dh_gen.c dh/dh_key.c dh/dh_lib.c dh/dh_pmeth.c \
+ dsa/dsa_ameth.c dsa/dsa_asn1.c dsa/dsa_err.c dsa/dsa_gen.c \
+ dsa/dsa_key.c dsa/dsa_lib.c dsa/dsa_meth.c dsa/dsa_ossl.c \
+ dsa/dsa_pmeth.c dsa/dsa_prn.c ec/ec_ameth.c ec/ec_asn1.c \
+ ec/ec_check.c ec/ec_curve.c ec/ec_cvt.c ec/ec_err.c \
+ ec/ec_key.c ec/ec_kmeth.c ec/ec_lib.c ec/ec_mult.c ec/ec_oct.c \
+ ec/ec_pmeth.c ec/ec_print.c ec/eck_prn.c ec/ecp_mont.c \
+ ec/ecp_oct.c ec/ecp_smpl.c ec/ecx_methods.c ecdh/ecdh.c \
+ ecdsa/ecdsa.c engine/engine_stubs.c err/err.c err/err_all.c \
+ err/err_prn.c evp/bio_b64.c evp/bio_enc.c evp/bio_md.c \
+ evp/e_aes.c evp/e_bf.c evp/e_camellia.c evp/e_cast.c \
+ evp/e_chacha.c evp/e_chacha20poly1305.c evp/e_des.c \
+ evp/e_des3.c evp/e_idea.c evp/e_null.c evp/e_rc2.c evp/e_rc4.c \
+ evp/e_sm4.c evp/e_xcbc_d.c evp/evp_aead.c evp/evp_cipher.c \
+ evp/evp_digest.c evp/evp_encode.c evp/evp_err.c evp/evp_key.c \
+ evp/evp_names.c evp/evp_pbe.c evp/evp_pkey.c evp/m_md4.c \
evp/m_md5.c evp/m_md5_sha1.c evp/m_null.c evp/m_ripemd.c \
- evp/m_sha1.c evp/m_sha3.c evp/m_sigver.c evp/m_streebog.c \
- evp/m_sm3.c evp/m_wp.c evp/names.c evp/p5_crpt.c \
- evp/p5_crpt2.c evp/p_dec.c evp/p_enc.c evp/p_lib.c \
- evp/p_open.c evp/p_seal.c evp/p_sign.c evp/p_verify.c \
- evp/pmeth_fn.c evp/pmeth_gn.c evp/pmeth_lib.c \
- gost/gost2814789.c gost/gost89_keywrap.c gost/gost89_params.c \
- gost/gost89imit_ameth.c gost/gost89imit_pmeth.c \
- gost/gost_asn1.c gost/gost_err.c gost/gostr341001.c \
- gost/gostr341001_ameth.c gost/gostr341001_key.c \
- gost/gostr341001_params.c gost/gostr341001_pmeth.c \
- gost/gostr341194.c gost/streebog.c hkdf/hkdf.c hmac/hm_ameth.c \
- hmac/hm_pmeth.c hmac/hmac.c idea/i_cbc.c idea/i_cfb64.c \
- idea/i_ecb.c idea/i_ofb64.c idea/i_skey.c kdf/hkdf_evp.c \
- kdf/kdf_err.c lhash/lh_stats.c lhash/lhash.c md4/md4.c \
- md5/md5.c modes/cbc128.c modes/ccm128.c modes/cfb128.c \
- modes/ctr128.c modes/gcm128.c modes/ofb128.c modes/xts128.c \
- objects/o_names.c objects/obj_dat.c objects/obj_err.c \
+ evp/m_sha1.c evp/m_sha3.c evp/m_sigver.c evp/m_sm3.c \
+ evp/m_wp.c evp/p_legacy.c evp/p_lib.c evp/p_sign.c \
+ evp/p_verify.c evp/pmeth_fn.c evp/pmeth_gn.c evp/pmeth_lib.c \
+ hkdf/hkdf.c hmac/hm_ameth.c hmac/hm_pmeth.c hmac/hmac.c \
+ idea/i_cbc.c idea/i_cfb64.c idea/i_ecb.c idea/i_ofb64.c \
+ idea/i_skey.c kdf/hkdf_evp.c kdf/kdf_err.c lhash/lhash.c \
+ md4/md4.c md5/md5.c modes/cbc128.c modes/ccm128.c \
+ modes/cfb128.c modes/ctr128.c modes/gcm128.c modes/ofb128.c \
+ modes/xts128.c objects/obj_dat.c objects/obj_err.c \
objects/obj_lib.c objects/obj_xref.c ocsp/ocsp_asn.c \
ocsp/ocsp_cl.c ocsp/ocsp_err.c ocsp/ocsp_ext.c ocsp/ocsp_ht.c \
ocsp/ocsp_lib.c ocsp/ocsp_prn.c ocsp/ocsp_srv.c \
@@ -472,22 +462,22 @@ am__libcrypto_la_SOURCES_DIST = aes/aes-elf-armv4.S \
pem/pem_lib.c pem/pem_oth.c pem/pem_pk8.c pem/pem_pkey.c \
pem/pem_sign.c pem/pem_x509.c pem/pem_xaux.c pem/pvkfmt.c \
pkcs12/p12_add.c pkcs12/p12_asn.c pkcs12/p12_attr.c \
- pkcs12/p12_crpt.c pkcs12/p12_crt.c pkcs12/p12_decr.c \
- pkcs12/p12_init.c pkcs12/p12_key.c pkcs12/p12_kiss.c \
- pkcs12/p12_mutl.c pkcs12/p12_npas.c pkcs12/p12_p8d.c \
- pkcs12/p12_p8e.c pkcs12/p12_sbag.c pkcs12/p12_utl.c \
- pkcs12/pk12err.c pkcs7/pk7_asn1.c pkcs7/pk7_attr.c \
- pkcs7/pk7_doit.c pkcs7/pk7_lib.c pkcs7/pk7_mime.c \
- pkcs7/pk7_smime.c pkcs7/pkcs7err.c poly1305/poly1305.c \
- rand/rand_err.c rand/rand_lib.c rand/randfile.c rc2/rc2_cbc.c \
- rc2/rc2_ecb.c rc2/rc2_skey.c rc2/rc2cfb64.c rc2/rc2ofb64.c \
- ripemd/ripemd.c rsa/rsa_ameth.c rsa/rsa_asn1.c \
- rsa/rsa_blinding.c rsa/rsa_chk.c rsa/rsa_eay.c rsa/rsa_err.c \
- rsa/rsa_gen.c rsa/rsa_lib.c rsa/rsa_meth.c rsa/rsa_none.c \
- rsa/rsa_oaep.c rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c \
- rsa/rsa_pss.c rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c \
- sha/sha1.c sha/sha256.c sha/sha3.c sha/sha512.c sm3/sm3.c \
- sm4/sm4.c stack/stack.c ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c \
+ pkcs12/p12_crt.c pkcs12/p12_decr.c pkcs12/p12_init.c \
+ pkcs12/p12_key.c pkcs12/p12_kiss.c pkcs12/p12_mutl.c \
+ pkcs12/p12_npas.c pkcs12/p12_p8d.c pkcs12/p12_p8e.c \
+ pkcs12/p12_sbag.c pkcs12/p12_utl.c pkcs12/pk12err.c \
+ pkcs7/pk7_asn1.c pkcs7/pk7_attr.c pkcs7/pk7_doit.c \
+ pkcs7/pk7_lib.c pkcs7/pk7_mime.c pkcs7/pk7_smime.c \
+ pkcs7/pkcs7err.c poly1305/poly1305.c rand/rand_err.c \
+ rand/rand_lib.c rand/randfile.c rc2/rc2_cbc.c rc2/rc2_ecb.c \
+ rc2/rc2_skey.c rc2/rc2cfb64.c rc2/rc2ofb64.c ripemd/ripemd.c \
+ rsa/rsa_ameth.c rsa/rsa_asn1.c rsa/rsa_blinding.c \
+ rsa/rsa_chk.c rsa/rsa_eay.c rsa/rsa_err.c rsa/rsa_gen.c \
+ rsa/rsa_lib.c rsa/rsa_meth.c rsa/rsa_none.c rsa/rsa_oaep.c \
+ rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c rsa/rsa_pss.c \
+ rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c sha/sha1.c \
+ sha/sha256.c sha/sha3.c sha/sha512.c sm3/sm3.c sm4/sm4.c \
+ stack/stack.c ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c \
ts/ts_lib.c ts/ts_req_print.c ts/ts_req_utils.c \
ts/ts_rsp_print.c ts/ts_rsp_sign.c ts/ts_rsp_utils.c \
ts/ts_rsp_verify.c ts/ts_verify_ctx.c txt_db/txt_db.c \
@@ -663,10 +653,9 @@ am_libcrypto_la_OBJECTS = $(am__objects_32) $(am__objects_34) \
asn1/libcrypto_la-a_strnid.lo asn1/libcrypto_la-a_time.lo \
asn1/libcrypto_la-a_time_posix.lo \
asn1/libcrypto_la-a_time_tm.lo asn1/libcrypto_la-a_type.lo \
- asn1/libcrypto_la-a_utf8.lo asn1/libcrypto_la-ameth_lib.lo \
- asn1/libcrypto_la-asn1_err.lo asn1/libcrypto_la-asn1_gen.lo \
- asn1/libcrypto_la-asn1_item.lo asn1/libcrypto_la-asn1_lib.lo \
- asn1/libcrypto_la-asn1_old.lo \
+ asn1/libcrypto_la-a_utf8.lo asn1/libcrypto_la-asn1_err.lo \
+ asn1/libcrypto_la-asn1_gen.lo asn1/libcrypto_la-asn1_item.lo \
+ asn1/libcrypto_la-asn1_lib.lo asn1/libcrypto_la-asn1_old.lo \
asn1/libcrypto_la-asn1_old_lib.lo \
asn1/libcrypto_la-asn1_par.lo asn1/libcrypto_la-asn1_types.lo \
asn1/libcrypto_la-asn_mime.lo asn1/libcrypto_la-asn_moid.lo \
@@ -752,84 +741,62 @@ am_libcrypto_la_OBJECTS = $(am__objects_32) $(am__objects_34) \
des/libcrypto_la-fcrypt_b.lo des/libcrypto_la-ofb64ede.lo \
des/libcrypto_la-ofb64enc.lo des/libcrypto_la-ofb_enc.lo \
des/libcrypto_la-pcbc_enc.lo des/libcrypto_la-qud_cksm.lo \
- des/libcrypto_la-rand_key.lo des/libcrypto_la-set_key.lo \
- des/libcrypto_la-str2key.lo des/libcrypto_la-xcbc_enc.lo \
- dh/libcrypto_la-dh_ameth.lo dh/libcrypto_la-dh_asn1.lo \
- dh/libcrypto_la-dh_check.lo dh/libcrypto_la-dh_err.lo \
- dh/libcrypto_la-dh_gen.lo dh/libcrypto_la-dh_key.lo \
- dh/libcrypto_la-dh_lib.lo dh/libcrypto_la-dh_pmeth.lo \
- dsa/libcrypto_la-dsa_ameth.lo dsa/libcrypto_la-dsa_asn1.lo \
- dsa/libcrypto_la-dsa_err.lo dsa/libcrypto_la-dsa_gen.lo \
- dsa/libcrypto_la-dsa_key.lo dsa/libcrypto_la-dsa_lib.lo \
- dsa/libcrypto_la-dsa_meth.lo dsa/libcrypto_la-dsa_ossl.lo \
- dsa/libcrypto_la-dsa_pmeth.lo dsa/libcrypto_la-dsa_prn.lo \
- ec/libcrypto_la-ec_ameth.lo ec/libcrypto_la-ec_asn1.lo \
- ec/libcrypto_la-ec_check.lo ec/libcrypto_la-ec_curve.lo \
- ec/libcrypto_la-ec_cvt.lo ec/libcrypto_la-ec_err.lo \
- ec/libcrypto_la-ec_key.lo ec/libcrypto_la-ec_kmeth.lo \
- ec/libcrypto_la-ec_lib.lo ec/libcrypto_la-ec_mult.lo \
- ec/libcrypto_la-ec_oct.lo ec/libcrypto_la-ec_pmeth.lo \
- ec/libcrypto_la-ec_print.lo ec/libcrypto_la-eck_prn.lo \
- ec/libcrypto_la-ecp_mont.lo ec/libcrypto_la-ecp_oct.lo \
- ec/libcrypto_la-ecp_smpl.lo ec/libcrypto_la-ecx_methods.lo \
- ecdh/libcrypto_la-ecdh.lo ecdsa/libcrypto_la-ecdsa.lo \
+ des/libcrypto_la-set_key.lo des/libcrypto_la-str2key.lo \
+ des/libcrypto_la-xcbc_enc.lo dh/libcrypto_la-dh_ameth.lo \
+ dh/libcrypto_la-dh_asn1.lo dh/libcrypto_la-dh_check.lo \
+ dh/libcrypto_la-dh_err.lo dh/libcrypto_la-dh_gen.lo \
+ dh/libcrypto_la-dh_key.lo dh/libcrypto_la-dh_lib.lo \
+ dh/libcrypto_la-dh_pmeth.lo dsa/libcrypto_la-dsa_ameth.lo \
+ dsa/libcrypto_la-dsa_asn1.lo dsa/libcrypto_la-dsa_err.lo \
+ dsa/libcrypto_la-dsa_gen.lo dsa/libcrypto_la-dsa_key.lo \
+ dsa/libcrypto_la-dsa_lib.lo dsa/libcrypto_la-dsa_meth.lo \
+ dsa/libcrypto_la-dsa_ossl.lo dsa/libcrypto_la-dsa_pmeth.lo \
+ dsa/libcrypto_la-dsa_prn.lo ec/libcrypto_la-ec_ameth.lo \
+ ec/libcrypto_la-ec_asn1.lo ec/libcrypto_la-ec_check.lo \
+ ec/libcrypto_la-ec_curve.lo ec/libcrypto_la-ec_cvt.lo \
+ ec/libcrypto_la-ec_err.lo ec/libcrypto_la-ec_key.lo \
+ ec/libcrypto_la-ec_kmeth.lo ec/libcrypto_la-ec_lib.lo \
+ ec/libcrypto_la-ec_mult.lo ec/libcrypto_la-ec_oct.lo \
+ ec/libcrypto_la-ec_pmeth.lo ec/libcrypto_la-ec_print.lo \
+ ec/libcrypto_la-eck_prn.lo ec/libcrypto_la-ecp_mont.lo \
+ ec/libcrypto_la-ecp_oct.lo ec/libcrypto_la-ecp_smpl.lo \
+ ec/libcrypto_la-ecx_methods.lo ecdh/libcrypto_la-ecdh.lo \
+ ecdsa/libcrypto_la-ecdsa.lo \
engine/libcrypto_la-engine_stubs.lo err/libcrypto_la-err.lo \
err/libcrypto_la-err_all.lo err/libcrypto_la-err_prn.lo \
evp/libcrypto_la-bio_b64.lo evp/libcrypto_la-bio_enc.lo \
- evp/libcrypto_la-bio_md.lo evp/libcrypto_la-c_all.lo \
- evp/libcrypto_la-cipher_method_lib.lo \
- evp/libcrypto_la-digest.lo evp/libcrypto_la-e_aes.lo \
- evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo \
+ evp/libcrypto_la-bio_md.lo evp/libcrypto_la-e_aes.lo \
evp/libcrypto_la-e_bf.lo evp/libcrypto_la-e_camellia.lo \
evp/libcrypto_la-e_cast.lo evp/libcrypto_la-e_chacha.lo \
evp/libcrypto_la-e_chacha20poly1305.lo \
evp/libcrypto_la-e_des.lo evp/libcrypto_la-e_des3.lo \
- evp/libcrypto_la-e_gost2814789.lo evp/libcrypto_la-e_idea.lo \
- evp/libcrypto_la-e_null.lo evp/libcrypto_la-e_rc2.lo \
- evp/libcrypto_la-e_rc4.lo evp/libcrypto_la-e_rc4_hmac_md5.lo \
+ evp/libcrypto_la-e_idea.lo evp/libcrypto_la-e_null.lo \
+ evp/libcrypto_la-e_rc2.lo evp/libcrypto_la-e_rc4.lo \
evp/libcrypto_la-e_sm4.lo evp/libcrypto_la-e_xcbc_d.lo \
- evp/libcrypto_la-encode.lo evp/libcrypto_la-evp_aead.lo \
- evp/libcrypto_la-evp_enc.lo evp/libcrypto_la-evp_err.lo \
- evp/libcrypto_la-evp_key.lo evp/libcrypto_la-evp_lib.lo \
- evp/libcrypto_la-evp_pbe.lo evp/libcrypto_la-evp_pkey.lo \
- evp/libcrypto_la-m_gost2814789.lo \
- evp/libcrypto_la-m_gostr341194.lo evp/libcrypto_la-m_md4.lo \
+ evp/libcrypto_la-evp_aead.lo evp/libcrypto_la-evp_cipher.lo \
+ evp/libcrypto_la-evp_digest.lo evp/libcrypto_la-evp_encode.lo \
+ evp/libcrypto_la-evp_err.lo evp/libcrypto_la-evp_key.lo \
+ evp/libcrypto_la-evp_names.lo evp/libcrypto_la-evp_pbe.lo \
+ evp/libcrypto_la-evp_pkey.lo evp/libcrypto_la-m_md4.lo \
evp/libcrypto_la-m_md5.lo evp/libcrypto_la-m_md5_sha1.lo \
evp/libcrypto_la-m_null.lo evp/libcrypto_la-m_ripemd.lo \
evp/libcrypto_la-m_sha1.lo evp/libcrypto_la-m_sha3.lo \
- evp/libcrypto_la-m_sigver.lo evp/libcrypto_la-m_streebog.lo \
- evp/libcrypto_la-m_sm3.lo evp/libcrypto_la-m_wp.lo \
- evp/libcrypto_la-names.lo evp/libcrypto_la-p5_crpt.lo \
- evp/libcrypto_la-p5_crpt2.lo evp/libcrypto_la-p_dec.lo \
- evp/libcrypto_la-p_enc.lo evp/libcrypto_la-p_lib.lo \
- evp/libcrypto_la-p_open.lo evp/libcrypto_la-p_seal.lo \
- evp/libcrypto_la-p_sign.lo evp/libcrypto_la-p_verify.lo \
- evp/libcrypto_la-pmeth_fn.lo evp/libcrypto_la-pmeth_gn.lo \
- evp/libcrypto_la-pmeth_lib.lo gost/libcrypto_la-gost2814789.lo \
- gost/libcrypto_la-gost89_keywrap.lo \
- gost/libcrypto_la-gost89_params.lo \
- gost/libcrypto_la-gost89imit_ameth.lo \
- gost/libcrypto_la-gost89imit_pmeth.lo \
- gost/libcrypto_la-gost_asn1.lo gost/libcrypto_la-gost_err.lo \
- gost/libcrypto_la-gostr341001.lo \
- gost/libcrypto_la-gostr341001_ameth.lo \
- gost/libcrypto_la-gostr341001_key.lo \
- gost/libcrypto_la-gostr341001_params.lo \
- gost/libcrypto_la-gostr341001_pmeth.lo \
- gost/libcrypto_la-gostr341194.lo gost/libcrypto_la-streebog.lo \
+ evp/libcrypto_la-m_sigver.lo evp/libcrypto_la-m_sm3.lo \
+ evp/libcrypto_la-m_wp.lo evp/libcrypto_la-p_legacy.lo \
+ evp/libcrypto_la-p_lib.lo evp/libcrypto_la-p_sign.lo \
+ evp/libcrypto_la-p_verify.lo evp/libcrypto_la-pmeth_fn.lo \
+ evp/libcrypto_la-pmeth_gn.lo evp/libcrypto_la-pmeth_lib.lo \
hkdf/libcrypto_la-hkdf.lo hmac/libcrypto_la-hm_ameth.lo \
hmac/libcrypto_la-hm_pmeth.lo hmac/libcrypto_la-hmac.lo \
idea/libcrypto_la-i_cbc.lo idea/libcrypto_la-i_cfb64.lo \
idea/libcrypto_la-i_ecb.lo idea/libcrypto_la-i_ofb64.lo \
idea/libcrypto_la-i_skey.lo kdf/libcrypto_la-hkdf_evp.lo \
- kdf/libcrypto_la-kdf_err.lo lhash/libcrypto_la-lh_stats.lo \
- lhash/libcrypto_la-lhash.lo md4/libcrypto_la-md4.lo \
- md5/libcrypto_la-md5.lo modes/libcrypto_la-cbc128.lo \
- modes/libcrypto_la-ccm128.lo modes/libcrypto_la-cfb128.lo \
- modes/libcrypto_la-ctr128.lo modes/libcrypto_la-gcm128.lo \
- modes/libcrypto_la-ofb128.lo modes/libcrypto_la-xts128.lo \
- objects/libcrypto_la-o_names.lo \
- objects/libcrypto_la-obj_dat.lo \
+ kdf/libcrypto_la-kdf_err.lo lhash/libcrypto_la-lhash.lo \
+ md4/libcrypto_la-md4.lo md5/libcrypto_la-md5.lo \
+ modes/libcrypto_la-cbc128.lo modes/libcrypto_la-ccm128.lo \
+ modes/libcrypto_la-cfb128.lo modes/libcrypto_la-ctr128.lo \
+ modes/libcrypto_la-gcm128.lo modes/libcrypto_la-ofb128.lo \
+ modes/libcrypto_la-xts128.lo objects/libcrypto_la-obj_dat.lo \
objects/libcrypto_la-obj_err.lo \
objects/libcrypto_la-obj_lib.lo \
objects/libcrypto_la-obj_xref.lo ocsp/libcrypto_la-ocsp_asn.lo \
@@ -844,8 +811,7 @@ am_libcrypto_la_OBJECTS = $(am__objects_32) $(am__objects_34) \
pem/libcrypto_la-pem_x509.lo pem/libcrypto_la-pem_xaux.lo \
pem/libcrypto_la-pvkfmt.lo pkcs12/libcrypto_la-p12_add.lo \
pkcs12/libcrypto_la-p12_asn.lo pkcs12/libcrypto_la-p12_attr.lo \
- pkcs12/libcrypto_la-p12_crpt.lo pkcs12/libcrypto_la-p12_crt.lo \
- pkcs12/libcrypto_la-p12_decr.lo \
+ pkcs12/libcrypto_la-p12_crt.lo pkcs12/libcrypto_la-p12_decr.lo \
pkcs12/libcrypto_la-p12_init.lo pkcs12/libcrypto_la-p12_key.lo \
pkcs12/libcrypto_la-p12_kiss.lo \
pkcs12/libcrypto_la-p12_mutl.lo \
@@ -1000,7 +966,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
asn1/$(DEPDIR)/libcrypto_la-a_time_tm.Plo \
asn1/$(DEPDIR)/libcrypto_la-a_type.Plo \
asn1/$(DEPDIR)/libcrypto_la-a_utf8.Plo \
- asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Plo \
asn1/$(DEPDIR)/libcrypto_la-asn1_err.Plo \
asn1/$(DEPDIR)/libcrypto_la-asn1_gen.Plo \
asn1/$(DEPDIR)/libcrypto_la-asn1_item.Plo \
@@ -1225,7 +1190,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
des/$(DEPDIR)/libcrypto_la-ofb_enc.Plo \
des/$(DEPDIR)/libcrypto_la-pcbc_enc.Plo \
des/$(DEPDIR)/libcrypto_la-qud_cksm.Plo \
- des/$(DEPDIR)/libcrypto_la-rand_key.Plo \
des/$(DEPDIR)/libcrypto_la-set_key.Plo \
des/$(DEPDIR)/libcrypto_la-str2key.Plo \
des/$(DEPDIR)/libcrypto_la-xcbc_enc.Plo \
@@ -1274,11 +1238,7 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
evp/$(DEPDIR)/libcrypto_la-bio_b64.Plo \
evp/$(DEPDIR)/libcrypto_la-bio_enc.Plo \
evp/$(DEPDIR)/libcrypto_la-bio_md.Plo \
- evp/$(DEPDIR)/libcrypto_la-c_all.Plo \
- evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Plo \
- evp/$(DEPDIR)/libcrypto_la-digest.Plo \
evp/$(DEPDIR)/libcrypto_la-e_aes.Plo \
- evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Plo \
evp/$(DEPDIR)/libcrypto_la-e_bf.Plo \
evp/$(DEPDIR)/libcrypto_la-e_camellia.Plo \
evp/$(DEPDIR)/libcrypto_la-e_cast.Plo \
@@ -1286,24 +1246,21 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
evp/$(DEPDIR)/libcrypto_la-e_chacha20poly1305.Plo \
evp/$(DEPDIR)/libcrypto_la-e_des.Plo \
evp/$(DEPDIR)/libcrypto_la-e_des3.Plo \
- evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Plo \
evp/$(DEPDIR)/libcrypto_la-e_idea.Plo \
evp/$(DEPDIR)/libcrypto_la-e_null.Plo \
evp/$(DEPDIR)/libcrypto_la-e_rc2.Plo \
evp/$(DEPDIR)/libcrypto_la-e_rc4.Plo \
- evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Plo \
evp/$(DEPDIR)/libcrypto_la-e_sm4.Plo \
evp/$(DEPDIR)/libcrypto_la-e_xcbc_d.Plo \
- evp/$(DEPDIR)/libcrypto_la-encode.Plo \
evp/$(DEPDIR)/libcrypto_la-evp_aead.Plo \
- evp/$(DEPDIR)/libcrypto_la-evp_enc.Plo \
+ evp/$(DEPDIR)/libcrypto_la-evp_cipher.Plo \
+ evp/$(DEPDIR)/libcrypto_la-evp_digest.Plo \
+ evp/$(DEPDIR)/libcrypto_la-evp_encode.Plo \
evp/$(DEPDIR)/libcrypto_la-evp_err.Plo \
evp/$(DEPDIR)/libcrypto_la-evp_key.Plo \
- evp/$(DEPDIR)/libcrypto_la-evp_lib.Plo \
+ evp/$(DEPDIR)/libcrypto_la-evp_names.Plo \
evp/$(DEPDIR)/libcrypto_la-evp_pbe.Plo \
evp/$(DEPDIR)/libcrypto_la-evp_pkey.Plo \
- evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Plo \
- evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Plo \
evp/$(DEPDIR)/libcrypto_la-m_md4.Plo \
evp/$(DEPDIR)/libcrypto_la-m_md5.Plo \
evp/$(DEPDIR)/libcrypto_la-m_md5_sha1.Plo \
@@ -1313,35 +1270,14 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
evp/$(DEPDIR)/libcrypto_la-m_sha3.Plo \
evp/$(DEPDIR)/libcrypto_la-m_sigver.Plo \
evp/$(DEPDIR)/libcrypto_la-m_sm3.Plo \
- evp/$(DEPDIR)/libcrypto_la-m_streebog.Plo \
evp/$(DEPDIR)/libcrypto_la-m_wp.Plo \
- evp/$(DEPDIR)/libcrypto_la-names.Plo \
- evp/$(DEPDIR)/libcrypto_la-p5_crpt.Plo \
- evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Plo \
- evp/$(DEPDIR)/libcrypto_la-p_dec.Plo \
- evp/$(DEPDIR)/libcrypto_la-p_enc.Plo \
+ evp/$(DEPDIR)/libcrypto_la-p_legacy.Plo \
evp/$(DEPDIR)/libcrypto_la-p_lib.Plo \
- evp/$(DEPDIR)/libcrypto_la-p_open.Plo \
- evp/$(DEPDIR)/libcrypto_la-p_seal.Plo \
evp/$(DEPDIR)/libcrypto_la-p_sign.Plo \
evp/$(DEPDIR)/libcrypto_la-p_verify.Plo \
evp/$(DEPDIR)/libcrypto_la-pmeth_fn.Plo \
evp/$(DEPDIR)/libcrypto_la-pmeth_gn.Plo \
evp/$(DEPDIR)/libcrypto_la-pmeth_lib.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost2814789.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost89_params.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost_asn1.Plo \
- gost/$(DEPDIR)/libcrypto_la-gost_err.Plo \
- gost/$(DEPDIR)/libcrypto_la-gostr341001.Plo \
- gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Plo \
- gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Plo \
- gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Plo \
- gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Plo \
- gost/$(DEPDIR)/libcrypto_la-gostr341194.Plo \
- gost/$(DEPDIR)/libcrypto_la-streebog.Plo \
hkdf/$(DEPDIR)/libcrypto_la-hkdf.Plo \
hmac/$(DEPDIR)/libcrypto_la-hm_ameth.Plo \
hmac/$(DEPDIR)/libcrypto_la-hm_pmeth.Plo \
@@ -1353,7 +1289,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
idea/$(DEPDIR)/libcrypto_la-i_skey.Plo \
kdf/$(DEPDIR)/libcrypto_la-hkdf_evp.Plo \
kdf/$(DEPDIR)/libcrypto_la-kdf_err.Plo \
- lhash/$(DEPDIR)/libcrypto_la-lh_stats.Plo \
lhash/$(DEPDIR)/libcrypto_la-lhash.Plo \
md4/$(DEPDIR)/libcrypto_la-md4.Plo \
md5/$(DEPDIR)/libcrypto_la-md5-elf-x86_64.Plo \
@@ -1373,7 +1308,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
modes/$(DEPDIR)/libcrypto_la-ghash-mingw64-x86_64.Plo \
modes/$(DEPDIR)/libcrypto_la-ofb128.Plo \
modes/$(DEPDIR)/libcrypto_la-xts128.Plo \
- objects/$(DEPDIR)/libcrypto_la-o_names.Plo \
objects/$(DEPDIR)/libcrypto_la-obj_dat.Plo \
objects/$(DEPDIR)/libcrypto_la-obj_err.Plo \
objects/$(DEPDIR)/libcrypto_la-obj_lib.Plo \
@@ -1401,7 +1335,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcrypto_la-armcap.Plo \
pkcs12/$(DEPDIR)/libcrypto_la-p12_add.Plo \
pkcs12/$(DEPDIR)/libcrypto_la-p12_asn.Plo \
pkcs12/$(DEPDIR)/libcrypto_la-p12_attr.Plo \
- pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Plo \
pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Plo \
pkcs12/$(DEPDIR)/libcrypto_la-p12_decr.Plo \
pkcs12/$(DEPDIR)/libcrypto_la-p12_init.Plo \
@@ -1766,9 +1699,10 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(abs_top_builddir)/include \
-I$(top_srcdir)/crypto/dsa -I$(top_srcdir)/crypto/ec \
-I$(top_srcdir)/crypto/ecdh -I$(top_srcdir)/crypto/ecdsa \
-I$(top_srcdir)/crypto/evp -I$(top_srcdir)/crypto/hmac \
- -I$(top_srcdir)/crypto/modes -I$(top_srcdir)/crypto/ocsp \
- -I$(top_srcdir)/crypto/pkcs12 -I$(top_srcdir)/crypto/rsa \
- -I$(top_srcdir)/crypto/sha -I$(top_srcdir)/crypto/x509 \
+ -I$(top_srcdir)/crypto/lhash -I$(top_srcdir)/crypto/modes \
+ -I$(top_srcdir)/crypto/ocsp -I$(top_srcdir)/crypto/pkcs12 \
+ -I$(top_srcdir)/crypto/rsa -I$(top_srcdir)/crypto/sha \
+ -I$(top_srcdir)/crypto/stack -I$(top_srcdir)/crypto/x509 \
-I$(top_srcdir)/crypto
noinst_LTLIBRARIES = libcompat.la $(am__append_1) $(am__append_5)
@ENABLE_LIBTLS_ONLY_FALSE@lib_LTLIBRARIES = libcrypto.la
@@ -1818,22 +1752,21 @@ noinst_HEADERS = compat/arc4random.h compat/arc4random_aix.h \
compat/arc4random_linux.h compat/arc4random_netbsd.h \
compat/arc4random_osx.h compat/arc4random_solaris.h \
compat/arc4random_win.h compat/chacha_private.h arm_arch.h \
- constant_time.h cryptlib.h crypto_internal.h md32_common.h \
- x86_arch.h aes/aes_local.h asn1/asn1_local.h asn1/charmap.h \
- bf/bf_local.h bio/bio_local.h bn/bn_internal.h bn/bn_local.h \
- bn/bn_prime.h bn/s2n_bignum.h bn/s2n_bignum_internal.h \
- bn/arch/aarch64/bn_arch.h bn/arch/arm/bn_arch.h \
- bn/arch/i386/bn_arch.h bn/arch/mips/bn_arch.h \
- bn/arch/mips64/bn_arch.h bn/arch/powerpc/bn_arch.h \
- bn/arch/powerpc64/bn_arch.h bn/arch/riscv64/bn_arch.h \
- bn/arch/sparc64/bn_arch.h bn/arch/amd64/bn_arch.h \
- bytestring/bytestring.h camellia/camellia.h \
- camellia/cmll_local.h cast/cast_local.h cast/cast_s.h \
- cms/cms_local.h conf/conf_def.h ct/ct_local.h \
+ constant_time.h cryptlib.h crypto_internal.h crypto_local.h \
+ md32_common.h x86_arch.h aes/aes_local.h asn1/asn1_local.h \
+ asn1/charmap.h bf/bf_local.h bio/bio_local.h bn/bn_internal.h \
+ bn/bn_local.h bn/bn_prime.h bn/s2n_bignum.h \
+ bn/s2n_bignum_internal.h bn/arch/aarch64/bn_arch.h \
+ bn/arch/arm/bn_arch.h bn/arch/i386/bn_arch.h \
+ bn/arch/mips/bn_arch.h bn/arch/mips64/bn_arch.h \
+ bn/arch/powerpc/bn_arch.h bn/arch/powerpc64/bn_arch.h \
+ bn/arch/riscv64/bn_arch.h bn/arch/sparc64/bn_arch.h \
+ bn/arch/amd64/bn_arch.h bytestring/bytestring.h \
+ camellia/camellia.h camellia/cmll_local.h cast/cast_local.h \
+ cast/cast_s.h cms/cms_local.h conf/conf_def.h ct/ct_local.h \
curve25519/curve25519_internal.h des/des_local.h des/spr.h \
dh/dh_local.h dsa/dsa_local.h ec/ec_local.h \
- ecdsa/ecdsa_local.h evp/evp_local.h gost/gost_asn1.h \
- gost/gost_local.h hidden/crypto_namespace.h \
+ ecdsa/ecdsa_local.h evp/evp_local.h hidden/crypto_namespace.h \
hidden/openssl/asn1.h hidden/openssl/asn1t.h \
hidden/openssl/bio.h hidden/openssl/bn.h \
hidden/openssl/buffer.h hidden/openssl/cast.h \
@@ -1842,24 +1775,25 @@ noinst_HEADERS = compat/arc4random.h compat/arc4random_aix.h \
hidden/openssl/crypto.h hidden/openssl/ct.h \
hidden/openssl/curve25519.h hidden/openssl/dh.h \
hidden/openssl/dsa.h hidden/openssl/ec.h hidden/openssl/err.h \
- hidden/openssl/gost.h hidden/openssl/hkdf.h \
- hidden/openssl/hmac.h hidden/openssl/idea.h \
- hidden/openssl/lhash.h hidden/openssl/md4.h \
- hidden/openssl/md5.h hidden/openssl/modes.h \
- hidden/openssl/objects.h hidden/openssl/ocsp.h \
- hidden/openssl/pem.h hidden/openssl/pkcs12.h \
- hidden/openssl/pkcs7.h hidden/openssl/poly1305.h \
+ hidden/openssl/hkdf.h hidden/openssl/hmac.h \
+ hidden/openssl/idea.h hidden/openssl/lhash.h \
+ hidden/openssl/md4.h hidden/openssl/md5.h \
+ hidden/openssl/modes.h hidden/openssl/objects.h \
+ hidden/openssl/ocsp.h hidden/openssl/pem.h \
+ hidden/openssl/pkcs12.h hidden/openssl/pkcs7.h \
+ hidden/openssl/poly1305.h hidden/openssl/posix_time.h \
hidden/openssl/rand.h hidden/openssl/rc2.h \
hidden/openssl/rsa.h hidden/openssl/sha.h hidden/openssl/sm3.h \
hidden/openssl/sm4.h hidden/openssl/stack.h \
hidden/openssl/ts.h hidden/openssl/txt_db.h \
hidden/openssl/ui.h hidden/openssl/x509.h \
hidden/openssl/x509_vfy.h hidden/openssl/x509v3.h \
- hmac/hmac_local.h idea/idea_local.h modes/modes_local.h \
- objects/obj_dat.h ocsp/ocsp_local.h pkcs12/pkcs12_local.h \
- rc2/rc2_local.h rc4/rc4_local.h rsa/rsa_local.h \
- sha/sha_internal.h sha/sha3_internal.h ts/ts_local.h \
- ui/ui_local.h whrlpool/wp_local.h x509/x509_internal.h \
+ hmac/hmac_local.h idea/idea_local.h lhash/lhash_local.h \
+ modes/modes_local.h objects/obj_dat.h ocsp/ocsp_local.h \
+ pkcs12/pkcs12_local.h rc2/rc2_local.h rc4/rc4_local.h \
+ rsa/rsa_local.h sha/sha_internal.h sha/sha3_internal.h \
+ stack/stack_local.h ts/ts_local.h ui/ui_local.h \
+ whrlpool/wp_local.h x509/x509_internal.h \
x509/x509_issuer_cache.h x509/x509_local.h x509/x509_verify.h
# aes
@@ -1908,8 +1842,6 @@ noinst_HEADERS = compat/arc4random.h compat/arc4random_aix.h \
# evp
-# gost
-
# hkdf
# hmac
@@ -1972,89 +1904,77 @@ libcrypto_la_SOURCES = $(am__append_37) $(am__append_39) \
asn1/a_object.c asn1/a_octet.c asn1/a_pkey.c asn1/a_print.c \
asn1/a_pubkey.c asn1/a_strex.c asn1/a_string.c asn1/a_strnid.c \
asn1/a_time.c asn1/a_time_posix.c asn1/a_time_tm.c \
- asn1/a_type.c asn1/a_utf8.c asn1/ameth_lib.c asn1/asn1_err.c \
- asn1/asn1_gen.c asn1/asn1_item.c asn1/asn1_lib.c \
- asn1/asn1_old.c asn1/asn1_old_lib.c asn1/asn1_par.c \
- asn1/asn1_types.c asn1/asn_mime.c asn1/asn_moid.c \
- asn1/bio_asn1.c asn1/bio_ndef.c asn1/p5_pbe.c asn1/p5_pbev2.c \
- asn1/p8_pkey.c asn1/t_crl.c asn1/t_req.c asn1/t_spki.c \
- asn1/t_x509.c asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c \
- asn1/tasn_fre.c asn1/tasn_new.c asn1/tasn_prn.c \
- asn1/tasn_typ.c asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c \
- asn1/x_bignum.c asn1/x_crl.c asn1/x_exten.c asn1/x_info.c \
- asn1/x_long.c asn1/x_name.c asn1/x_pkey.c asn1/x_pubkey.c \
- asn1/x_req.c asn1/x_sig.c asn1/x_spki.c asn1/x_val.c \
- asn1/x_x509.c asn1/x_x509a.c bf/bf_cfb64.c bf/bf_ecb.c \
- bf/bf_enc.c bf/bf_ofb64.c bf/bf_skey.c bio/b_dump.c \
- $(am__append_54) bio/b_print.c bio/b_sock.c $(am__append_55) \
- bio/bf_buff.c bio/bf_nbio.c bio/bf_null.c bio/bio_cb.c \
- bio/bio_err.c bio/bio_lib.c bio/bio_meth.c bio/bss_acpt.c \
- bio/bss_bio.c bio/bss_conn.c bio/bss_dgram.c bio/bss_fd.c \
- bio/bss_file.c $(am__append_56) bio/bss_mem.c bio/bss_null.c \
- bio/bss_sock.c bn/bn_add.c bn/bn_bpsw.c bn/bn_const.c \
- bn/bn_convert.c bn/bn_ctx.c bn/bn_div.c bn/bn_err.c \
- bn/bn_exp.c bn/bn_gcd.c bn/bn_isqrt.c bn/bn_kron.c bn/bn_lib.c \
- bn/bn_mod.c bn/bn_mod_sqrt.c bn/bn_mont.c bn/bn_mul.c \
- bn/bn_prime.c bn/bn_primitives.c bn/bn_print.c bn/bn_rand.c \
- bn/bn_recp.c bn/bn_shift.c bn/bn_small_primes.c bn/bn_sqr.c \
- bn/bn_word.c buffer/buf_err.c buffer/buffer.c \
- bytestring/bs_ber.c bytestring/bs_cbb.c bytestring/bs_cbs.c \
- camellia/cmll_cfb.c camellia/cmll_ctr.c camellia/cmll_ecb.c \
- camellia/cmll_misc.c camellia/cmll_ofb.c cast/c_cfb64.c \
- cast/c_ecb.c cast/c_enc.c cast/c_ofb64.c cast/c_skey.c \
- chacha/chacha.c cmac/cm_ameth.c cmac/cm_pmeth.c cmac/cmac.c \
- cms/cms_asn1.c cms/cms_att.c cms/cms_dd.c cms/cms_enc.c \
- cms/cms_env.c cms/cms_err.c cms/cms_ess.c cms/cms_io.c \
- cms/cms_kari.c cms/cms_lib.c cms/cms_pwri.c cms/cms_sd.c \
- cms/cms_smime.c conf/conf_api.c conf/conf_def.c \
- conf/conf_err.c conf/conf_lib.c conf/conf_mall.c \
- conf/conf_mod.c conf/conf_sap.c ct/ct_b64.c ct/ct_err.c \
- ct/ct_log.c ct/ct_oct.c ct/ct_policy.c ct/ct_prn.c ct/ct_sct.c \
- ct/ct_sct_ctx.c ct/ct_vfy.c ct/ct_x509v3.c \
+ asn1/a_type.c asn1/a_utf8.c asn1/asn1_err.c asn1/asn1_gen.c \
+ asn1/asn1_item.c asn1/asn1_lib.c asn1/asn1_old.c \
+ asn1/asn1_old_lib.c asn1/asn1_par.c asn1/asn1_types.c \
+ asn1/asn_mime.c asn1/asn_moid.c asn1/bio_asn1.c \
+ asn1/bio_ndef.c asn1/p5_pbe.c asn1/p5_pbev2.c asn1/p8_pkey.c \
+ asn1/t_crl.c asn1/t_req.c asn1/t_spki.c asn1/t_x509.c \
+ asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c asn1/tasn_fre.c \
+ asn1/tasn_new.c asn1/tasn_prn.c asn1/tasn_typ.c \
+ asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c asn1/x_bignum.c \
+ asn1/x_crl.c asn1/x_exten.c asn1/x_info.c asn1/x_long.c \
+ asn1/x_name.c asn1/x_pkey.c asn1/x_pubkey.c asn1/x_req.c \
+ asn1/x_sig.c asn1/x_spki.c asn1/x_val.c asn1/x_x509.c \
+ asn1/x_x509a.c bf/bf_cfb64.c bf/bf_ecb.c bf/bf_enc.c \
+ bf/bf_ofb64.c bf/bf_skey.c bio/b_dump.c $(am__append_54) \
+ bio/b_print.c bio/b_sock.c $(am__append_55) bio/bf_buff.c \
+ bio/bf_nbio.c bio/bf_null.c bio/bio_cb.c bio/bio_err.c \
+ bio/bio_lib.c bio/bio_meth.c bio/bss_acpt.c bio/bss_bio.c \
+ bio/bss_conn.c bio/bss_dgram.c bio/bss_fd.c bio/bss_file.c \
+ $(am__append_56) bio/bss_mem.c bio/bss_null.c bio/bss_sock.c \
+ bn/bn_add.c bn/bn_bpsw.c bn/bn_const.c bn/bn_convert.c \
+ bn/bn_ctx.c bn/bn_div.c bn/bn_err.c bn/bn_exp.c bn/bn_gcd.c \
+ bn/bn_isqrt.c bn/bn_kron.c bn/bn_lib.c bn/bn_mod.c \
+ bn/bn_mod_sqrt.c bn/bn_mont.c bn/bn_mul.c bn/bn_prime.c \
+ bn/bn_primitives.c bn/bn_print.c bn/bn_rand.c bn/bn_recp.c \
+ bn/bn_shift.c bn/bn_small_primes.c bn/bn_sqr.c bn/bn_word.c \
+ buffer/buf_err.c buffer/buffer.c bytestring/bs_ber.c \
+ bytestring/bs_cbb.c bytestring/bs_cbs.c camellia/cmll_cfb.c \
+ camellia/cmll_ctr.c camellia/cmll_ecb.c camellia/cmll_misc.c \
+ camellia/cmll_ofb.c cast/c_cfb64.c cast/c_ecb.c cast/c_enc.c \
+ cast/c_ofb64.c cast/c_skey.c chacha/chacha.c cmac/cm_ameth.c \
+ cmac/cm_pmeth.c cmac/cmac.c cms/cms_asn1.c cms/cms_att.c \
+ cms/cms_dd.c cms/cms_enc.c cms/cms_env.c cms/cms_err.c \
+ cms/cms_ess.c cms/cms_io.c cms/cms_kari.c cms/cms_lib.c \
+ cms/cms_pwri.c cms/cms_sd.c cms/cms_smime.c conf/conf_api.c \
+ conf/conf_def.c conf/conf_err.c conf/conf_lib.c \
+ conf/conf_mall.c conf/conf_mod.c conf/conf_sap.c ct/ct_b64.c \
+ ct/ct_err.c ct/ct_log.c ct/ct_oct.c ct/ct_policy.c ct/ct_prn.c \
+ ct/ct_sct.c ct/ct_sct_ctx.c ct/ct_vfy.c ct/ct_x509v3.c \
curve25519/curve25519-generic.c curve25519/curve25519.c \
des/cbc_cksm.c des/cbc_enc.c des/cfb64ede.c des/cfb64enc.c \
des/cfb_enc.c des/des_enc.c des/ecb3_enc.c des/ecb_enc.c \
des/ede_cbcm_enc.c des/enc_read.c des/enc_writ.c des/fcrypt.c \
des/fcrypt_b.c des/ofb64ede.c des/ofb64enc.c des/ofb_enc.c \
- des/pcbc_enc.c des/qud_cksm.c des/rand_key.c des/set_key.c \
- des/str2key.c des/xcbc_enc.c dh/dh_ameth.c dh/dh_asn1.c \
- dh/dh_check.c dh/dh_err.c dh/dh_gen.c dh/dh_key.c dh/dh_lib.c \
- dh/dh_pmeth.c dsa/dsa_ameth.c dsa/dsa_asn1.c dsa/dsa_err.c \
- dsa/dsa_gen.c dsa/dsa_key.c dsa/dsa_lib.c dsa/dsa_meth.c \
- dsa/dsa_ossl.c dsa/dsa_pmeth.c dsa/dsa_prn.c ec/ec_ameth.c \
- ec/ec_asn1.c ec/ec_check.c ec/ec_curve.c ec/ec_cvt.c \
- ec/ec_err.c ec/ec_key.c ec/ec_kmeth.c ec/ec_lib.c ec/ec_mult.c \
- ec/ec_oct.c ec/ec_pmeth.c ec/ec_print.c ec/eck_prn.c \
- ec/ecp_mont.c ec/ecp_oct.c ec/ecp_smpl.c ec/ecx_methods.c \
- ecdh/ecdh.c ecdsa/ecdsa.c engine/engine_stubs.c err/err.c \
- err/err_all.c err/err_prn.c evp/bio_b64.c evp/bio_enc.c \
- evp/bio_md.c evp/c_all.c evp/cipher_method_lib.c evp/digest.c \
- evp/e_aes.c evp/e_aes_cbc_hmac_sha1.c evp/e_bf.c \
- evp/e_camellia.c evp/e_cast.c evp/e_chacha.c \
- evp/e_chacha20poly1305.c evp/e_des.c evp/e_des3.c \
- evp/e_gost2814789.c evp/e_idea.c evp/e_null.c evp/e_rc2.c \
- evp/e_rc4.c evp/e_rc4_hmac_md5.c evp/e_sm4.c evp/e_xcbc_d.c \
- evp/encode.c evp/evp_aead.c evp/evp_enc.c evp/evp_err.c \
- evp/evp_key.c evp/evp_lib.c evp/evp_pbe.c evp/evp_pkey.c \
- evp/m_gost2814789.c evp/m_gostr341194.c evp/m_md4.c \
+ des/pcbc_enc.c des/qud_cksm.c des/set_key.c des/str2key.c \
+ des/xcbc_enc.c dh/dh_ameth.c dh/dh_asn1.c dh/dh_check.c \
+ dh/dh_err.c dh/dh_gen.c dh/dh_key.c dh/dh_lib.c dh/dh_pmeth.c \
+ dsa/dsa_ameth.c dsa/dsa_asn1.c dsa/dsa_err.c dsa/dsa_gen.c \
+ dsa/dsa_key.c dsa/dsa_lib.c dsa/dsa_meth.c dsa/dsa_ossl.c \
+ dsa/dsa_pmeth.c dsa/dsa_prn.c ec/ec_ameth.c ec/ec_asn1.c \
+ ec/ec_check.c ec/ec_curve.c ec/ec_cvt.c ec/ec_err.c \
+ ec/ec_key.c ec/ec_kmeth.c ec/ec_lib.c ec/ec_mult.c ec/ec_oct.c \
+ ec/ec_pmeth.c ec/ec_print.c ec/eck_prn.c ec/ecp_mont.c \
+ ec/ecp_oct.c ec/ecp_smpl.c ec/ecx_methods.c ecdh/ecdh.c \
+ ecdsa/ecdsa.c engine/engine_stubs.c err/err.c err/err_all.c \
+ err/err_prn.c evp/bio_b64.c evp/bio_enc.c evp/bio_md.c \
+ evp/e_aes.c evp/e_bf.c evp/e_camellia.c evp/e_cast.c \
+ evp/e_chacha.c evp/e_chacha20poly1305.c evp/e_des.c \
+ evp/e_des3.c evp/e_idea.c evp/e_null.c evp/e_rc2.c evp/e_rc4.c \
+ evp/e_sm4.c evp/e_xcbc_d.c evp/evp_aead.c evp/evp_cipher.c \
+ evp/evp_digest.c evp/evp_encode.c evp/evp_err.c evp/evp_key.c \
+ evp/evp_names.c evp/evp_pbe.c evp/evp_pkey.c evp/m_md4.c \
evp/m_md5.c evp/m_md5_sha1.c evp/m_null.c evp/m_ripemd.c \
- evp/m_sha1.c evp/m_sha3.c evp/m_sigver.c evp/m_streebog.c \
- evp/m_sm3.c evp/m_wp.c evp/names.c evp/p5_crpt.c \
- evp/p5_crpt2.c evp/p_dec.c evp/p_enc.c evp/p_lib.c \
- evp/p_open.c evp/p_seal.c evp/p_sign.c evp/p_verify.c \
- evp/pmeth_fn.c evp/pmeth_gn.c evp/pmeth_lib.c \
- gost/gost2814789.c gost/gost89_keywrap.c gost/gost89_params.c \
- gost/gost89imit_ameth.c gost/gost89imit_pmeth.c \
- gost/gost_asn1.c gost/gost_err.c gost/gostr341001.c \
- gost/gostr341001_ameth.c gost/gostr341001_key.c \
- gost/gostr341001_params.c gost/gostr341001_pmeth.c \
- gost/gostr341194.c gost/streebog.c hkdf/hkdf.c hmac/hm_ameth.c \
- hmac/hm_pmeth.c hmac/hmac.c idea/i_cbc.c idea/i_cfb64.c \
- idea/i_ecb.c idea/i_ofb64.c idea/i_skey.c kdf/hkdf_evp.c \
- kdf/kdf_err.c lhash/lh_stats.c lhash/lhash.c md4/md4.c \
- md5/md5.c modes/cbc128.c modes/ccm128.c modes/cfb128.c \
- modes/ctr128.c modes/gcm128.c modes/ofb128.c modes/xts128.c \
- objects/o_names.c objects/obj_dat.c objects/obj_err.c \
+ evp/m_sha1.c evp/m_sha3.c evp/m_sigver.c evp/m_sm3.c \
+ evp/m_wp.c evp/p_legacy.c evp/p_lib.c evp/p_sign.c \
+ evp/p_verify.c evp/pmeth_fn.c evp/pmeth_gn.c evp/pmeth_lib.c \
+ hkdf/hkdf.c hmac/hm_ameth.c hmac/hm_pmeth.c hmac/hmac.c \
+ idea/i_cbc.c idea/i_cfb64.c idea/i_ecb.c idea/i_ofb64.c \
+ idea/i_skey.c kdf/hkdf_evp.c kdf/kdf_err.c lhash/lhash.c \
+ md4/md4.c md5/md5.c modes/cbc128.c modes/ccm128.c \
+ modes/cfb128.c modes/ctr128.c modes/gcm128.c modes/ofb128.c \
+ modes/xts128.c objects/obj_dat.c objects/obj_err.c \
objects/obj_lib.c objects/obj_xref.c ocsp/ocsp_asn.c \
ocsp/ocsp_cl.c ocsp/ocsp_err.c ocsp/ocsp_ext.c ocsp/ocsp_ht.c \
ocsp/ocsp_lib.c ocsp/ocsp_prn.c ocsp/ocsp_srv.c \
@@ -2062,22 +1982,22 @@ libcrypto_la_SOURCES = $(am__append_37) $(am__append_39) \
pem/pem_lib.c pem/pem_oth.c pem/pem_pk8.c pem/pem_pkey.c \
pem/pem_sign.c pem/pem_x509.c pem/pem_xaux.c pem/pvkfmt.c \
pkcs12/p12_add.c pkcs12/p12_asn.c pkcs12/p12_attr.c \
- pkcs12/p12_crpt.c pkcs12/p12_crt.c pkcs12/p12_decr.c \
- pkcs12/p12_init.c pkcs12/p12_key.c pkcs12/p12_kiss.c \
- pkcs12/p12_mutl.c pkcs12/p12_npas.c pkcs12/p12_p8d.c \
- pkcs12/p12_p8e.c pkcs12/p12_sbag.c pkcs12/p12_utl.c \
- pkcs12/pk12err.c pkcs7/pk7_asn1.c pkcs7/pk7_attr.c \
- pkcs7/pk7_doit.c pkcs7/pk7_lib.c pkcs7/pk7_mime.c \
- pkcs7/pk7_smime.c pkcs7/pkcs7err.c poly1305/poly1305.c \
- rand/rand_err.c rand/rand_lib.c rand/randfile.c rc2/rc2_cbc.c \
- rc2/rc2_ecb.c rc2/rc2_skey.c rc2/rc2cfb64.c rc2/rc2ofb64.c \
- ripemd/ripemd.c rsa/rsa_ameth.c rsa/rsa_asn1.c \
- rsa/rsa_blinding.c rsa/rsa_chk.c rsa/rsa_eay.c rsa/rsa_err.c \
- rsa/rsa_gen.c rsa/rsa_lib.c rsa/rsa_meth.c rsa/rsa_none.c \
- rsa/rsa_oaep.c rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c \
- rsa/rsa_pss.c rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c \
- sha/sha1.c sha/sha256.c sha/sha3.c sha/sha512.c sm3/sm3.c \
- sm4/sm4.c stack/stack.c ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c \
+ pkcs12/p12_crt.c pkcs12/p12_decr.c pkcs12/p12_init.c \
+ pkcs12/p12_key.c pkcs12/p12_kiss.c pkcs12/p12_mutl.c \
+ pkcs12/p12_npas.c pkcs12/p12_p8d.c pkcs12/p12_p8e.c \
+ pkcs12/p12_sbag.c pkcs12/p12_utl.c pkcs12/pk12err.c \
+ pkcs7/pk7_asn1.c pkcs7/pk7_attr.c pkcs7/pk7_doit.c \
+ pkcs7/pk7_lib.c pkcs7/pk7_mime.c pkcs7/pk7_smime.c \
+ pkcs7/pkcs7err.c poly1305/poly1305.c rand/rand_err.c \
+ rand/rand_lib.c rand/randfile.c rc2/rc2_cbc.c rc2/rc2_ecb.c \
+ rc2/rc2_skey.c rc2/rc2cfb64.c rc2/rc2ofb64.c ripemd/ripemd.c \
+ rsa/rsa_ameth.c rsa/rsa_asn1.c rsa/rsa_blinding.c \
+ rsa/rsa_chk.c rsa/rsa_eay.c rsa/rsa_err.c rsa/rsa_gen.c \
+ rsa/rsa_lib.c rsa/rsa_meth.c rsa/rsa_none.c rsa/rsa_oaep.c \
+ rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c rsa/rsa_pss.c \
+ rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c sha/sha1.c \
+ sha/sha256.c sha/sha3.c sha/sha512.c sm3/sm3.c sm4/sm4.c \
+ stack/stack.c ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c \
ts/ts_lib.c ts/ts_req_print.c ts/ts_req_utils.c \
ts/ts_rsp_print.c ts/ts_rsp_sign.c ts/ts_rsp_utils.c \
ts/ts_rsp_verify.c ts/ts_verify_ctx.c txt_db/txt_db.c \
@@ -2636,8 +2556,6 @@ asn1/libcrypto_la-a_type.lo: asn1/$(am__dirstamp) \
asn1/$(DEPDIR)/$(am__dirstamp)
asn1/libcrypto_la-a_utf8.lo: asn1/$(am__dirstamp) \
asn1/$(DEPDIR)/$(am__dirstamp)
-asn1/libcrypto_la-ameth_lib.lo: asn1/$(am__dirstamp) \
- asn1/$(DEPDIR)/$(am__dirstamp)
asn1/libcrypto_la-asn1_err.lo: asn1/$(am__dirstamp) \
asn1/$(DEPDIR)/$(am__dirstamp)
asn1/libcrypto_la-asn1_gen.lo: asn1/$(am__dirstamp) \
@@ -3039,8 +2957,6 @@ des/libcrypto_la-pcbc_enc.lo: des/$(am__dirstamp) \
des/$(DEPDIR)/$(am__dirstamp)
des/libcrypto_la-qud_cksm.lo: des/$(am__dirstamp) \
des/$(DEPDIR)/$(am__dirstamp)
-des/libcrypto_la-rand_key.lo: des/$(am__dirstamp) \
- des/$(DEPDIR)/$(am__dirstamp)
des/libcrypto_la-set_key.lo: des/$(am__dirstamp) \
des/$(DEPDIR)/$(am__dirstamp)
des/libcrypto_la-str2key.lo: des/$(am__dirstamp) \
@@ -3185,16 +3101,8 @@ evp/libcrypto_la-bio_enc.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-bio_md.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-c_all.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-cipher_method_lib.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-digest.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_aes.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_bf.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_camellia.lo: evp/$(am__dirstamp) \
@@ -3209,8 +3117,6 @@ evp/libcrypto_la-e_des.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_des3.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-e_gost2814789.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_idea.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_null.lo: evp/$(am__dirstamp) \
@@ -3219,32 +3125,28 @@ evp/libcrypto_la-e_rc2.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_rc4.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-e_rc4_hmac_md5.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_sm4.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-e_xcbc_d.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-encode.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-evp_aead.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-evp_enc.lo: evp/$(am__dirstamp) \
+evp/libcrypto_la-evp_cipher.lo: evp/$(am__dirstamp) \
+ evp/$(DEPDIR)/$(am__dirstamp)
+evp/libcrypto_la-evp_digest.lo: evp/$(am__dirstamp) \
+ evp/$(DEPDIR)/$(am__dirstamp)
+evp/libcrypto_la-evp_encode.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-evp_err.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-evp_key.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-evp_lib.lo: evp/$(am__dirstamp) \
+evp/libcrypto_la-evp_names.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-evp_pbe.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-evp_pkey.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-m_gost2814789.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-m_gostr341194.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-m_md4.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-m_md5.lo: evp/$(am__dirstamp) \
@@ -3261,28 +3163,14 @@ evp/libcrypto_la-m_sha3.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-m_sigver.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-m_streebog.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-m_sm3.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-m_wp.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-names.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-p5_crpt.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-p5_crpt2.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-p_dec.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-p_enc.lo: evp/$(am__dirstamp) \
+evp/libcrypto_la-p_legacy.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-p_lib.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-p_open.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
-evp/libcrypto_la-p_seal.lo: evp/$(am__dirstamp) \
- evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-p_sign.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-p_verify.lo: evp/$(am__dirstamp) \
@@ -3293,40 +3181,6 @@ evp/libcrypto_la-pmeth_gn.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
evp/libcrypto_la-pmeth_lib.lo: evp/$(am__dirstamp) \
evp/$(DEPDIR)/$(am__dirstamp)
-gost/$(am__dirstamp):
- @$(MKDIR_P) gost
- @: > gost/$(am__dirstamp)
-gost/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) gost/$(DEPDIR)
- @: > gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost2814789.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost89_keywrap.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost89_params.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost89imit_ameth.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost89imit_pmeth.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost_asn1.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gost_err.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gostr341001.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gostr341001_ameth.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gostr341001_key.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gostr341001_params.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gostr341001_pmeth.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-gostr341194.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
-gost/libcrypto_la-streebog.lo: gost/$(am__dirstamp) \
- gost/$(DEPDIR)/$(am__dirstamp)
hkdf/$(am__dirstamp):
@$(MKDIR_P) hkdf
@: > hkdf/$(am__dirstamp)
@@ -3379,8 +3233,6 @@ lhash/$(am__dirstamp):
lhash/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) lhash/$(DEPDIR)
@: > lhash/$(DEPDIR)/$(am__dirstamp)
-lhash/libcrypto_la-lh_stats.lo: lhash/$(am__dirstamp) \
- lhash/$(DEPDIR)/$(am__dirstamp)
lhash/libcrypto_la-lhash.lo: lhash/$(am__dirstamp) \
lhash/$(DEPDIR)/$(am__dirstamp)
md4/$(am__dirstamp):
@@ -3413,8 +3265,6 @@ objects/$(am__dirstamp):
objects/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) objects/$(DEPDIR)
@: > objects/$(DEPDIR)/$(am__dirstamp)
-objects/libcrypto_la-o_names.lo: objects/$(am__dirstamp) \
- objects/$(DEPDIR)/$(am__dirstamp)
objects/libcrypto_la-obj_dat.lo: objects/$(am__dirstamp) \
objects/$(DEPDIR)/$(am__dirstamp)
objects/libcrypto_la-obj_err.lo: objects/$(am__dirstamp) \
@@ -3487,8 +3337,6 @@ pkcs12/libcrypto_la-p12_asn.lo: pkcs12/$(am__dirstamp) \
pkcs12/$(DEPDIR)/$(am__dirstamp)
pkcs12/libcrypto_la-p12_attr.lo: pkcs12/$(am__dirstamp) \
pkcs12/$(DEPDIR)/$(am__dirstamp)
-pkcs12/libcrypto_la-p12_crpt.lo: pkcs12/$(am__dirstamp) \
- pkcs12/$(DEPDIR)/$(am__dirstamp)
pkcs12/libcrypto_la-p12_crt.lo: pkcs12/$(am__dirstamp) \
pkcs12/$(DEPDIR)/$(am__dirstamp)
pkcs12/libcrypto_la-p12_decr.lo: pkcs12/$(am__dirstamp) \
@@ -3885,8 +3733,6 @@ mostlyclean-compile:
-rm -f err/*.lo
-rm -f evp/*.$(OBJEXT)
-rm -f evp/*.lo
- -rm -f gost/*.$(OBJEXT)
- -rm -f gost/*.lo
-rm -f hkdf/*.$(OBJEXT)
-rm -f hkdf/*.lo
-rm -f hmac/*.$(OBJEXT)
@@ -4012,7 +3858,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-a_time_tm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-a_type.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-a_utf8.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-asn1_err.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-asn1_gen.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@asn1/$(DEPDIR)/libcrypto_la-asn1_item.Plo@am__quote@ # am--include-marker
@@ -4241,7 +4086,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-ofb_enc.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-pcbc_enc.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-qud_cksm.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-rand_key.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-set_key.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-str2key.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@des/$(DEPDIR)/libcrypto_la-xcbc_enc.Plo@am__quote@ # am--include-marker
@@ -4290,11 +4134,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-bio_b64.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-bio_enc.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-bio_md.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-c_all.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-digest.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_aes.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_bf.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_camellia.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_cast.Plo@am__quote@ # am--include-marker
@@ -4302,24 +4142,21 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_chacha20poly1305.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_des.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_des3.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_idea.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_null.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_rc2.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_rc4.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_sm4.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-e_xcbc_d.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-encode.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_aead.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_enc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_cipher.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_digest.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_encode.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_err.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_key.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_lib.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_names.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_pbe.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-evp_pkey.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_md4.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_md5.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_md5_sha1.Plo@am__quote@ # am--include-marker
@@ -4329,35 +4166,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_sha3.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_sigver.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_sm3.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_streebog.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-m_wp.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-names.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p5_crpt.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_dec.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_enc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_legacy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_lib.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_open.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_seal.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_sign.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-p_verify.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-pmeth_fn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-pmeth_gn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@evp/$(DEPDIR)/libcrypto_la-pmeth_lib.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost2814789.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost89_params.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost_asn1.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gost_err.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gostr341001.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-gostr341194.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@gost/$(DEPDIR)/libcrypto_la-streebog.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@hkdf/$(DEPDIR)/libcrypto_la-hkdf.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@hmac/$(DEPDIR)/libcrypto_la-hm_ameth.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@hmac/$(DEPDIR)/libcrypto_la-hm_pmeth.Plo@am__quote@ # am--include-marker
@@ -4369,7 +4185,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@idea/$(DEPDIR)/libcrypto_la-i_skey.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@kdf/$(DEPDIR)/libcrypto_la-hkdf_evp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@kdf/$(DEPDIR)/libcrypto_la-kdf_err.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@lhash/$(DEPDIR)/libcrypto_la-lh_stats.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@lhash/$(DEPDIR)/libcrypto_la-lhash.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@md4/$(DEPDIR)/libcrypto_la-md4.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@md5/$(DEPDIR)/libcrypto_la-md5-elf-x86_64.Plo@am__quote@ # am--include-marker
@@ -4389,7 +4204,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@modes/$(DEPDIR)/libcrypto_la-ghash-mingw64-x86_64.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@modes/$(DEPDIR)/libcrypto_la-ofb128.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@modes/$(DEPDIR)/libcrypto_la-xts128.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@objects/$(DEPDIR)/libcrypto_la-o_names.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@objects/$(DEPDIR)/libcrypto_la-obj_dat.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@objects/$(DEPDIR)/libcrypto_la-obj_err.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@objects/$(DEPDIR)/libcrypto_la-obj_lib.Plo@am__quote@ # am--include-marker
@@ -4417,7 +4231,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_add.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_asn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_attr.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_decr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@pkcs12/$(DEPDIR)/libcrypto_la-p12_init.Plo@am__quote@ # am--include-marker
@@ -5614,13 +5427,6 @@ asn1/libcrypto_la-a_utf8.lo: asn1/a_utf8.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o asn1/libcrypto_la-a_utf8.lo `test -f 'asn1/a_utf8.c' || echo '$(srcdir)/'`asn1/a_utf8.c
-asn1/libcrypto_la-ameth_lib.lo: asn1/ameth_lib.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT asn1/libcrypto_la-ameth_lib.lo -MD -MP -MF asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Tpo -c -o asn1/libcrypto_la-ameth_lib.lo `test -f 'asn1/ameth_lib.c' || echo '$(srcdir)/'`asn1/ameth_lib.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Tpo asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='asn1/ameth_lib.c' object='asn1/libcrypto_la-ameth_lib.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o asn1/libcrypto_la-ameth_lib.lo `test -f 'asn1/ameth_lib.c' || echo '$(srcdir)/'`asn1/ameth_lib.c
-
asn1/libcrypto_la-asn1_err.lo: asn1/asn1_err.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT asn1/libcrypto_la-asn1_err.lo -MD -MP -MF asn1/$(DEPDIR)/libcrypto_la-asn1_err.Tpo -c -o asn1/libcrypto_la-asn1_err.lo `test -f 'asn1/asn1_err.c' || echo '$(srcdir)/'`asn1/asn1_err.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) asn1/$(DEPDIR)/libcrypto_la-asn1_err.Tpo asn1/$(DEPDIR)/libcrypto_la-asn1_err.Plo
@@ -6769,13 +6575,6 @@ des/libcrypto_la-qud_cksm.lo: des/qud_cksm.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o des/libcrypto_la-qud_cksm.lo `test -f 'des/qud_cksm.c' || echo '$(srcdir)/'`des/qud_cksm.c
-des/libcrypto_la-rand_key.lo: des/rand_key.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT des/libcrypto_la-rand_key.lo -MD -MP -MF des/$(DEPDIR)/libcrypto_la-rand_key.Tpo -c -o des/libcrypto_la-rand_key.lo `test -f 'des/rand_key.c' || echo '$(srcdir)/'`des/rand_key.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) des/$(DEPDIR)/libcrypto_la-rand_key.Tpo des/$(DEPDIR)/libcrypto_la-rand_key.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='des/rand_key.c' object='des/libcrypto_la-rand_key.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o des/libcrypto_la-rand_key.lo `test -f 'des/rand_key.c' || echo '$(srcdir)/'`des/rand_key.c
-
des/libcrypto_la-set_key.lo: des/set_key.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT des/libcrypto_la-set_key.lo -MD -MP -MF des/$(DEPDIR)/libcrypto_la-set_key.Tpo -c -o des/libcrypto_la-set_key.lo `test -f 'des/set_key.c' || echo '$(srcdir)/'`des/set_key.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) des/$(DEPDIR)/libcrypto_la-set_key.Tpo des/$(DEPDIR)/libcrypto_la-set_key.Plo
@@ -7112,27 +6911,6 @@ evp/libcrypto_la-bio_md.lo: evp/bio_md.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-bio_md.lo `test -f 'evp/bio_md.c' || echo '$(srcdir)/'`evp/bio_md.c
-evp/libcrypto_la-c_all.lo: evp/c_all.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-c_all.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-c_all.Tpo -c -o evp/libcrypto_la-c_all.lo `test -f 'evp/c_all.c' || echo '$(srcdir)/'`evp/c_all.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-c_all.Tpo evp/$(DEPDIR)/libcrypto_la-c_all.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/c_all.c' object='evp/libcrypto_la-c_all.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-c_all.lo `test -f 'evp/c_all.c' || echo '$(srcdir)/'`evp/c_all.c
-
-evp/libcrypto_la-cipher_method_lib.lo: evp/cipher_method_lib.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-cipher_method_lib.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Tpo -c -o evp/libcrypto_la-cipher_method_lib.lo `test -f 'evp/cipher_method_lib.c' || echo '$(srcdir)/'`evp/cipher_method_lib.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Tpo evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/cipher_method_lib.c' object='evp/libcrypto_la-cipher_method_lib.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-cipher_method_lib.lo `test -f 'evp/cipher_method_lib.c' || echo '$(srcdir)/'`evp/cipher_method_lib.c
-
-evp/libcrypto_la-digest.lo: evp/digest.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-digest.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-digest.Tpo -c -o evp/libcrypto_la-digest.lo `test -f 'evp/digest.c' || echo '$(srcdir)/'`evp/digest.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-digest.Tpo evp/$(DEPDIR)/libcrypto_la-digest.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/digest.c' object='evp/libcrypto_la-digest.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-digest.lo `test -f 'evp/digest.c' || echo '$(srcdir)/'`evp/digest.c
-
evp/libcrypto_la-e_aes.lo: evp/e_aes.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_aes.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_aes.Tpo -c -o evp/libcrypto_la-e_aes.lo `test -f 'evp/e_aes.c' || echo '$(srcdir)/'`evp/e_aes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_aes.Tpo evp/$(DEPDIR)/libcrypto_la-e_aes.Plo
@@ -7140,13 +6918,6 @@ evp/libcrypto_la-e_aes.lo: evp/e_aes.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_aes.lo `test -f 'evp/e_aes.c' || echo '$(srcdir)/'`evp/e_aes.c
-evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo: evp/e_aes_cbc_hmac_sha1.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Tpo -c -o evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo `test -f 'evp/e_aes_cbc_hmac_sha1.c' || echo '$(srcdir)/'`evp/e_aes_cbc_hmac_sha1.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Tpo evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/e_aes_cbc_hmac_sha1.c' object='evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_aes_cbc_hmac_sha1.lo `test -f 'evp/e_aes_cbc_hmac_sha1.c' || echo '$(srcdir)/'`evp/e_aes_cbc_hmac_sha1.c
-
evp/libcrypto_la-e_bf.lo: evp/e_bf.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_bf.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_bf.Tpo -c -o evp/libcrypto_la-e_bf.lo `test -f 'evp/e_bf.c' || echo '$(srcdir)/'`evp/e_bf.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_bf.Tpo evp/$(DEPDIR)/libcrypto_la-e_bf.Plo
@@ -7196,13 +6967,6 @@ evp/libcrypto_la-e_des3.lo: evp/e_des3.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_des3.lo `test -f 'evp/e_des3.c' || echo '$(srcdir)/'`evp/e_des3.c
-evp/libcrypto_la-e_gost2814789.lo: evp/e_gost2814789.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_gost2814789.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Tpo -c -o evp/libcrypto_la-e_gost2814789.lo `test -f 'evp/e_gost2814789.c' || echo '$(srcdir)/'`evp/e_gost2814789.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Tpo evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/e_gost2814789.c' object='evp/libcrypto_la-e_gost2814789.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_gost2814789.lo `test -f 'evp/e_gost2814789.c' || echo '$(srcdir)/'`evp/e_gost2814789.c
-
evp/libcrypto_la-e_idea.lo: evp/e_idea.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_idea.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_idea.Tpo -c -o evp/libcrypto_la-e_idea.lo `test -f 'evp/e_idea.c' || echo '$(srcdir)/'`evp/e_idea.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_idea.Tpo evp/$(DEPDIR)/libcrypto_la-e_idea.Plo
@@ -7231,13 +6995,6 @@ evp/libcrypto_la-e_rc4.lo: evp/e_rc4.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_rc4.lo `test -f 'evp/e_rc4.c' || echo '$(srcdir)/'`evp/e_rc4.c
-evp/libcrypto_la-e_rc4_hmac_md5.lo: evp/e_rc4_hmac_md5.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_rc4_hmac_md5.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Tpo -c -o evp/libcrypto_la-e_rc4_hmac_md5.lo `test -f 'evp/e_rc4_hmac_md5.c' || echo '$(srcdir)/'`evp/e_rc4_hmac_md5.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Tpo evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/e_rc4_hmac_md5.c' object='evp/libcrypto_la-e_rc4_hmac_md5.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_rc4_hmac_md5.lo `test -f 'evp/e_rc4_hmac_md5.c' || echo '$(srcdir)/'`evp/e_rc4_hmac_md5.c
-
evp/libcrypto_la-e_sm4.lo: evp/e_sm4.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-e_sm4.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-e_sm4.Tpo -c -o evp/libcrypto_la-e_sm4.lo `test -f 'evp/e_sm4.c' || echo '$(srcdir)/'`evp/e_sm4.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-e_sm4.Tpo evp/$(DEPDIR)/libcrypto_la-e_sm4.Plo
@@ -7252,13 +7009,6 @@ evp/libcrypto_la-e_xcbc_d.lo: evp/e_xcbc_d.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-e_xcbc_d.lo `test -f 'evp/e_xcbc_d.c' || echo '$(srcdir)/'`evp/e_xcbc_d.c
-evp/libcrypto_la-encode.lo: evp/encode.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-encode.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-encode.Tpo -c -o evp/libcrypto_la-encode.lo `test -f 'evp/encode.c' || echo '$(srcdir)/'`evp/encode.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-encode.Tpo evp/$(DEPDIR)/libcrypto_la-encode.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/encode.c' object='evp/libcrypto_la-encode.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-encode.lo `test -f 'evp/encode.c' || echo '$(srcdir)/'`evp/encode.c
-
evp/libcrypto_la-evp_aead.lo: evp/evp_aead.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_aead.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_aead.Tpo -c -o evp/libcrypto_la-evp_aead.lo `test -f 'evp/evp_aead.c' || echo '$(srcdir)/'`evp/evp_aead.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_aead.Tpo evp/$(DEPDIR)/libcrypto_la-evp_aead.Plo
@@ -7266,12 +7016,26 @@ evp/libcrypto_la-evp_aead.lo: evp/evp_aead.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_aead.lo `test -f 'evp/evp_aead.c' || echo '$(srcdir)/'`evp/evp_aead.c
-evp/libcrypto_la-evp_enc.lo: evp/evp_enc.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_enc.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_enc.Tpo -c -o evp/libcrypto_la-evp_enc.lo `test -f 'evp/evp_enc.c' || echo '$(srcdir)/'`evp/evp_enc.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_enc.Tpo evp/$(DEPDIR)/libcrypto_la-evp_enc.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/evp_enc.c' object='evp/libcrypto_la-evp_enc.lo' libtool=yes @AMDEPBACKSLASH@
+evp/libcrypto_la-evp_cipher.lo: evp/evp_cipher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_cipher.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_cipher.Tpo -c -o evp/libcrypto_la-evp_cipher.lo `test -f 'evp/evp_cipher.c' || echo '$(srcdir)/'`evp/evp_cipher.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_cipher.Tpo evp/$(DEPDIR)/libcrypto_la-evp_cipher.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/evp_cipher.c' object='evp/libcrypto_la-evp_cipher.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_cipher.lo `test -f 'evp/evp_cipher.c' || echo '$(srcdir)/'`evp/evp_cipher.c
+
+evp/libcrypto_la-evp_digest.lo: evp/evp_digest.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_digest.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_digest.Tpo -c -o evp/libcrypto_la-evp_digest.lo `test -f 'evp/evp_digest.c' || echo '$(srcdir)/'`evp/evp_digest.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_digest.Tpo evp/$(DEPDIR)/libcrypto_la-evp_digest.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/evp_digest.c' object='evp/libcrypto_la-evp_digest.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_digest.lo `test -f 'evp/evp_digest.c' || echo '$(srcdir)/'`evp/evp_digest.c
+
+evp/libcrypto_la-evp_encode.lo: evp/evp_encode.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_encode.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_encode.Tpo -c -o evp/libcrypto_la-evp_encode.lo `test -f 'evp/evp_encode.c' || echo '$(srcdir)/'`evp/evp_encode.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_encode.Tpo evp/$(DEPDIR)/libcrypto_la-evp_encode.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/evp_encode.c' object='evp/libcrypto_la-evp_encode.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_enc.lo `test -f 'evp/evp_enc.c' || echo '$(srcdir)/'`evp/evp_enc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_encode.lo `test -f 'evp/evp_encode.c' || echo '$(srcdir)/'`evp/evp_encode.c
evp/libcrypto_la-evp_err.lo: evp/evp_err.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_err.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_err.Tpo -c -o evp/libcrypto_la-evp_err.lo `test -f 'evp/evp_err.c' || echo '$(srcdir)/'`evp/evp_err.c
@@ -7287,12 +7051,12 @@ evp/libcrypto_la-evp_key.lo: evp/evp_key.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_key.lo `test -f 'evp/evp_key.c' || echo '$(srcdir)/'`evp/evp_key.c
-evp/libcrypto_la-evp_lib.lo: evp/evp_lib.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_lib.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_lib.Tpo -c -o evp/libcrypto_la-evp_lib.lo `test -f 'evp/evp_lib.c' || echo '$(srcdir)/'`evp/evp_lib.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_lib.Tpo evp/$(DEPDIR)/libcrypto_la-evp_lib.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/evp_lib.c' object='evp/libcrypto_la-evp_lib.lo' libtool=yes @AMDEPBACKSLASH@
+evp/libcrypto_la-evp_names.lo: evp/evp_names.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_names.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_names.Tpo -c -o evp/libcrypto_la-evp_names.lo `test -f 'evp/evp_names.c' || echo '$(srcdir)/'`evp/evp_names.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-evp_names.Tpo evp/$(DEPDIR)/libcrypto_la-evp_names.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/evp_names.c' object='evp/libcrypto_la-evp_names.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_lib.lo `test -f 'evp/evp_lib.c' || echo '$(srcdir)/'`evp/evp_lib.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_names.lo `test -f 'evp/evp_names.c' || echo '$(srcdir)/'`evp/evp_names.c
evp/libcrypto_la-evp_pbe.lo: evp/evp_pbe.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-evp_pbe.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-evp_pbe.Tpo -c -o evp/libcrypto_la-evp_pbe.lo `test -f 'evp/evp_pbe.c' || echo '$(srcdir)/'`evp/evp_pbe.c
@@ -7308,20 +7072,6 @@ evp/libcrypto_la-evp_pkey.lo: evp/evp_pkey.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-evp_pkey.lo `test -f 'evp/evp_pkey.c' || echo '$(srcdir)/'`evp/evp_pkey.c
-evp/libcrypto_la-m_gost2814789.lo: evp/m_gost2814789.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-m_gost2814789.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Tpo -c -o evp/libcrypto_la-m_gost2814789.lo `test -f 'evp/m_gost2814789.c' || echo '$(srcdir)/'`evp/m_gost2814789.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Tpo evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/m_gost2814789.c' object='evp/libcrypto_la-m_gost2814789.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-m_gost2814789.lo `test -f 'evp/m_gost2814789.c' || echo '$(srcdir)/'`evp/m_gost2814789.c
-
-evp/libcrypto_la-m_gostr341194.lo: evp/m_gostr341194.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-m_gostr341194.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Tpo -c -o evp/libcrypto_la-m_gostr341194.lo `test -f 'evp/m_gostr341194.c' || echo '$(srcdir)/'`evp/m_gostr341194.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Tpo evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/m_gostr341194.c' object='evp/libcrypto_la-m_gostr341194.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-m_gostr341194.lo `test -f 'evp/m_gostr341194.c' || echo '$(srcdir)/'`evp/m_gostr341194.c
-
evp/libcrypto_la-m_md4.lo: evp/m_md4.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-m_md4.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-m_md4.Tpo -c -o evp/libcrypto_la-m_md4.lo `test -f 'evp/m_md4.c' || echo '$(srcdir)/'`evp/m_md4.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-m_md4.Tpo evp/$(DEPDIR)/libcrypto_la-m_md4.Plo
@@ -7378,13 +7128,6 @@ evp/libcrypto_la-m_sigver.lo: evp/m_sigver.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-m_sigver.lo `test -f 'evp/m_sigver.c' || echo '$(srcdir)/'`evp/m_sigver.c
-evp/libcrypto_la-m_streebog.lo: evp/m_streebog.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-m_streebog.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-m_streebog.Tpo -c -o evp/libcrypto_la-m_streebog.lo `test -f 'evp/m_streebog.c' || echo '$(srcdir)/'`evp/m_streebog.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-m_streebog.Tpo evp/$(DEPDIR)/libcrypto_la-m_streebog.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/m_streebog.c' object='evp/libcrypto_la-m_streebog.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-m_streebog.lo `test -f 'evp/m_streebog.c' || echo '$(srcdir)/'`evp/m_streebog.c
-
evp/libcrypto_la-m_sm3.lo: evp/m_sm3.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-m_sm3.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-m_sm3.Tpo -c -o evp/libcrypto_la-m_sm3.lo `test -f 'evp/m_sm3.c' || echo '$(srcdir)/'`evp/m_sm3.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-m_sm3.Tpo evp/$(DEPDIR)/libcrypto_la-m_sm3.Plo
@@ -7399,40 +7142,12 @@ evp/libcrypto_la-m_wp.lo: evp/m_wp.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-m_wp.lo `test -f 'evp/m_wp.c' || echo '$(srcdir)/'`evp/m_wp.c
-evp/libcrypto_la-names.lo: evp/names.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-names.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-names.Tpo -c -o evp/libcrypto_la-names.lo `test -f 'evp/names.c' || echo '$(srcdir)/'`evp/names.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-names.Tpo evp/$(DEPDIR)/libcrypto_la-names.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/names.c' object='evp/libcrypto_la-names.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-names.lo `test -f 'evp/names.c' || echo '$(srcdir)/'`evp/names.c
-
-evp/libcrypto_la-p5_crpt.lo: evp/p5_crpt.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p5_crpt.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p5_crpt.Tpo -c -o evp/libcrypto_la-p5_crpt.lo `test -f 'evp/p5_crpt.c' || echo '$(srcdir)/'`evp/p5_crpt.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p5_crpt.Tpo evp/$(DEPDIR)/libcrypto_la-p5_crpt.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p5_crpt.c' object='evp/libcrypto_la-p5_crpt.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p5_crpt.lo `test -f 'evp/p5_crpt.c' || echo '$(srcdir)/'`evp/p5_crpt.c
-
-evp/libcrypto_la-p5_crpt2.lo: evp/p5_crpt2.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p5_crpt2.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Tpo -c -o evp/libcrypto_la-p5_crpt2.lo `test -f 'evp/p5_crpt2.c' || echo '$(srcdir)/'`evp/p5_crpt2.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Tpo evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p5_crpt2.c' object='evp/libcrypto_la-p5_crpt2.lo' libtool=yes @AMDEPBACKSLASH@
+evp/libcrypto_la-p_legacy.lo: evp/p_legacy.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_legacy.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_legacy.Tpo -c -o evp/libcrypto_la-p_legacy.lo `test -f 'evp/p_legacy.c' || echo '$(srcdir)/'`evp/p_legacy.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p_legacy.Tpo evp/$(DEPDIR)/libcrypto_la-p_legacy.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p_legacy.c' object='evp/libcrypto_la-p_legacy.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p5_crpt2.lo `test -f 'evp/p5_crpt2.c' || echo '$(srcdir)/'`evp/p5_crpt2.c
-
-evp/libcrypto_la-p_dec.lo: evp/p_dec.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_dec.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_dec.Tpo -c -o evp/libcrypto_la-p_dec.lo `test -f 'evp/p_dec.c' || echo '$(srcdir)/'`evp/p_dec.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p_dec.Tpo evp/$(DEPDIR)/libcrypto_la-p_dec.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p_dec.c' object='evp/libcrypto_la-p_dec.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p_dec.lo `test -f 'evp/p_dec.c' || echo '$(srcdir)/'`evp/p_dec.c
-
-evp/libcrypto_la-p_enc.lo: evp/p_enc.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_enc.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_enc.Tpo -c -o evp/libcrypto_la-p_enc.lo `test -f 'evp/p_enc.c' || echo '$(srcdir)/'`evp/p_enc.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p_enc.Tpo evp/$(DEPDIR)/libcrypto_la-p_enc.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p_enc.c' object='evp/libcrypto_la-p_enc.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p_enc.lo `test -f 'evp/p_enc.c' || echo '$(srcdir)/'`evp/p_enc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p_legacy.lo `test -f 'evp/p_legacy.c' || echo '$(srcdir)/'`evp/p_legacy.c
evp/libcrypto_la-p_lib.lo: evp/p_lib.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_lib.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_lib.Tpo -c -o evp/libcrypto_la-p_lib.lo `test -f 'evp/p_lib.c' || echo '$(srcdir)/'`evp/p_lib.c
@@ -7441,20 +7156,6 @@ evp/libcrypto_la-p_lib.lo: evp/p_lib.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p_lib.lo `test -f 'evp/p_lib.c' || echo '$(srcdir)/'`evp/p_lib.c
-evp/libcrypto_la-p_open.lo: evp/p_open.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_open.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_open.Tpo -c -o evp/libcrypto_la-p_open.lo `test -f 'evp/p_open.c' || echo '$(srcdir)/'`evp/p_open.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p_open.Tpo evp/$(DEPDIR)/libcrypto_la-p_open.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p_open.c' object='evp/libcrypto_la-p_open.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p_open.lo `test -f 'evp/p_open.c' || echo '$(srcdir)/'`evp/p_open.c
-
-evp/libcrypto_la-p_seal.lo: evp/p_seal.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_seal.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_seal.Tpo -c -o evp/libcrypto_la-p_seal.lo `test -f 'evp/p_seal.c' || echo '$(srcdir)/'`evp/p_seal.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p_seal.Tpo evp/$(DEPDIR)/libcrypto_la-p_seal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp/p_seal.c' object='evp/libcrypto_la-p_seal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-p_seal.lo `test -f 'evp/p_seal.c' || echo '$(srcdir)/'`evp/p_seal.c
-
evp/libcrypto_la-p_sign.lo: evp/p_sign.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evp/libcrypto_la-p_sign.lo -MD -MP -MF evp/$(DEPDIR)/libcrypto_la-p_sign.Tpo -c -o evp/libcrypto_la-p_sign.lo `test -f 'evp/p_sign.c' || echo '$(srcdir)/'`evp/p_sign.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) evp/$(DEPDIR)/libcrypto_la-p_sign.Tpo evp/$(DEPDIR)/libcrypto_la-p_sign.Plo
@@ -7490,104 +7191,6 @@ evp/libcrypto_la-pmeth_lib.lo: evp/pmeth_lib.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evp/libcrypto_la-pmeth_lib.lo `test -f 'evp/pmeth_lib.c' || echo '$(srcdir)/'`evp/pmeth_lib.c
-gost/libcrypto_la-gost2814789.lo: gost/gost2814789.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost2814789.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost2814789.Tpo -c -o gost/libcrypto_la-gost2814789.lo `test -f 'gost/gost2814789.c' || echo '$(srcdir)/'`gost/gost2814789.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost2814789.Tpo gost/$(DEPDIR)/libcrypto_la-gost2814789.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost2814789.c' object='gost/libcrypto_la-gost2814789.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost2814789.lo `test -f 'gost/gost2814789.c' || echo '$(srcdir)/'`gost/gost2814789.c
-
-gost/libcrypto_la-gost89_keywrap.lo: gost/gost89_keywrap.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost89_keywrap.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Tpo -c -o gost/libcrypto_la-gost89_keywrap.lo `test -f 'gost/gost89_keywrap.c' || echo '$(srcdir)/'`gost/gost89_keywrap.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Tpo gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost89_keywrap.c' object='gost/libcrypto_la-gost89_keywrap.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost89_keywrap.lo `test -f 'gost/gost89_keywrap.c' || echo '$(srcdir)/'`gost/gost89_keywrap.c
-
-gost/libcrypto_la-gost89_params.lo: gost/gost89_params.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost89_params.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost89_params.Tpo -c -o gost/libcrypto_la-gost89_params.lo `test -f 'gost/gost89_params.c' || echo '$(srcdir)/'`gost/gost89_params.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost89_params.Tpo gost/$(DEPDIR)/libcrypto_la-gost89_params.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost89_params.c' object='gost/libcrypto_la-gost89_params.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost89_params.lo `test -f 'gost/gost89_params.c' || echo '$(srcdir)/'`gost/gost89_params.c
-
-gost/libcrypto_la-gost89imit_ameth.lo: gost/gost89imit_ameth.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost89imit_ameth.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Tpo -c -o gost/libcrypto_la-gost89imit_ameth.lo `test -f 'gost/gost89imit_ameth.c' || echo '$(srcdir)/'`gost/gost89imit_ameth.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Tpo gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost89imit_ameth.c' object='gost/libcrypto_la-gost89imit_ameth.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost89imit_ameth.lo `test -f 'gost/gost89imit_ameth.c' || echo '$(srcdir)/'`gost/gost89imit_ameth.c
-
-gost/libcrypto_la-gost89imit_pmeth.lo: gost/gost89imit_pmeth.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost89imit_pmeth.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Tpo -c -o gost/libcrypto_la-gost89imit_pmeth.lo `test -f 'gost/gost89imit_pmeth.c' || echo '$(srcdir)/'`gost/gost89imit_pmeth.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Tpo gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost89imit_pmeth.c' object='gost/libcrypto_la-gost89imit_pmeth.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost89imit_pmeth.lo `test -f 'gost/gost89imit_pmeth.c' || echo '$(srcdir)/'`gost/gost89imit_pmeth.c
-
-gost/libcrypto_la-gost_asn1.lo: gost/gost_asn1.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost_asn1.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost_asn1.Tpo -c -o gost/libcrypto_la-gost_asn1.lo `test -f 'gost/gost_asn1.c' || echo '$(srcdir)/'`gost/gost_asn1.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost_asn1.Tpo gost/$(DEPDIR)/libcrypto_la-gost_asn1.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost_asn1.c' object='gost/libcrypto_la-gost_asn1.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost_asn1.lo `test -f 'gost/gost_asn1.c' || echo '$(srcdir)/'`gost/gost_asn1.c
-
-gost/libcrypto_la-gost_err.lo: gost/gost_err.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gost_err.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gost_err.Tpo -c -o gost/libcrypto_la-gost_err.lo `test -f 'gost/gost_err.c' || echo '$(srcdir)/'`gost/gost_err.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gost_err.Tpo gost/$(DEPDIR)/libcrypto_la-gost_err.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gost_err.c' object='gost/libcrypto_la-gost_err.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gost_err.lo `test -f 'gost/gost_err.c' || echo '$(srcdir)/'`gost/gost_err.c
-
-gost/libcrypto_la-gostr341001.lo: gost/gostr341001.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gostr341001.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gostr341001.Tpo -c -o gost/libcrypto_la-gostr341001.lo `test -f 'gost/gostr341001.c' || echo '$(srcdir)/'`gost/gostr341001.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gostr341001.Tpo gost/$(DEPDIR)/libcrypto_la-gostr341001.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gostr341001.c' object='gost/libcrypto_la-gostr341001.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gostr341001.lo `test -f 'gost/gostr341001.c' || echo '$(srcdir)/'`gost/gostr341001.c
-
-gost/libcrypto_la-gostr341001_ameth.lo: gost/gostr341001_ameth.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gostr341001_ameth.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Tpo -c -o gost/libcrypto_la-gostr341001_ameth.lo `test -f 'gost/gostr341001_ameth.c' || echo '$(srcdir)/'`gost/gostr341001_ameth.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Tpo gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gostr341001_ameth.c' object='gost/libcrypto_la-gostr341001_ameth.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gostr341001_ameth.lo `test -f 'gost/gostr341001_ameth.c' || echo '$(srcdir)/'`gost/gostr341001_ameth.c
-
-gost/libcrypto_la-gostr341001_key.lo: gost/gostr341001_key.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gostr341001_key.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Tpo -c -o gost/libcrypto_la-gostr341001_key.lo `test -f 'gost/gostr341001_key.c' || echo '$(srcdir)/'`gost/gostr341001_key.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Tpo gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gostr341001_key.c' object='gost/libcrypto_la-gostr341001_key.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gostr341001_key.lo `test -f 'gost/gostr341001_key.c' || echo '$(srcdir)/'`gost/gostr341001_key.c
-
-gost/libcrypto_la-gostr341001_params.lo: gost/gostr341001_params.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gostr341001_params.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Tpo -c -o gost/libcrypto_la-gostr341001_params.lo `test -f 'gost/gostr341001_params.c' || echo '$(srcdir)/'`gost/gostr341001_params.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Tpo gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gostr341001_params.c' object='gost/libcrypto_la-gostr341001_params.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gostr341001_params.lo `test -f 'gost/gostr341001_params.c' || echo '$(srcdir)/'`gost/gostr341001_params.c
-
-gost/libcrypto_la-gostr341001_pmeth.lo: gost/gostr341001_pmeth.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gostr341001_pmeth.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Tpo -c -o gost/libcrypto_la-gostr341001_pmeth.lo `test -f 'gost/gostr341001_pmeth.c' || echo '$(srcdir)/'`gost/gostr341001_pmeth.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Tpo gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gostr341001_pmeth.c' object='gost/libcrypto_la-gostr341001_pmeth.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gostr341001_pmeth.lo `test -f 'gost/gostr341001_pmeth.c' || echo '$(srcdir)/'`gost/gostr341001_pmeth.c
-
-gost/libcrypto_la-gostr341194.lo: gost/gostr341194.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-gostr341194.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-gostr341194.Tpo -c -o gost/libcrypto_la-gostr341194.lo `test -f 'gost/gostr341194.c' || echo '$(srcdir)/'`gost/gostr341194.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-gostr341194.Tpo gost/$(DEPDIR)/libcrypto_la-gostr341194.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/gostr341194.c' object='gost/libcrypto_la-gostr341194.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-gostr341194.lo `test -f 'gost/gostr341194.c' || echo '$(srcdir)/'`gost/gostr341194.c
-
-gost/libcrypto_la-streebog.lo: gost/streebog.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gost/libcrypto_la-streebog.lo -MD -MP -MF gost/$(DEPDIR)/libcrypto_la-streebog.Tpo -c -o gost/libcrypto_la-streebog.lo `test -f 'gost/streebog.c' || echo '$(srcdir)/'`gost/streebog.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gost/$(DEPDIR)/libcrypto_la-streebog.Tpo gost/$(DEPDIR)/libcrypto_la-streebog.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gost/streebog.c' object='gost/libcrypto_la-streebog.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gost/libcrypto_la-streebog.lo `test -f 'gost/streebog.c' || echo '$(srcdir)/'`gost/streebog.c
-
hkdf/libcrypto_la-hkdf.lo: hkdf/hkdf.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hkdf/libcrypto_la-hkdf.lo -MD -MP -MF hkdf/$(DEPDIR)/libcrypto_la-hkdf.Tpo -c -o hkdf/libcrypto_la-hkdf.lo `test -f 'hkdf/hkdf.c' || echo '$(srcdir)/'`hkdf/hkdf.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) hkdf/$(DEPDIR)/libcrypto_la-hkdf.Tpo hkdf/$(DEPDIR)/libcrypto_la-hkdf.Plo
@@ -7665,13 +7268,6 @@ kdf/libcrypto_la-kdf_err.lo: kdf/kdf_err.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kdf/libcrypto_la-kdf_err.lo `test -f 'kdf/kdf_err.c' || echo '$(srcdir)/'`kdf/kdf_err.c
-lhash/libcrypto_la-lh_stats.lo: lhash/lh_stats.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lhash/libcrypto_la-lh_stats.lo -MD -MP -MF lhash/$(DEPDIR)/libcrypto_la-lh_stats.Tpo -c -o lhash/libcrypto_la-lh_stats.lo `test -f 'lhash/lh_stats.c' || echo '$(srcdir)/'`lhash/lh_stats.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) lhash/$(DEPDIR)/libcrypto_la-lh_stats.Tpo lhash/$(DEPDIR)/libcrypto_la-lh_stats.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lhash/lh_stats.c' object='lhash/libcrypto_la-lh_stats.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lhash/libcrypto_la-lh_stats.lo `test -f 'lhash/lh_stats.c' || echo '$(srcdir)/'`lhash/lh_stats.c
-
lhash/libcrypto_la-lhash.lo: lhash/lhash.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lhash/libcrypto_la-lhash.lo -MD -MP -MF lhash/$(DEPDIR)/libcrypto_la-lhash.Tpo -c -o lhash/libcrypto_la-lhash.lo `test -f 'lhash/lhash.c' || echo '$(srcdir)/'`lhash/lhash.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) lhash/$(DEPDIR)/libcrypto_la-lhash.Tpo lhash/$(DEPDIR)/libcrypto_la-lhash.Plo
@@ -7742,13 +7338,6 @@ modes/libcrypto_la-xts128.lo: modes/xts128.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o modes/libcrypto_la-xts128.lo `test -f 'modes/xts128.c' || echo '$(srcdir)/'`modes/xts128.c
-objects/libcrypto_la-o_names.lo: objects/o_names.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT objects/libcrypto_la-o_names.lo -MD -MP -MF objects/$(DEPDIR)/libcrypto_la-o_names.Tpo -c -o objects/libcrypto_la-o_names.lo `test -f 'objects/o_names.c' || echo '$(srcdir)/'`objects/o_names.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) objects/$(DEPDIR)/libcrypto_la-o_names.Tpo objects/$(DEPDIR)/libcrypto_la-o_names.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='objects/o_names.c' object='objects/libcrypto_la-o_names.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o objects/libcrypto_la-o_names.lo `test -f 'objects/o_names.c' || echo '$(srcdir)/'`objects/o_names.c
-
objects/libcrypto_la-obj_dat.lo: objects/obj_dat.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT objects/libcrypto_la-obj_dat.lo -MD -MP -MF objects/$(DEPDIR)/libcrypto_la-obj_dat.Tpo -c -o objects/libcrypto_la-obj_dat.lo `test -f 'objects/obj_dat.c' || echo '$(srcdir)/'`objects/obj_dat.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) objects/$(DEPDIR)/libcrypto_la-obj_dat.Tpo objects/$(DEPDIR)/libcrypto_la-obj_dat.Plo
@@ -7938,13 +7527,6 @@ pkcs12/libcrypto_la-p12_attr.lo: pkcs12/p12_attr.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pkcs12/libcrypto_la-p12_attr.lo `test -f 'pkcs12/p12_attr.c' || echo '$(srcdir)/'`pkcs12/p12_attr.c
-pkcs12/libcrypto_la-p12_crpt.lo: pkcs12/p12_crpt.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pkcs12/libcrypto_la-p12_crpt.lo -MD -MP -MF pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Tpo -c -o pkcs12/libcrypto_la-p12_crpt.lo `test -f 'pkcs12/p12_crpt.c' || echo '$(srcdir)/'`pkcs12/p12_crpt.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Tpo pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pkcs12/p12_crpt.c' object='pkcs12/libcrypto_la-p12_crpt.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pkcs12/libcrypto_la-p12_crpt.lo `test -f 'pkcs12/p12_crpt.c' || echo '$(srcdir)/'`pkcs12/p12_crpt.c
-
pkcs12/libcrypto_la-p12_crt.lo: pkcs12/p12_crt.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pkcs12/libcrypto_la-p12_crt.lo -MD -MP -MF pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Tpo -c -o pkcs12/libcrypto_la-p12_crt.lo `test -f 'pkcs12/p12_crt.c' || echo '$(srcdir)/'`pkcs12/p12_crt.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Tpo pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Plo
@@ -8886,7 +8468,6 @@ clean-libtool:
-rm -rf engine/.libs engine/_libs
-rm -rf err/.libs err/_libs
-rm -rf evp/.libs evp/_libs
- -rm -rf gost/.libs gost/_libs
-rm -rf hkdf/.libs hkdf/_libs
-rm -rf hmac/.libs hmac/_libs
-rm -rf idea/.libs idea/_libs
@@ -9089,8 +8670,6 @@ distclean-generic:
-rm -f err/$(am__dirstamp)
-rm -f evp/$(DEPDIR)/$(am__dirstamp)
-rm -f evp/$(am__dirstamp)
- -rm -f gost/$(DEPDIR)/$(am__dirstamp)
- -rm -f gost/$(am__dirstamp)
-rm -f hkdf/$(DEPDIR)/$(am__dirstamp)
-rm -f hkdf/$(am__dirstamp)
-rm -f hmac/$(DEPDIR)/$(am__dirstamp)
@@ -9223,7 +8802,6 @@ distclean: distclean-am
-rm -f asn1/$(DEPDIR)/libcrypto_la-a_time_tm.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-a_type.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-a_utf8.Plo
- -rm -f asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-asn1_err.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-asn1_gen.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-asn1_item.Plo
@@ -9452,7 +9030,6 @@ distclean: distclean-am
-rm -f des/$(DEPDIR)/libcrypto_la-ofb_enc.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-pcbc_enc.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-qud_cksm.Plo
- -rm -f des/$(DEPDIR)/libcrypto_la-rand_key.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-set_key.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-str2key.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-xcbc_enc.Plo
@@ -9501,11 +9078,7 @@ distclean: distclean-am
-rm -f evp/$(DEPDIR)/libcrypto_la-bio_b64.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-bio_enc.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-bio_md.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-c_all.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-digest.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_aes.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_bf.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_camellia.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_cast.Plo
@@ -9513,24 +9086,21 @@ distclean: distclean-am
-rm -f evp/$(DEPDIR)/libcrypto_la-e_chacha20poly1305.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_des.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_des3.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_idea.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_null.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_rc2.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_rc4.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_sm4.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_xcbc_d.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-encode.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_aead.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-evp_enc.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_cipher.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_digest.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_encode.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_err.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_key.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-evp_lib.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_names.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_pbe.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_pkey.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_md4.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_md5.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_md5_sha1.Plo
@@ -9540,35 +9110,14 @@ distclean: distclean-am
-rm -f evp/$(DEPDIR)/libcrypto_la-m_sha3.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_sigver.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_sm3.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-m_streebog.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_wp.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-names.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p5_crpt.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_dec.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_enc.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-p_legacy.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-p_lib.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_open.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_seal.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-p_sign.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-p_verify.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-pmeth_fn.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-pmeth_gn.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-pmeth_lib.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost2814789.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89_params.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost_asn1.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost_err.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341194.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-streebog.Plo
-rm -f hkdf/$(DEPDIR)/libcrypto_la-hkdf.Plo
-rm -f hmac/$(DEPDIR)/libcrypto_la-hm_ameth.Plo
-rm -f hmac/$(DEPDIR)/libcrypto_la-hm_pmeth.Plo
@@ -9580,7 +9129,6 @@ distclean: distclean-am
-rm -f idea/$(DEPDIR)/libcrypto_la-i_skey.Plo
-rm -f kdf/$(DEPDIR)/libcrypto_la-hkdf_evp.Plo
-rm -f kdf/$(DEPDIR)/libcrypto_la-kdf_err.Plo
- -rm -f lhash/$(DEPDIR)/libcrypto_la-lh_stats.Plo
-rm -f lhash/$(DEPDIR)/libcrypto_la-lhash.Plo
-rm -f md4/$(DEPDIR)/libcrypto_la-md4.Plo
-rm -f md5/$(DEPDIR)/libcrypto_la-md5-elf-x86_64.Plo
@@ -9600,7 +9148,6 @@ distclean: distclean-am
-rm -f modes/$(DEPDIR)/libcrypto_la-ghash-mingw64-x86_64.Plo
-rm -f modes/$(DEPDIR)/libcrypto_la-ofb128.Plo
-rm -f modes/$(DEPDIR)/libcrypto_la-xts128.Plo
- -rm -f objects/$(DEPDIR)/libcrypto_la-o_names.Plo
-rm -f objects/$(DEPDIR)/libcrypto_la-obj_dat.Plo
-rm -f objects/$(DEPDIR)/libcrypto_la-obj_err.Plo
-rm -f objects/$(DEPDIR)/libcrypto_la-obj_lib.Plo
@@ -9628,7 +9175,6 @@ distclean: distclean-am
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_add.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_asn.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_attr.Plo
- -rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_decr.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_init.Plo
@@ -9900,7 +9446,6 @@ maintainer-clean: maintainer-clean-am
-rm -f asn1/$(DEPDIR)/libcrypto_la-a_time_tm.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-a_type.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-a_utf8.Plo
- -rm -f asn1/$(DEPDIR)/libcrypto_la-ameth_lib.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-asn1_err.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-asn1_gen.Plo
-rm -f asn1/$(DEPDIR)/libcrypto_la-asn1_item.Plo
@@ -10129,7 +9674,6 @@ maintainer-clean: maintainer-clean-am
-rm -f des/$(DEPDIR)/libcrypto_la-ofb_enc.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-pcbc_enc.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-qud_cksm.Plo
- -rm -f des/$(DEPDIR)/libcrypto_la-rand_key.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-set_key.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-str2key.Plo
-rm -f des/$(DEPDIR)/libcrypto_la-xcbc_enc.Plo
@@ -10178,11 +9722,7 @@ maintainer-clean: maintainer-clean-am
-rm -f evp/$(DEPDIR)/libcrypto_la-bio_b64.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-bio_enc.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-bio_md.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-c_all.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-cipher_method_lib.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-digest.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_aes.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-e_aes_cbc_hmac_sha1.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_bf.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_camellia.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_cast.Plo
@@ -10190,24 +9730,21 @@ maintainer-clean: maintainer-clean-am
-rm -f evp/$(DEPDIR)/libcrypto_la-e_chacha20poly1305.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_des.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_des3.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-e_gost2814789.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_idea.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_null.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_rc2.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_rc4.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-e_rc4_hmac_md5.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_sm4.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-e_xcbc_d.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-encode.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_aead.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-evp_enc.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_cipher.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_digest.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_encode.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_err.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_key.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-evp_lib.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-evp_names.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_pbe.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-evp_pkey.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-m_gost2814789.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-m_gostr341194.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_md4.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_md5.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_md5_sha1.Plo
@@ -10217,35 +9754,14 @@ maintainer-clean: maintainer-clean-am
-rm -f evp/$(DEPDIR)/libcrypto_la-m_sha3.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_sigver.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_sm3.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-m_streebog.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-m_wp.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-names.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p5_crpt.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p5_crpt2.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_dec.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_enc.Plo
+ -rm -f evp/$(DEPDIR)/libcrypto_la-p_legacy.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-p_lib.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_open.Plo
- -rm -f evp/$(DEPDIR)/libcrypto_la-p_seal.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-p_sign.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-p_verify.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-pmeth_fn.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-pmeth_gn.Plo
-rm -f evp/$(DEPDIR)/libcrypto_la-pmeth_lib.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost2814789.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89_keywrap.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89_params.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89imit_ameth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost89imit_pmeth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost_asn1.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gost_err.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_ameth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_key.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_params.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341001_pmeth.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-gostr341194.Plo
- -rm -f gost/$(DEPDIR)/libcrypto_la-streebog.Plo
-rm -f hkdf/$(DEPDIR)/libcrypto_la-hkdf.Plo
-rm -f hmac/$(DEPDIR)/libcrypto_la-hm_ameth.Plo
-rm -f hmac/$(DEPDIR)/libcrypto_la-hm_pmeth.Plo
@@ -10257,7 +9773,6 @@ maintainer-clean: maintainer-clean-am
-rm -f idea/$(DEPDIR)/libcrypto_la-i_skey.Plo
-rm -f kdf/$(DEPDIR)/libcrypto_la-hkdf_evp.Plo
-rm -f kdf/$(DEPDIR)/libcrypto_la-kdf_err.Plo
- -rm -f lhash/$(DEPDIR)/libcrypto_la-lh_stats.Plo
-rm -f lhash/$(DEPDIR)/libcrypto_la-lhash.Plo
-rm -f md4/$(DEPDIR)/libcrypto_la-md4.Plo
-rm -f md5/$(DEPDIR)/libcrypto_la-md5-elf-x86_64.Plo
@@ -10277,7 +9792,6 @@ maintainer-clean: maintainer-clean-am
-rm -f modes/$(DEPDIR)/libcrypto_la-ghash-mingw64-x86_64.Plo
-rm -f modes/$(DEPDIR)/libcrypto_la-ofb128.Plo
-rm -f modes/$(DEPDIR)/libcrypto_la-xts128.Plo
- -rm -f objects/$(DEPDIR)/libcrypto_la-o_names.Plo
-rm -f objects/$(DEPDIR)/libcrypto_la-obj_dat.Plo
-rm -f objects/$(DEPDIR)/libcrypto_la-obj_err.Plo
-rm -f objects/$(DEPDIR)/libcrypto_la-obj_lib.Plo
@@ -10305,7 +9819,6 @@ maintainer-clean: maintainer-clean-am
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_add.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_asn.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_attr.Plo
- -rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_crpt.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_crt.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_decr.Plo
-rm -f pkcs12/$(DEPDIR)/libcrypto_la-p12_init.Plo
diff --git a/crypto/VERSION b/crypto/VERSION
index 71e55415..d10daf35 100644
--- a/crypto/VERSION
+++ b/crypto/VERSION
@@ -1 +1 @@
-52:0:0
+53:0:0
diff --git a/crypto/aes/aes-elf-x86_64.S b/crypto/aes/aes-elf-x86_64.S
index 1f51a47e..95dc8d9a 100644
--- a/crypto/aes/aes-elf-x86_64.S
+++ b/crypto/aes/aes-elf-x86_64.S
@@ -1,10 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.type _x86_64_AES_encrypt,@function
.align 16
_x86_64_AES_encrypt:
- endbr64
+_CET_ENDBR
xorl 0(%r15),%eax
xorl 4(%r15),%ebx
xorl 8(%r15),%ecx
@@ -158,7 +164,7 @@ _x86_64_AES_encrypt:
.type _x86_64_AES_encrypt_compact,@function
.align 16
_x86_64_AES_encrypt_compact:
- endbr64
+_CET_ENDBR
leaq 128(%r14),%r8
movl 0-128(%r8),%edi
movl 32-128(%r8),%ebp
@@ -338,7 +344,7 @@ _x86_64_AES_encrypt_compact:
.hidden asm_AES_encrypt
asm_AES_encrypt:
AES_encrypt:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -402,7 +408,7 @@ AES_encrypt:
.type _x86_64_AES_decrypt,@function
.align 16
_x86_64_AES_decrypt:
- endbr64
+_CET_ENDBR
xorl 0(%r15),%eax
xorl 4(%r15),%ebx
xorl 8(%r15),%ecx
@@ -558,7 +564,7 @@ _x86_64_AES_decrypt:
.type _x86_64_AES_decrypt_compact,@function
.align 16
_x86_64_AES_decrypt_compact:
- endbr64
+_CET_ENDBR
leaq 128(%r14),%r8
movl 0-128(%r8),%edi
movl 32-128(%r8),%ebp
@@ -789,7 +795,7 @@ _x86_64_AES_decrypt_compact:
.hidden asm_AES_decrypt
asm_AES_decrypt:
AES_decrypt:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -856,7 +862,7 @@ AES_decrypt:
.type AES_set_encrypt_key,@function
.align 16
AES_set_encrypt_key:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -882,7 +888,7 @@ AES_set_encrypt_key:
.type _x86_64_AES_set_encrypt_key,@function
.align 16
_x86_64_AES_set_encrypt_key:
- endbr64
+_CET_ENDBR
movl %esi,%ecx
movq %rdi,%rsi
movq %rdx,%rdi
@@ -1123,7 +1129,7 @@ _x86_64_AES_set_encrypt_key:
.type AES_set_decrypt_key,@function
.align 16
AES_set_decrypt_key:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -1316,7 +1322,7 @@ AES_set_decrypt_key:
.hidden asm_AES_cbc_encrypt
asm_AES_cbc_encrypt:
AES_cbc_encrypt:
- endbr64
+_CET_ENDBR
cmpq $0,%rdx
je .Lcbc_epilogue
pushfq
diff --git a/crypto/aes/aes-macosx-x86_64.S b/crypto/aes/aes-macosx-x86_64.S
index 8a9c36eb..d38b1833 100644
--- a/crypto/aes/aes-macosx-x86_64.S
+++ b/crypto/aes/aes-macosx-x86_64.S
@@ -1,9 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.p2align 4
_x86_64_AES_encrypt:
+_CET_ENDBR
xorl 0(%r15),%eax
xorl 4(%r15),%ebx
xorl 8(%r15),%ecx
@@ -157,6 +164,7 @@ L$enc_loop:
.p2align 4
_x86_64_AES_encrypt_compact:
+_CET_ENDBR
leaq 128(%r14),%r8
movl 0-128(%r8),%edi
movl 32-128(%r8),%ebp
@@ -336,6 +344,7 @@ L$enc_compact_done:
.private_extern _asm_AES_encrypt
_asm_AES_encrypt:
_AES_encrypt:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -399,6 +408,7 @@ L$enc_epilogue:
.p2align 4
_x86_64_AES_decrypt:
+_CET_ENDBR
xorl 0(%r15),%eax
xorl 4(%r15),%ebx
xorl 8(%r15),%ecx
@@ -554,6 +564,7 @@ L$dec_loop:
.p2align 4
_x86_64_AES_decrypt_compact:
+_CET_ENDBR
leaq 128(%r14),%r8
movl 0-128(%r8),%edi
movl 32-128(%r8),%ebp
@@ -784,6 +795,7 @@ L$dec_compact_done:
.private_extern _asm_AES_decrypt
_asm_AES_decrypt:
_AES_decrypt:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -850,6 +862,7 @@ L$dec_epilogue:
.p2align 4
_AES_set_encrypt_key:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -875,6 +888,7 @@ L$enc_key_epilogue:
.p2align 4
_x86_64_AES_set_encrypt_key:
+_CET_ENDBR
movl %esi,%ecx
movq %rdi,%rsi
movq %rdx,%rdi
@@ -1115,6 +1129,7 @@ L$exit:
.p2align 4
_AES_set_decrypt_key:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -1307,6 +1322,7 @@ L$dec_key_epilogue:
.private_extern _asm_AES_cbc_encrypt
_asm_AES_cbc_encrypt:
_AES_cbc_encrypt:
+_CET_ENDBR
cmpq $0,%rdx
je L$cbc_epilogue
pushfq
@@ -1756,6 +1772,7 @@ L$cbc_popfq:
L$cbc_epilogue:
retq
+.section __DATA,__const
.p2align 6
L$AES_Te:
.long 0xa56363c6,0xa56363c6
@@ -2540,5 +2557,5 @@ L$AES_Td:
.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0
-.byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6
+.text
diff --git a/crypto/aes/aes-masm-x86_64.S b/crypto/aes/aes-masm-x86_64.S
index e99ccf67..806a37d2 100644
--- a/crypto/aes/aes-masm-x86_64.S
+++ b/crypto/aes/aes-masm-x86_64.S
@@ -1,27 +1,33 @@
; 1 "crypto/aes/aes-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/aes/aes-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,12 +72,13 @@ OPTION DOTNAME
-; 3 "crypto/aes/aes-masm-x86_64.S.tmp" 2
+; 9 "crypto/aes/aes-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
ALIGN 16
_x86_64_AES_encrypt PROC PRIVATE
+
xor eax,DWORD PTR[r15]
xor ebx,DWORD PTR[4+r15]
xor ecx,DWORD PTR[8+r15]
@@ -225,6 +232,7 @@ _x86_64_AES_encrypt ENDP
ALIGN 16
_x86_64_AES_encrypt_compact PROC PRIVATE
+
lea r8,QWORD PTR[128+r14]
mov edi,DWORD PTR[((0-128))+r8]
mov ebp,DWORD PTR[((32-128))+r8]
@@ -413,6 +421,7 @@ $L$SEH_begin_AES_encrypt::
mov rdx,r8
+
push rbx
push rbp
push r12
@@ -479,6 +488,7 @@ AES_encrypt ENDP
ALIGN 16
_x86_64_AES_decrypt PROC PRIVATE
+
xor eax,DWORD PTR[r15]
xor ebx,DWORD PTR[4+r15]
xor ecx,DWORD PTR[8+r15]
@@ -634,6 +644,7 @@ _x86_64_AES_decrypt ENDP
ALIGN 16
_x86_64_AES_decrypt_compact PROC PRIVATE
+
lea r8,QWORD PTR[128+r14]
mov edi,DWORD PTR[((0-128))+r8]
mov ebp,DWORD PTR[((32-128))+r8]
@@ -873,6 +884,7 @@ $L$SEH_begin_AES_decrypt::
mov rdx,r8
+
push rbx
push rbp
push r12
@@ -951,6 +963,7 @@ $L$SEH_begin_AES_set_encrypt_key::
mov rdx,r8
+
push rbx
push rbp
push r12
@@ -979,6 +992,7 @@ AES_set_encrypt_key ENDP
ALIGN 16
_x86_64_AES_set_encrypt_key PROC PRIVATE
+
mov ecx,esi
mov rsi,rdi
mov rdi,rdx
@@ -1228,6 +1242,7 @@ $L$SEH_begin_AES_set_decrypt_key::
mov rdx,r8
+
push rbx
push rbp
push r12
@@ -1435,6 +1450,7 @@ $L$SEH_begin_AES_cbc_encrypt::
mov r9,QWORD PTR[48+rsp]
+
cmp rdx,0
je $L$cbc_epilogue
pushfq
@@ -1887,6 +1903,8 @@ $L$cbc_epilogue::
DB 0F3h,0C3h ;repret
$L$SEH_end_AES_cbc_encrypt::
AES_cbc_encrypt ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
$L$AES_Te::
DD 0a56363c6h,0a56363c6h
@@ -2671,15 +2689,14 @@ DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
DD 080808080h,080808080h,0fefefefeh,0fefefefeh
DD 01b1b1b1bh,01b1b1b1bh,0,0
-DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32
-DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
-DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
-DB 62,0
ALIGN 64
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
block_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
@@ -2738,6 +2755,7 @@ block_se_handler ENDP
ALIGN 16
key_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
@@ -2795,6 +2813,7 @@ key_se_handler ENDP
ALIGN 16
cbc_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
diff --git a/crypto/aes/aes-mingw64-x86_64.S b/crypto/aes/aes-mingw64-x86_64.S
index ca2d60f9..51d17e28 100644
--- a/crypto/aes/aes-mingw64-x86_64.S
+++ b/crypto/aes/aes-mingw64-x86_64.S
@@ -1,9 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.def _x86_64_AES_encrypt; .scl 3; .type 32; .endef
.p2align 4
_x86_64_AES_encrypt:
+_CET_ENDBR
xorl 0(%r15),%eax
xorl 4(%r15),%ebx
xorl 8(%r15),%ecx
@@ -157,6 +164,7 @@ _x86_64_AES_encrypt:
.def _x86_64_AES_encrypt_compact; .scl 3; .type 32; .endef
.p2align 4
_x86_64_AES_encrypt_compact:
+_CET_ENDBR
leaq 128(%r14),%r8
movl 0-128(%r8),%edi
movl 32-128(%r8),%ebp
@@ -344,6 +352,7 @@ AES_encrypt:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -409,6 +418,7 @@ AES_encrypt:
.def _x86_64_AES_decrypt; .scl 3; .type 32; .endef
.p2align 4
_x86_64_AES_decrypt:
+_CET_ENDBR
xorl 0(%r15),%eax
xorl 4(%r15),%ebx
xorl 8(%r15),%ecx
@@ -564,6 +574,7 @@ _x86_64_AES_decrypt:
.def _x86_64_AES_decrypt_compact; .scl 3; .type 32; .endef
.p2align 4
_x86_64_AES_decrypt_compact:
+_CET_ENDBR
leaq 128(%r14),%r8
movl 0-128(%r8),%edi
movl 32-128(%r8),%ebp
@@ -802,6 +813,7 @@ AES_decrypt:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -878,6 +890,7 @@ AES_set_encrypt_key:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -905,6 +918,7 @@ AES_set_encrypt_key:
.def _x86_64_AES_set_encrypt_key; .scl 3; .type 32; .endef
.p2align 4
_x86_64_AES_set_encrypt_key:
+_CET_ENDBR
movl %esi,%ecx
movq %rdi,%rsi
movq %rdx,%rdi
@@ -1153,6 +1167,7 @@ AES_set_decrypt_key:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -1358,6 +1373,7 @@ AES_cbc_encrypt:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
cmpq $0,%rdx
je .Lcbc_epilogue
pushfq
@@ -1809,6 +1825,7 @@ AES_cbc_encrypt:
movq 16(%rsp),%rsi
retq
.LSEH_end_AES_cbc_encrypt:
+.section .rodata
.p2align 6
.LAES_Te:
.long 0xa56363c6,0xa56363c6
@@ -2593,12 +2610,13 @@ AES_cbc_encrypt:
.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0
-.byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6
+.text
.def block_se_handler; .scl 3; .type 32; .endef
.p2align 4
block_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
@@ -2657,6 +2675,7 @@ block_se_handler:
.def key_se_handler; .scl 3; .type 32; .endef
.p2align 4
key_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
@@ -2714,6 +2733,7 @@ key_se_handler:
.def cbc_se_handler; .scl 3; .type 32; .endef
.p2align 4
cbc_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
diff --git a/crypto/aes/aesni-elf-x86_64.S b/crypto/aes/aesni-elf-x86_64.S
index ee26d2f5..022f2221 100644
--- a/crypto/aes/aesni-elf-x86_64.S
+++ b/crypto/aes/aesni-elf-x86_64.S
@@ -1,10 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.globl aesni_encrypt
.type aesni_encrypt,@function
.align 16
aesni_encrypt:
- endbr64
+_CET_ENDBR
movups (%rdi),%xmm2
movl 240(%rdx),%eax
movups (%rdx),%xmm0
@@ -26,7 +32,7 @@ aesni_encrypt:
.type aesni_decrypt,@function
.align 16
aesni_decrypt:
- endbr64
+_CET_ENDBR
movups (%rdi),%xmm2
movl 240(%rdx),%eax
movups (%rdx),%xmm0
@@ -46,7 +52,7 @@ aesni_decrypt:
.type _aesni_encrypt3,@function
.align 16
_aesni_encrypt3:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -80,7 +86,7 @@ _aesni_encrypt3:
.type _aesni_decrypt3,@function
.align 16
_aesni_decrypt3:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -114,7 +120,7 @@ _aesni_decrypt3:
.type _aesni_encrypt4,@function
.align 16
_aesni_encrypt4:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -153,7 +159,7 @@ _aesni_encrypt4:
.type _aesni_decrypt4,@function
.align 16
_aesni_decrypt4:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -192,7 +198,7 @@ _aesni_decrypt4:
.type _aesni_encrypt6,@function
.align 16
_aesni_encrypt6:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -250,7 +256,7 @@ _aesni_encrypt6:
.type _aesni_decrypt6,@function
.align 16
_aesni_decrypt6:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -308,7 +314,7 @@ _aesni_decrypt6:
.type _aesni_encrypt8,@function
.align 16
_aesni_encrypt8:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -379,7 +385,7 @@ _aesni_encrypt8:
.type _aesni_decrypt8,@function
.align 16
_aesni_decrypt8:
- endbr64
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -451,7 +457,7 @@ _aesni_decrypt8:
.type aesni_ecb_encrypt,@function
.align 16
aesni_ecb_encrypt:
- endbr64
+_CET_ENDBR
andq $-16,%rdx
jz .Lecb_ret
@@ -754,7 +760,7 @@ aesni_ecb_encrypt:
.type aesni_ccm64_encrypt_blocks,@function
.align 16
aesni_ccm64_encrypt_blocks:
- endbr64
+_CET_ENDBR
movl 240(%rcx),%eax
movdqu (%r8),%xmm9
movdqa .Lincrement64(%rip),%xmm6
@@ -812,6 +818,7 @@ aesni_ccm64_encrypt_blocks:
.type aesni_ccm64_decrypt_blocks,@function
.align 16
aesni_ccm64_decrypt_blocks:
+_CET_ENDBR
movl 240(%rcx),%eax
movups (%r8),%xmm9
movdqu (%r9),%xmm3
@@ -899,7 +906,7 @@ aesni_ccm64_decrypt_blocks:
.type aesni_ctr32_encrypt_blocks,@function
.align 16
aesni_ctr32_encrypt_blocks:
- endbr64
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $32,%rsp
@@ -1155,6 +1162,7 @@ aesni_ctr32_encrypt_blocks:
.type aesni_xts_encrypt,@function
.align 16
aesni_xts_encrypt:
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $96,%rsp
@@ -1555,6 +1563,7 @@ aesni_xts_encrypt:
.type aesni_xts_decrypt,@function
.align 16
aesni_xts_decrypt:
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $96,%rsp
@@ -1999,6 +2008,7 @@ aesni_xts_decrypt:
.type aesni_cbc_encrypt,@function
.align 16
aesni_cbc_encrypt:
+_CET_ENDBR
testq %rdx,%rdx
jz .Lcbc_ret
@@ -2330,7 +2340,7 @@ aesni_cbc_encrypt:
.type aesni_set_decrypt_key,@function
.align 16
aesni_set_decrypt_key:
- endbr64
+_CET_ENDBR
subq $8,%rsp
call __aesni_set_encrypt_key
shll $4,%esi
@@ -2369,7 +2379,7 @@ aesni_set_decrypt_key:
.type aesni_set_encrypt_key,@function
.align 16
aesni_set_encrypt_key:
- endbr64
+_CET_ENDBR
__aesni_set_encrypt_key:
subq $8,%rsp
movq $-1,%rax
diff --git a/crypto/aes/aesni-macosx-x86_64.S b/crypto/aes/aesni-macosx-x86_64.S
index 3327fc17..1b9b77b2 100644
--- a/crypto/aes/aesni-macosx-x86_64.S
+++ b/crypto/aes/aesni-macosx-x86_64.S
@@ -1,9 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.globl _aesni_encrypt
.p2align 4
_aesni_encrypt:
+_CET_ENDBR
movups (%rdi),%xmm2
movl 240(%rdx),%eax
movups (%rdx),%xmm0
@@ -25,6 +32,7 @@ L$oop_enc1_1:
.p2align 4
_aesni_decrypt:
+_CET_ENDBR
movups (%rdi),%xmm2
movl 240(%rdx),%eax
movups (%rdx),%xmm0
@@ -44,6 +52,7 @@ L$oop_dec1_2:
.p2align 4
_aesni_encrypt3:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -77,6 +86,7 @@ L$enc_loop3:
.p2align 4
_aesni_decrypt3:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -110,6 +120,7 @@ L$dec_loop3:
.p2align 4
_aesni_encrypt4:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -148,6 +159,7 @@ L$enc_loop4:
.p2align 4
_aesni_decrypt4:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -186,6 +198,7 @@ L$dec_loop4:
.p2align 4
_aesni_encrypt6:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -243,6 +256,7 @@ L$enc_loop6_enter:
.p2align 4
_aesni_decrypt6:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -300,6 +314,7 @@ L$dec_loop6_enter:
.p2align 4
_aesni_encrypt8:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -370,6 +385,7 @@ L$enc_loop8_enter:
.p2align 4
_aesni_decrypt8:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -441,6 +457,7 @@ L$dec_loop8_enter:
.p2align 4
_aesni_ecb_encrypt:
+_CET_ENDBR
andq $-16,%rdx
jz L$ecb_ret
@@ -743,6 +760,7 @@ L$ecb_ret:
.p2align 4
_aesni_ccm64_encrypt_blocks:
+_CET_ENDBR
movl 240(%rcx),%eax
movdqu (%r8),%xmm9
movdqa L$increment64(%rip),%xmm6
@@ -800,6 +818,7 @@ L$ccm64_enc2_loop:
.p2align 4
_aesni_ccm64_decrypt_blocks:
+_CET_ENDBR
movl 240(%rcx),%eax
movups (%r8),%xmm9
movdqu (%r9),%xmm3
@@ -887,7 +906,7 @@ L$oop_enc1_6:
.p2align 4
_aesni_ctr32_encrypt_blocks:
- endbr64
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $32,%rsp
@@ -1143,6 +1162,7 @@ L$ctr32_ret:
.p2align 4
_aesni_xts_encrypt:
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $96,%rsp
@@ -1543,6 +1563,7 @@ L$xts_enc_epilogue:
.p2align 4
_aesni_xts_decrypt:
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $96,%rsp
@@ -1987,6 +2008,7 @@ L$xts_dec_epilogue:
.p2align 4
_aesni_cbc_encrypt:
+_CET_ENDBR
testq %rdx,%rdx
jz L$cbc_ret
@@ -2318,6 +2340,7 @@ L$cbc_ret:
.p2align 4
_aesni_set_decrypt_key:
+_CET_ENDBR
subq $8,%rsp
call __aesni_set_encrypt_key
shll $4,%esi
@@ -2356,6 +2379,7 @@ L$SEH_end_set_decrypt_key:
.p2align 4
_aesni_set_encrypt_key:
+_CET_ENDBR
__aesni_set_encrypt_key:
subq $8,%rsp
movq $-1,%rax
@@ -2544,6 +2568,7 @@ L$key_expansion_256b:
retq
+.section __DATA,__const
.p2align 6
L$bswap_mask:
.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
@@ -2553,6 +2578,5 @@ L$increment64:
.long 1,0,0,0
L$xts_magic:
.long 0x87,0,1,0
-
-.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6
+.text
diff --git a/crypto/aes/aesni-masm-x86_64.S b/crypto/aes/aesni-masm-x86_64.S
index 81a3d72a..4cad8786 100644
--- a/crypto/aes/aesni-masm-x86_64.S
+++ b/crypto/aes/aesni-masm-x86_64.S
@@ -1,28 +1,34 @@
; 1 "crypto/aes/aesni-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/aes/aesni-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+
+
+; 40 "./crypto/x86_arch.h"
+
+
@@ -66,12 +72,13 @@ OPTION DOTNAME
-; 3 "crypto/aes/aesni-masm-x86_64.S.tmp" 2
+; 9 "crypto/aes/aesni-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
PUBLIC aesni_encrypt
ALIGN 16
aesni_encrypt PROC PUBLIC
+
movups xmm2,XMMWORD PTR[rcx]
mov eax,DWORD PTR[240+r8]
movups xmm0,XMMWORD PTR[r8]
@@ -93,6 +100,7 @@ PUBLIC aesni_decrypt
ALIGN 16
aesni_decrypt PROC PUBLIC
+
movups xmm2,XMMWORD PTR[rcx]
mov eax,DWORD PTR[240+r8]
movups xmm0,XMMWORD PTR[r8]
@@ -112,6 +120,7 @@ aesni_decrypt ENDP
ALIGN 16
_aesni_encrypt3 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -145,6 +154,7 @@ _aesni_encrypt3 ENDP
ALIGN 16
_aesni_decrypt3 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -178,6 +188,7 @@ _aesni_decrypt3 ENDP
ALIGN 16
_aesni_encrypt4 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -216,6 +227,7 @@ _aesni_encrypt4 ENDP
ALIGN 16
_aesni_decrypt4 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -254,6 +266,7 @@ _aesni_decrypt4 ENDP
ALIGN 16
_aesni_encrypt6 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -311,6 +324,7 @@ _aesni_encrypt6 ENDP
ALIGN 16
_aesni_decrypt6 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -368,6 +382,7 @@ _aesni_decrypt6 ENDP
ALIGN 16
_aesni_encrypt8 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -438,6 +453,7 @@ _aesni_encrypt8 ENDP
ALIGN 16
_aesni_decrypt8 PROC PRIVATE
+
movups xmm0,XMMWORD PTR[rcx]
shr eax,1
movups xmm1,XMMWORD PTR[16+rcx]
@@ -520,6 +536,7 @@ $L$SEH_begin_aesni_ecb_encrypt::
mov r8,QWORD PTR[40+rsp]
+
and rdx,-16
jz $L$ecb_ret
@@ -837,6 +854,7 @@ $L$SEH_begin_aesni_ccm64_encrypt_blocks::
mov r9,QWORD PTR[48+rsp]
+
lea rsp,QWORD PTR[((-88))+rsp]
movaps XMMWORD PTR[rsp],xmm6
movaps XMMWORD PTR[16+rsp],xmm7
@@ -921,6 +939,7 @@ $L$SEH_begin_aesni_ccm64_decrypt_blocks::
mov r9,QWORD PTR[48+rsp]
+
lea rsp,QWORD PTR[((-88))+rsp]
movaps XMMWORD PTR[rsp],xmm6
movaps XMMWORD PTR[16+rsp],xmm7
@@ -1034,7 +1053,7 @@ $L$SEH_begin_aesni_ctr32_encrypt_blocks::
mov r8,QWORD PTR[40+rsp]
- endbr64
+
lea rax,QWORD PTR[rsp]
push rbp
sub rsp,192
@@ -1326,6 +1345,7 @@ $L$SEH_begin_aesni_xts_encrypt::
mov r9,QWORD PTR[48+rsp]
+
lea rax,QWORD PTR[rsp]
push rbp
sub rsp,256
@@ -1762,6 +1782,7 @@ $L$SEH_begin_aesni_xts_decrypt::
mov r9,QWORD PTR[48+rsp]
+
lea rax,QWORD PTR[rsp]
push rbp
sub rsp,256
@@ -2242,6 +2263,7 @@ $L$SEH_begin_aesni_cbc_encrypt::
mov r9,QWORD PTR[48+rsp]
+
test rdx,rdx
jz $L$cbc_ret
@@ -2585,6 +2607,7 @@ PUBLIC aesni_set_decrypt_key
ALIGN 16
aesni_set_decrypt_key PROC PUBLIC
+
sub rsp,8
call __aesni_set_encrypt_key
shl edx,4
@@ -2623,6 +2646,7 @@ PUBLIC aesni_set_encrypt_key
ALIGN 16
aesni_set_encrypt_key PROC PUBLIC
+
__aesni_set_encrypt_key::
sub rsp,8
mov rax,-1
@@ -2811,6 +2835,8 @@ $L$key_expansion_256b::
DB 0F3h,0C3h ;repret
aesni_set_encrypt_key ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
$L$bswap_mask::
DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
@@ -2820,16 +2846,14 @@ $L$increment64::
DD 1,0,0,0
$L$xts_magic::
DD 087h,0,1,0
-
-DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
-DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
-DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
-DB 115,108,46,111,114,103,62,0
ALIGN 64
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
ecb_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
@@ -2849,6 +2873,7 @@ ecb_se_handler ENDP
ALIGN 16
ccm64_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
@@ -2890,6 +2915,7 @@ ccm64_se_handler ENDP
ALIGN 16
ctr32_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
@@ -2925,6 +2951,7 @@ ctr32_se_handler ENDP
ALIGN 16
xts_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
@@ -2964,6 +2991,7 @@ xts_se_handler ENDP
ALIGN 16
cbc_se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
diff --git a/crypto/aes/aesni-mingw64-x86_64.S b/crypto/aes/aesni-mingw64-x86_64.S
index 762bd254..e3f2e9a5 100644
--- a/crypto/aes/aesni-mingw64-x86_64.S
+++ b/crypto/aes/aesni-mingw64-x86_64.S
@@ -1,9 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.globl aesni_encrypt
.def aesni_encrypt; .scl 2; .type 32; .endef
.p2align 4
aesni_encrypt:
+_CET_ENDBR
movups (%rcx),%xmm2
movl 240(%r8),%eax
movups (%r8),%xmm0
@@ -25,6 +32,7 @@ aesni_encrypt:
.def aesni_decrypt; .scl 2; .type 32; .endef
.p2align 4
aesni_decrypt:
+_CET_ENDBR
movups (%rcx),%xmm2
movl 240(%r8),%eax
movups (%r8),%xmm0
@@ -44,6 +52,7 @@ aesni_decrypt:
.def _aesni_encrypt3; .scl 3; .type 32; .endef
.p2align 4
_aesni_encrypt3:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -77,6 +86,7 @@ _aesni_encrypt3:
.def _aesni_decrypt3; .scl 3; .type 32; .endef
.p2align 4
_aesni_decrypt3:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -110,6 +120,7 @@ _aesni_decrypt3:
.def _aesni_encrypt4; .scl 3; .type 32; .endef
.p2align 4
_aesni_encrypt4:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -148,6 +159,7 @@ _aesni_encrypt4:
.def _aesni_decrypt4; .scl 3; .type 32; .endef
.p2align 4
_aesni_decrypt4:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -186,6 +198,7 @@ _aesni_decrypt4:
.def _aesni_encrypt6; .scl 3; .type 32; .endef
.p2align 4
_aesni_encrypt6:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -243,6 +256,7 @@ _aesni_encrypt6:
.def _aesni_decrypt6; .scl 3; .type 32; .endef
.p2align 4
_aesni_decrypt6:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -300,6 +314,7 @@ _aesni_decrypt6:
.def _aesni_encrypt8; .scl 3; .type 32; .endef
.p2align 4
_aesni_encrypt8:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -370,6 +385,7 @@ _aesni_encrypt8:
.def _aesni_decrypt8; .scl 3; .type 32; .endef
.p2align 4
_aesni_decrypt8:
+_CET_ENDBR
movups (%rcx),%xmm0
shrl $1,%eax
movups 16(%rcx),%xmm1
@@ -451,6 +467,7 @@ aesni_ecb_encrypt:
movq %r9,%rcx
movq 40(%rsp),%r8
+_CET_ENDBR
andq $-16,%rdx
jz .Lecb_ret
@@ -766,6 +783,7 @@ aesni_ccm64_encrypt_blocks:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
leaq -88(%rsp),%rsp
movaps %xmm6,(%rsp)
movaps %xmm7,16(%rsp)
@@ -848,6 +866,7 @@ aesni_ccm64_decrypt_blocks:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
leaq -88(%rsp),%rsp
movaps %xmm6,(%rsp)
movaps %xmm7,16(%rsp)
@@ -959,7 +978,7 @@ aesni_ctr32_encrypt_blocks:
movq %r9,%rcx
movq 40(%rsp),%r8
- endbr64
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $192,%rsp
@@ -1249,6 +1268,7 @@ aesni_xts_encrypt:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $256,%rsp
@@ -1683,6 +1703,7 @@ aesni_xts_decrypt:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
leaq (%rsp),%rax
pushq %rbp
subq $256,%rsp
@@ -2161,6 +2182,7 @@ aesni_cbc_encrypt:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
testq %rdx,%rdx
jz .Lcbc_ret
@@ -2503,6 +2525,7 @@ aesni_cbc_encrypt:
.def aesni_set_decrypt_key; .scl 2; .type 32; .endef
.p2align 4
aesni_set_decrypt_key:
+_CET_ENDBR
subq $8,%rsp
call __aesni_set_encrypt_key
shll $4,%edx
@@ -2541,6 +2564,7 @@ aesni_set_decrypt_key:
.def aesni_set_encrypt_key; .scl 2; .type 32; .endef
.p2align 4
aesni_set_encrypt_key:
+_CET_ENDBR
__aesni_set_encrypt_key:
subq $8,%rsp
movq $-1,%rax
@@ -2729,6 +2753,7 @@ __aesni_set_encrypt_key:
retq
+.section .rodata
.p2align 6
.Lbswap_mask:
.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
@@ -2738,13 +2763,13 @@ __aesni_set_encrypt_key:
.long 1,0,0,0
.Lxts_magic:
.long 0x87,0,1,0
-
-.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6
+.text
.def ecb_se_handler; .scl 3; .type 32; .endef
.p2align 4
ecb_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
@@ -2764,6 +2789,7 @@ ecb_se_handler:
.def ccm64_se_handler; .scl 3; .type 32; .endef
.p2align 4
ccm64_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
@@ -2805,6 +2831,7 @@ ccm64_se_handler:
.def ctr32_se_handler; .scl 3; .type 32; .endef
.p2align 4
ctr32_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
@@ -2840,6 +2867,7 @@ ctr32_se_handler:
.def xts_se_handler; .scl 3; .type 32; .endef
.p2align 4
xts_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
@@ -2879,6 +2907,7 @@ xts_se_handler:
.def cbc_se_handler; .scl 3; .type 32; .endef
.p2align 4
cbc_se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
diff --git a/crypto/aes/aesni-sha1-elf-x86_64.S b/crypto/aes/aesni-sha1-elf-x86_64.S
index 0d7e94a1..237d1d8c 100644
--- a/crypto/aes/aesni-sha1-elf-x86_64.S
+++ b/crypto/aes/aesni-sha1-elf-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -7,7 +13,7 @@
.type aesni_cbc_sha1_enc,@function
.align 16
aesni_cbc_sha1_enc:
- endbr64
+_CET_ENDBR
movl OPENSSL_ia32cap_P+0(%rip),%r10d
movl OPENSSL_ia32cap_P+4(%rip),%r11d
@@ -17,7 +23,7 @@ aesni_cbc_sha1_enc:
.type aesni_cbc_sha1_enc_ssse3,@function
.align 16
aesni_cbc_sha1_enc_ssse3:
- endbr64
+_CET_ENDBR
movq 8(%rsp),%r10
diff --git a/crypto/aes/aesni-sha1-macosx-x86_64.S b/crypto/aes/aesni-sha1-macosx-x86_64.S
index 3e88b1ac..ff47a3b8 100644
--- a/crypto/aes/aesni-sha1-macosx-x86_64.S
+++ b/crypto/aes/aesni-sha1-macosx-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -7,6 +13,7 @@
.p2align 4
_aesni_cbc_sha1_enc:
+_CET_ENDBR
movl _OPENSSL_ia32cap_P+0(%rip),%r10d
movl _OPENSSL_ia32cap_P+4(%rip),%r11d
@@ -16,6 +23,7 @@ _aesni_cbc_sha1_enc:
.p2align 4
aesni_cbc_sha1_enc_ssse3:
+_CET_ENDBR
movq 8(%rsp),%r10
@@ -1386,6 +1394,7 @@ L$aesenclast5:
L$epilogue_ssse3:
retq
+.section __DATA,__const
.p2align 6
K_XX_XX:
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
@@ -1393,6 +1402,5 @@ K_XX_XX:
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-
-.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6
+.text
diff --git a/crypto/aes/aesni-sha1-masm-x86_64.S b/crypto/aes/aesni-sha1-masm-x86_64.S
index b87202ad..a4a744b0 100644
--- a/crypto/aes/aesni-sha1-masm-x86_64.S
+++ b/crypto/aes/aesni-sha1-masm-x86_64.S
@@ -1,28 +1,33 @@
; 1 "crypto/aes/aesni-sha1-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/aes/aesni-sha1-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+
+
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,7 +71,8 @@ OPTION DOTNAME
-; 3 "crypto/aes/aesni-sha1-masm-x86_64.S.tmp" 2
+
+; 9 "crypto/aes/aesni-sha1-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN OPENSSL_ia32cap_P:NEAR
@@ -76,6 +82,7 @@ PUBLIC aesni_cbc_sha1_enc
ALIGN 16
aesni_cbc_sha1_enc PROC PUBLIC
+
mov r10d,DWORD PTR[((OPENSSL_ia32cap_P+0))]
mov r11d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
jmp aesni_cbc_sha1_enc_ssse3
@@ -96,6 +103,7 @@ $L$SEH_begin_aesni_cbc_sha1_enc_ssse3::
mov r9,QWORD PTR[48+rsp]
+
mov r10,QWORD PTR[56+rsp]
@@ -1490,6 +1498,8 @@ $L$epilogue_ssse3::
DB 0F3h,0C3h ;repret
$L$SEH_end_aesni_cbc_sha1_enc_ssse3::
aesni_cbc_sha1_enc_ssse3 ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
K_XX_XX::
DD 05a827999h,05a827999h,05a827999h,05a827999h
@@ -1497,17 +1507,14 @@ K_XX_XX::
DD 08f1bbcdch,08f1bbcdch,08f1bbcdch,08f1bbcdch
DD 0ca62c1d6h,0ca62c1d6h,0ca62c1d6h,0ca62c1d6h
DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
-
-DB 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115
-DB 116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52
-DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
-DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
-DB 114,103,62,0
ALIGN 64
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
ssse3_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
diff --git a/crypto/aes/aesni-sha1-mingw64-x86_64.S b/crypto/aes/aesni-sha1-mingw64-x86_64.S
index c7a2d5cb..a5abb15a 100644
--- a/crypto/aes/aesni-sha1-mingw64-x86_64.S
+++ b/crypto/aes/aesni-sha1-mingw64-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -7,6 +13,7 @@
.def aesni_cbc_sha1_enc; .scl 2; .type 32; .endef
.p2align 4
aesni_cbc_sha1_enc:
+_CET_ENDBR
movl OPENSSL_ia32cap_P+0(%rip),%r10d
movl OPENSSL_ia32cap_P+4(%rip),%r11d
@@ -27,6 +34,7 @@ aesni_cbc_sha1_enc_ssse3:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
movq 56(%rsp),%r10
@@ -1420,6 +1428,7 @@ aesni_cbc_sha1_enc_ssse3:
movq 16(%rsp),%rsi
retq
.LSEH_end_aesni_cbc_sha1_enc_ssse3:
+.section .rodata
.p2align 6
K_XX_XX:
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
@@ -1427,13 +1436,13 @@ K_XX_XX:
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-
-.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6
+.text
.def ssse3_handler; .scl 3; .type 32; .endef
.p2align 4
ssse3_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
diff --git a/crypto/aes/bsaes-elf-x86_64.S b/crypto/aes/bsaes-elf-x86_64.S
index 602afd09..264d44df 100644
--- a/crypto/aes/bsaes-elf-x86_64.S
+++ b/crypto/aes/bsaes-elf-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -7,7 +13,7 @@
.type _bsaes_encrypt8,@function
.align 64
_bsaes_encrypt8:
- endbr64
+_CET_ENDBR
leaq .LBS0(%rip),%r11
movdqa (%rax),%xmm8
@@ -480,7 +486,7 @@ _bsaes_encrypt8_bitslice:
.type _bsaes_decrypt8,@function
.align 64
_bsaes_decrypt8:
- endbr64
+_CET_ENDBR
leaq .LBS0(%rip),%r11
movdqa (%rax),%xmm8
@@ -986,7 +992,7 @@ _bsaes_decrypt8:
.type _bsaes_key_convert,@function
.align 16
_bsaes_key_convert:
- endbr64
+_CET_ENDBR
leaq .Lmasks(%rip),%r11
movdqu (%rcx),%xmm7
leaq 16(%rcx),%rcx
@@ -1071,7 +1077,7 @@ _bsaes_key_convert:
.type bsaes_cbc_encrypt,@function
.align 16
bsaes_cbc_encrypt:
- endbr64
+_CET_ENDBR
cmpl $0,%r9d
jne asm_AES_cbc_encrypt
cmpq $128,%rdx
@@ -1322,7 +1328,7 @@ bsaes_cbc_encrypt:
.type bsaes_ctr32_encrypt_blocks,@function
.align 16
bsaes_ctr32_encrypt_blocks:
- endbr64
+_CET_ENDBR
movq %rsp,%rax
.Lctr_enc_prologue:
pushq %rbp
@@ -1522,7 +1528,7 @@ bsaes_ctr32_encrypt_blocks:
.type bsaes_xts_encrypt,@function
.align 16
bsaes_xts_encrypt:
- endbr64
+_CET_ENDBR
movq %rsp,%rax
.Lxts_enc_prologue:
pushq %rbp
@@ -1975,7 +1981,7 @@ bsaes_xts_encrypt:
.type bsaes_xts_decrypt,@function
.align 16
bsaes_xts_decrypt:
- endbr64
+_CET_ENDBR
movq %rsp,%rax
.Lxts_dec_prologue:
pushq %rbp
diff --git a/crypto/aes/bsaes-macosx-x86_64.S b/crypto/aes/bsaes-macosx-x86_64.S
index 5f780f0e..f698ce67 100644
--- a/crypto/aes/bsaes-macosx-x86_64.S
+++ b/crypto/aes/bsaes-macosx-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -7,6 +13,7 @@
.p2align 6
_bsaes_encrypt8:
+_CET_ENDBR
leaq L$BS0(%rip),%r11
movdqa (%rax),%xmm8
@@ -479,6 +486,7 @@ L$enc_done:
.p2align 6
_bsaes_decrypt8:
+_CET_ENDBR
leaq L$BS0(%rip),%r11
movdqa (%rax),%xmm8
@@ -984,6 +992,7 @@ L$dec_done:
.p2align 4
_bsaes_key_convert:
+_CET_ENDBR
leaq L$masks(%rip),%r11
movdqu (%rcx),%xmm7
leaq 16(%rcx),%rcx
@@ -1068,6 +1077,7 @@ L$key_loop:
.p2align 4
_bsaes_cbc_encrypt:
+_CET_ENDBR
cmpl $0,%r9d
jne _asm_AES_cbc_encrypt
cmpq $128,%rdx
@@ -1318,6 +1328,7 @@ L$cbc_dec_epilogue:
.p2align 4
_bsaes_ctr32_encrypt_blocks:
+_CET_ENDBR
movq %rsp,%rax
L$ctr_enc_prologue:
pushq %rbp
@@ -1517,6 +1528,7 @@ L$ctr_enc_epilogue:
.p2align 4
_bsaes_xts_encrypt:
+_CET_ENDBR
movq %rsp,%rax
L$xts_enc_prologue:
pushq %rbp
@@ -1969,6 +1981,7 @@ L$xts_enc_epilogue:
.p2align 4
_bsaes_xts_decrypt:
+_CET_ENDBR
movq %rsp,%rax
L$xts_dec_prologue:
pushq %rbp
@@ -2442,6 +2455,7 @@ L$xts_dec_bzero:
L$xts_dec_epilogue:
retq
+.section __DATA,__const
.p2align 6
_bsaes_const:
@@ -2494,6 +2508,6 @@ L$M0:
.quad 0x02060a0e03070b0f, 0x0004080c0105090d
L$63:
.quad 0x6363636363636363, 0x6363636363636363
-.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0
.p2align 6
+.text
diff --git a/crypto/aes/bsaes-masm-x86_64.S b/crypto/aes/bsaes-masm-x86_64.S
index 7049860e..cc571027 100644
--- a/crypto/aes/bsaes-masm-x86_64.S
+++ b/crypto/aes/bsaes-masm-x86_64.S
@@ -1,28 +1,33 @@
; 1 "crypto/aes/bsaes-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/aes/bsaes-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,7 +71,8 @@ OPTION DOTNAME
-; 3 "crypto/aes/bsaes-masm-x86_64.S.tmp" 2
+
+; 9 "crypto/aes/bsaes-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN asm_AES_encrypt:NEAR
@@ -75,6 +81,7 @@ EXTERN asm_AES_decrypt:NEAR
ALIGN 64
_bsaes_encrypt8 PROC PRIVATE
+
lea r11,QWORD PTR[$L$BS0]
movdqa xmm8,XMMWORD PTR[rax]
@@ -547,6 +554,7 @@ _bsaes_encrypt8 ENDP
ALIGN 64
_bsaes_decrypt8 PROC PRIVATE
+
lea r11,QWORD PTR[$L$BS0]
movdqa xmm8,XMMWORD PTR[rax]
@@ -1052,6 +1060,7 @@ _bsaes_decrypt8 ENDP
ALIGN 16
_bsaes_key_convert PROC PRIVATE
+
lea r11,QWORD PTR[$L$masks]
movdqu xmm7,XMMWORD PTR[rcx]
lea rcx,QWORD PTR[16+rcx]
@@ -1136,6 +1145,7 @@ PUBLIC bsaes_cbc_encrypt
ALIGN 16
bsaes_cbc_encrypt PROC PUBLIC
+
mov r11d,DWORD PTR[48+rsp]
cmp r11d,0
jne asm_AES_cbc_encrypt
@@ -1411,6 +1421,7 @@ PUBLIC bsaes_ctr32_encrypt_blocks
ALIGN 16
bsaes_ctr32_encrypt_blocks PROC PUBLIC
+
mov rax,rsp
$L$ctr_enc_prologue::
push rbp
@@ -1634,6 +1645,7 @@ PUBLIC bsaes_xts_encrypt
ALIGN 16
bsaes_xts_encrypt PROC PUBLIC
+
mov rax,rsp
$L$xts_enc_prologue::
push rbp
@@ -2111,6 +2123,7 @@ PUBLIC bsaes_xts_decrypt
ALIGN 16
bsaes_xts_decrypt PROC PUBLIC
+
mov rax,rsp
$L$xts_dec_prologue::
push rbp
@@ -2609,6 +2622,8 @@ $L$xts_dec_bzero::
$L$xts_dec_epilogue::
DB 0F3h,0C3h ;repret
bsaes_xts_decrypt ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
_bsaes_const::
@@ -2661,17 +2676,15 @@ $L$M0::
DQ 002060a0e03070b0fh,00004080c0105090dh
$L$63::
DQ 06363636363636363h,06363636363636363h
-DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102
-DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44
-DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44
-DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32
-DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0
ALIGN 64
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
diff --git a/crypto/aes/bsaes-mingw64-x86_64.S b/crypto/aes/bsaes-mingw64-x86_64.S
index f0b07cba..c32f9831 100644
--- a/crypto/aes/bsaes-mingw64-x86_64.S
+++ b/crypto/aes/bsaes-mingw64-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -7,6 +13,7 @@
.def _bsaes_encrypt8; .scl 3; .type 32; .endef
.p2align 6
_bsaes_encrypt8:
+_CET_ENDBR
leaq .LBS0(%rip),%r11
movdqa (%rax),%xmm8
@@ -479,6 +486,7 @@ _bsaes_encrypt8_bitslice:
.def _bsaes_decrypt8; .scl 3; .type 32; .endef
.p2align 6
_bsaes_decrypt8:
+_CET_ENDBR
leaq .LBS0(%rip),%r11
movdqa (%rax),%xmm8
@@ -984,6 +992,7 @@ _bsaes_decrypt8:
.def _bsaes_key_convert; .scl 3; .type 32; .endef
.p2align 4
_bsaes_key_convert:
+_CET_ENDBR
leaq .Lmasks(%rip),%r11
movdqu (%rcx),%xmm7
leaq 16(%rcx),%rcx
@@ -1068,6 +1077,7 @@ _bsaes_key_convert:
.def bsaes_cbc_encrypt; .scl 2; .type 32; .endef
.p2align 4
bsaes_cbc_encrypt:
+_CET_ENDBR
movl 48(%rsp),%r11d
cmpl $0,%r11d
jne asm_AES_cbc_encrypt
@@ -1343,6 +1353,7 @@ bsaes_cbc_encrypt:
.def bsaes_ctr32_encrypt_blocks; .scl 2; .type 32; .endef
.p2align 4
bsaes_ctr32_encrypt_blocks:
+_CET_ENDBR
movq %rsp,%rax
.Lctr_enc_prologue:
pushq %rbp
@@ -1566,6 +1577,7 @@ bsaes_ctr32_encrypt_blocks:
.def bsaes_xts_encrypt; .scl 2; .type 32; .endef
.p2align 4
bsaes_xts_encrypt:
+_CET_ENDBR
movq %rsp,%rax
.Lxts_enc_prologue:
pushq %rbp
@@ -2043,6 +2055,7 @@ bsaes_xts_encrypt:
.def bsaes_xts_decrypt; .scl 2; .type 32; .endef
.p2align 4
bsaes_xts_decrypt:
+_CET_ENDBR
movq %rsp,%rax
.Lxts_dec_prologue:
pushq %rbp
@@ -2541,6 +2554,7 @@ bsaes_xts_decrypt:
.Lxts_dec_epilogue:
retq
+.section .rodata
.p2align 6
_bsaes_const:
@@ -2593,13 +2607,14 @@ _bsaes_const:
.quad 0x02060a0e03070b0f, 0x0004080c0105090d
.L63:
.quad 0x6363636363636363, 0x6363636363636363
-.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0
.p2align 6
+.text
.def se_handler; .scl 3; .type 32; .endef
.p2align 4
se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
diff --git a/crypto/aes/vpaes-elf-x86_64.S b/crypto/aes/vpaes-elf-x86_64.S
index 67ff646c..bb693a09 100644
--- a/crypto/aes/vpaes-elf-x86_64.S
+++ b/crypto/aes/vpaes-elf-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -19,7 +25,7 @@
.type _vpaes_encrypt_core,@function
.align 16
_vpaes_encrypt_core:
- endbr64
+_CET_ENDBR
movq %rdx,%r9
movq $16,%r11
movl 240(%rdx),%eax
@@ -110,7 +116,7 @@ _vpaes_encrypt_core:
.type _vpaes_decrypt_core,@function
.align 16
_vpaes_decrypt_core:
- endbr64
+_CET_ENDBR
movq %rdx,%r9
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
@@ -218,7 +224,7 @@ _vpaes_decrypt_core:
.type _vpaes_schedule_core,@function
.align 16
_vpaes_schedule_core:
- endbr64
+_CET_ENDBR
@@ -404,7 +410,7 @@ _vpaes_schedule_core:
.type _vpaes_schedule_192_smear,@function
.align 16
_vpaes_schedule_192_smear:
- endbr64
+_CET_ENDBR
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
@@ -436,7 +442,7 @@ _vpaes_schedule_192_smear:
.type _vpaes_schedule_round,@function
.align 16
_vpaes_schedule_round:
- endbr64
+_CET_ENDBR
pxor %xmm1,%xmm1
.byte 102,65,15,58,15,200,15
@@ -504,7 +510,7 @@ _vpaes_schedule_low_round:
.type _vpaes_schedule_transform,@function
.align 16
_vpaes_schedule_transform:
- endbr64
+_CET_ENDBR
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
@@ -543,7 +549,7 @@ _vpaes_schedule_transform:
.type _vpaes_schedule_mangle,@function
.align 16
_vpaes_schedule_mangle:
- endbr64
+_CET_ENDBR
movdqa %xmm0,%xmm4
movdqa .Lk_mc_forward(%rip),%xmm5
testq %rcx,%rcx
@@ -617,7 +623,7 @@ _vpaes_schedule_mangle:
.type vpaes_set_encrypt_key,@function
.align 16
vpaes_set_encrypt_key:
- endbr64
+_CET_ENDBR
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
@@ -634,7 +640,7 @@ vpaes_set_encrypt_key:
.type vpaes_set_decrypt_key,@function
.align 16
vpaes_set_decrypt_key:
- endbr64
+_CET_ENDBR
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
@@ -656,7 +662,7 @@ vpaes_set_decrypt_key:
.type vpaes_encrypt,@function
.align 16
vpaes_encrypt:
- endbr64
+_CET_ENDBR
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_encrypt_core
@@ -668,7 +674,7 @@ vpaes_encrypt:
.type vpaes_decrypt,@function
.align 16
vpaes_decrypt:
- endbr64
+_CET_ENDBR
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_decrypt_core
@@ -679,7 +685,7 @@ vpaes_decrypt:
.type vpaes_cbc_encrypt,@function
.align 16
vpaes_cbc_encrypt:
- endbr64
+_CET_ENDBR
xchgq %rcx,%rdx
subq $16,%rcx
jc .Lcbc_abort
@@ -725,7 +731,7 @@ vpaes_cbc_encrypt:
.type _vpaes_preheat,@function
.align 16
_vpaes_preheat:
- endbr64
+_CET_ENDBR
leaq .Lk_s0F(%rip),%r10
movdqa -32(%r10),%xmm10
movdqa -16(%r10),%xmm11
diff --git a/crypto/aes/vpaes-macosx-x86_64.S b/crypto/aes/vpaes-macosx-x86_64.S
index 0a892a9d..a6675232 100644
--- a/crypto/aes/vpaes-macosx-x86_64.S
+++ b/crypto/aes/vpaes-macosx-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -19,6 +25,7 @@
.p2align 4
_vpaes_encrypt_core:
+_CET_ENDBR
movq %rdx,%r9
movq $16,%r11
movl 240(%rdx),%eax
@@ -109,6 +116,7 @@ L$enc_entry:
.p2align 4
_vpaes_decrypt_core:
+_CET_ENDBR
movq %rdx,%r9
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
@@ -216,6 +224,7 @@ L$dec_entry:
.p2align 4
_vpaes_schedule_core:
+_CET_ENDBR
@@ -401,6 +410,7 @@ L$schedule_mangle_last_dec:
.p2align 4
_vpaes_schedule_192_smear:
+_CET_ENDBR
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
@@ -432,6 +442,7 @@ _vpaes_schedule_192_smear:
.p2align 4
_vpaes_schedule_round:
+_CET_ENDBR
pxor %xmm1,%xmm1
.byte 102,65,15,58,15,200,15
@@ -499,6 +510,7 @@ _vpaes_schedule_low_round:
.p2align 4
_vpaes_schedule_transform:
+_CET_ENDBR
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
@@ -537,6 +549,7 @@ _vpaes_schedule_transform:
.p2align 4
_vpaes_schedule_mangle:
+_CET_ENDBR
movdqa %xmm0,%xmm4
movdqa L$k_mc_forward(%rip),%xmm5
testq %rcx,%rcx
@@ -610,6 +623,7 @@ L$schedule_mangle_both:
.p2align 4
_vpaes_set_encrypt_key:
+_CET_ENDBR
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
@@ -626,6 +640,7 @@ _vpaes_set_encrypt_key:
.p2align 4
_vpaes_set_decrypt_key:
+_CET_ENDBR
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
@@ -647,6 +662,7 @@ _vpaes_set_decrypt_key:
.p2align 4
_vpaes_encrypt:
+_CET_ENDBR
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_encrypt_core
@@ -658,6 +674,7 @@ _vpaes_encrypt:
.p2align 4
_vpaes_decrypt:
+_CET_ENDBR
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_decrypt_core
@@ -668,6 +685,7 @@ _vpaes_decrypt:
.p2align 4
_vpaes_cbc_encrypt:
+_CET_ENDBR
xchgq %rcx,%rdx
subq $16,%rcx
jc L$cbc_abort
@@ -713,6 +731,7 @@ L$cbc_abort:
.p2align 4
_vpaes_preheat:
+_CET_ENDBR
leaq L$k_s0F(%rip),%r10
movdqa -32(%r10),%xmm10
movdqa -16(%r10),%xmm11
@@ -728,6 +747,7 @@ _vpaes_preheat:
+.section __DATA,__const
.p2align 6
_vpaes_consts:
@@ -824,6 +844,6 @@ L$k_dsbe:
L$k_dsbo:
.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
-.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
.p2align 6
+.text
diff --git a/crypto/aes/vpaes-masm-x86_64.S b/crypto/aes/vpaes-masm-x86_64.S
index fa24314e..6e7a5f8f 100644
--- a/crypto/aes/vpaes-masm-x86_64.S
+++ b/crypto/aes/vpaes-masm-x86_64.S
@@ -1,29 +1,33 @@
; 1 "crypto/aes/vpaes-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/aes/vpaes-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
+
-; 40 "./crypto/x86_arch.h"
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,7 +70,9 @@ OPTION DOTNAME
-; 3 "crypto/aes/vpaes-masm-x86_64.S.tmp" 2
+
+
+; 9 "crypto/aes/vpaes-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
@@ -87,6 +93,7 @@ OPTION DOTNAME
ALIGN 16
_vpaes_encrypt_core PROC PRIVATE
+
mov r9,rdx
mov r11,16
mov eax,DWORD PTR[240+rdx]
@@ -177,6 +184,7 @@ _vpaes_encrypt_core ENDP
ALIGN 16
_vpaes_decrypt_core PROC PRIVATE
+
mov r9,rdx
mov eax,DWORD PTR[240+rdx]
movdqa xmm1,xmm9
@@ -289,6 +297,7 @@ _vpaes_schedule_core PROC PRIVATE
+
call _vpaes_preheat
movdqa xmm8,XMMWORD PTR[$L$k_rcon]
movdqu xmm0,XMMWORD PTR[rdi]
@@ -469,6 +478,7 @@ _vpaes_schedule_core ENDP
ALIGN 16
_vpaes_schedule_192_smear PROC PRIVATE
+
pshufd xmm0,xmm6,080h
pxor xmm6,xmm0
pshufd xmm0,xmm7,0FEh
@@ -501,6 +511,7 @@ _vpaes_schedule_192_smear ENDP
ALIGN 16
_vpaes_schedule_round PROC PRIVATE
+
pxor xmm1,xmm1
DB 102,65,15,58,15,200,15
DB 102,69,15,58,15,192,15
@@ -567,6 +578,7 @@ _vpaes_schedule_round ENDP
ALIGN 16
_vpaes_schedule_transform PROC PRIVATE
+
movdqa xmm1,xmm9
pandn xmm1,xmm0
psrld xmm1,4
@@ -605,6 +617,7 @@ _vpaes_schedule_transform ENDP
ALIGN 16
_vpaes_schedule_mangle PROC PRIVATE
+
movdqa xmm4,xmm0
movdqa xmm5,XMMWORD PTR[$L$k_mc_forward]
test rcx,rcx
@@ -687,6 +700,7 @@ $L$SEH_begin_vpaes_set_encrypt_key::
mov rdx,r8
+
lea rsp,QWORD PTR[((-184))+rsp]
movaps XMMWORD PTR[16+rsp],xmm6
movaps XMMWORD PTR[32+rsp],xmm7
@@ -739,6 +753,7 @@ $L$SEH_begin_vpaes_set_decrypt_key::
mov rdx,r8
+
lea rsp,QWORD PTR[((-184))+rsp]
movaps XMMWORD PTR[16+rsp],xmm6
movaps XMMWORD PTR[32+rsp],xmm7
@@ -796,6 +811,7 @@ $L$SEH_begin_vpaes_encrypt::
mov rdx,r8
+
lea rsp,QWORD PTR[((-184))+rsp]
movaps XMMWORD PTR[16+rsp],xmm6
movaps XMMWORD PTR[32+rsp],xmm7
@@ -843,6 +859,7 @@ $L$SEH_begin_vpaes_decrypt::
mov rdx,r8
+
lea rsp,QWORD PTR[((-184))+rsp]
movaps XMMWORD PTR[16+rsp],xmm6
movaps XMMWORD PTR[32+rsp],xmm7
@@ -892,6 +909,7 @@ $L$SEH_begin_vpaes_cbc_encrypt::
mov r9,QWORD PTR[48+rsp]
+
xchg rdx,rcx
sub rcx,16
jc $L$cbc_abort
@@ -964,6 +982,7 @@ vpaes_cbc_encrypt ENDP
ALIGN 16
_vpaes_preheat PROC PRIVATE
+
lea r10,QWORD PTR[$L$k_s0F]
movdqa xmm10,XMMWORD PTR[((-32))+r10]
movdqa xmm11,XMMWORD PTR[((-16))+r10]
@@ -979,6 +998,8 @@ _vpaes_preheat ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
_vpaes_consts::
@@ -1075,17 +1096,15 @@ $L$k_dsbe::
$L$k_dsbo::
DQ 01387EA537EF94000h,0C7AA6DB9D4943E2Dh
DQ 012D7560F93441D00h,0CA4B8159D8C58E9Ch
-DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
-DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54
-DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97
-DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32
-DB 85,110,105,118,101,114,115,105,116,121,41,0
ALIGN 64
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
se_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
diff --git a/crypto/aes/vpaes-mingw64-x86_64.S b/crypto/aes/vpaes-mingw64-x86_64.S
index d6cb8605..f4e50935 100644
--- a/crypto/aes/vpaes-mingw64-x86_64.S
+++ b/crypto/aes/vpaes-mingw64-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -19,6 +25,7 @@
.def _vpaes_encrypt_core; .scl 3; .type 32; .endef
.p2align 4
_vpaes_encrypt_core:
+_CET_ENDBR
movq %rdx,%r9
movq $16,%r11
movl 240(%rdx),%eax
@@ -109,6 +116,7 @@ _vpaes_encrypt_core:
.def _vpaes_decrypt_core; .scl 3; .type 32; .endef
.p2align 4
_vpaes_decrypt_core:
+_CET_ENDBR
movq %rdx,%r9
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
@@ -216,6 +224,7 @@ _vpaes_decrypt_core:
.def _vpaes_schedule_core; .scl 3; .type 32; .endef
.p2align 4
_vpaes_schedule_core:
+_CET_ENDBR
@@ -401,6 +410,7 @@ _vpaes_schedule_core:
.def _vpaes_schedule_192_smear; .scl 3; .type 32; .endef
.p2align 4
_vpaes_schedule_192_smear:
+_CET_ENDBR
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
@@ -432,6 +442,7 @@ _vpaes_schedule_192_smear:
.def _vpaes_schedule_round; .scl 3; .type 32; .endef
.p2align 4
_vpaes_schedule_round:
+_CET_ENDBR
pxor %xmm1,%xmm1
.byte 102,65,15,58,15,200,15
@@ -499,6 +510,7 @@ _vpaes_schedule_low_round:
.def _vpaes_schedule_transform; .scl 3; .type 32; .endef
.p2align 4
_vpaes_schedule_transform:
+_CET_ENDBR
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
@@ -537,6 +549,7 @@ _vpaes_schedule_transform:
.def _vpaes_schedule_mangle; .scl 3; .type 32; .endef
.p2align 4
_vpaes_schedule_mangle:
+_CET_ENDBR
movdqa %xmm0,%xmm4
movdqa .Lk_mc_forward(%rip),%xmm5
testq %rcx,%rcx
@@ -618,6 +631,7 @@ vpaes_set_encrypt_key:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
leaq -184(%rsp),%rsp
movaps %xmm6,16(%rsp)
movaps %xmm7,32(%rsp)
@@ -668,6 +682,7 @@ vpaes_set_decrypt_key:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
leaq -184(%rsp),%rsp
movaps %xmm6,16(%rsp)
movaps %xmm7,32(%rsp)
@@ -723,6 +738,7 @@ vpaes_encrypt:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
leaq -184(%rsp),%rsp
movaps %xmm6,16(%rsp)
movaps %xmm7,32(%rsp)
@@ -768,6 +784,7 @@ vpaes_decrypt:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
leaq -184(%rsp),%rsp
movaps %xmm6,16(%rsp)
movaps %xmm7,32(%rsp)
@@ -815,6 +832,7 @@ vpaes_cbc_encrypt:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
xchgq %rcx,%rdx
subq $16,%rcx
jc .Lcbc_abort
@@ -886,6 +904,7 @@ vpaes_cbc_encrypt:
.def _vpaes_preheat; .scl 3; .type 32; .endef
.p2align 4
_vpaes_preheat:
+_CET_ENDBR
leaq .Lk_s0F(%rip),%r10
movdqa -32(%r10),%xmm10
movdqa -16(%r10),%xmm11
@@ -901,6 +920,7 @@ _vpaes_preheat:
+.section .rodata
.p2align 6
_vpaes_consts:
@@ -997,13 +1017,14 @@ _vpaes_consts:
.Lk_dsbo:
.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
-.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
.p2align 6
+.text
.def se_handler; .scl 3; .type 32; .endef
.p2align 4
se_handler:
+_CET_ENDBR
pushq %rsi
pushq %rdi
pushq %rbx
diff --git a/crypto/asn1/a_bitstr.c b/crypto/asn1/a_bitstr.c
index 7ea3e12b..851a3a3d 100644
--- a/crypto/asn1/a_bitstr.c
+++ b/crypto/asn1/a_bitstr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: a_bitstr.c,v 1.41 2023/07/28 10:33:13 tb Exp $ */
+/* $OpenBSD: a_bitstr.c,v 1.42 2023/12/25 22:02:59 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -120,20 +120,24 @@ ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
int w, v, iv;
unsigned char *c;
- w = n/8;
+ if (a == NULL)
+ return 0;
+ if (n < 0)
+ return 0;
+
+ w = n / 8;
v = 1 << (7 - (n & 0x07));
iv = ~v;
- if (!value)
- v = 0;
- if (a == NULL)
- return 0;
+ if (value == 0)
+ v = 0;
asn1_abs_clear_unused_bits(a);
- if ((a->length < (w + 1)) || (a->data == NULL)) {
- if (!value)
- return(1); /* Don't need to set */
+ if (a->length < w + 1 || a->data == NULL) {
+ /* Don't expand if there's no bit to set. */
+ if (value == 0)
+ return 1;
if ((c = recallocarray(a->data, a->length, w + 1, 1)) == NULL) {
ASN1error(ERR_R_MALLOC_FAILURE);
return 0;
@@ -141,11 +145,12 @@ ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
a->data = c;
a->length = w + 1;
}
+
a->data[w] = ((a->data[w]) & iv) | v;
- while ((a->length > 0) && (a->data[a->length - 1] == 0))
+ while (a->length > 0 && a->data[a->length - 1] == 0)
a->length--;
- return (1);
+ return 1;
}
LCRYPTO_ALIAS(ASN1_BIT_STRING_set_bit);
@@ -154,11 +159,18 @@ ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
{
int w, v;
+ if (a == NULL)
+ return 0;
+ if (n < 0)
+ return 0;
+
w = n / 8;
v = 1 << (7 - (n & 0x07));
- if ((a == NULL) || (a->length < (w + 1)) || (a->data == NULL))
- return (0);
- return ((a->data[w] & v) != 0);
+
+ if (a->length < w + 1 || a->data == NULL)
+ return 0;
+
+ return (a->data[w] & v) != 0;
}
LCRYPTO_ALIAS(ASN1_BIT_STRING_get_bit);
diff --git a/crypto/asn1/a_pkey.c b/crypto/asn1/a_pkey.c
index 6e715d4f..1e8ebc91 100644
--- a/crypto/asn1/a_pkey.c
+++ b/crypto/asn1/a_pkey.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: a_pkey.c,v 1.6 2023/07/07 19:37:52 beck Exp $ */
+/* $OpenBSD: a_pkey.c,v 1.7 2023/11/19 15:46:09 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -67,10 +67,6 @@
#include
#include
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
-
#include "asn1_local.h"
#include "evp_local.h"
@@ -87,10 +83,6 @@ d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, long length)
}
} else {
ret = *a;
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_finish(ret->engine);
- ret->engine = NULL;
-#endif
}
if (!EVP_PKEY_set_type(ret, type)) {
diff --git a/crypto/asn1/a_strnid.c b/crypto/asn1/a_strnid.c
index 2542119e..5fa60b9c 100644
--- a/crypto/asn1/a_strnid.c
+++ b/crypto/asn1/a_strnid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: a_strnid.c,v 1.27 2023/07/05 21:23:36 beck Exp $ */
+/* $OpenBSD: a_strnid.c,v 1.31 2024/03/02 08:54:02 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -65,20 +65,13 @@
#include
#include
-static STACK_OF(ASN1_STRING_TABLE) *stable = NULL;
-
-static ASN1_STRING_TABLE *stable_get(int nid);
-static void st_free(ASN1_STRING_TABLE *tbl);
-static int sk_table_cmp(const ASN1_STRING_TABLE * const *a,
- const ASN1_STRING_TABLE * const *b);
-
-
/*
+ * XXX - unprotected global state
+ *
* This is the global mask for the mbstring functions: this is used to
* mask out certain types (such as BMPString and UTF8String) because
* certain software (e.g. Netscape) has problems with them.
*/
-
static unsigned long global_mask = B_ASN1_UTF8STRING;
void
@@ -148,7 +141,7 @@ ASN1_STRING *
ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in, int inlen,
int inform, int nid)
{
- ASN1_STRING_TABLE *tbl;
+ const ASN1_STRING_TABLE *tbl;
ASN1_STRING *str = NULL;
unsigned long mask;
int ret;
@@ -171,12 +164,7 @@ ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in, int inlen,
}
LCRYPTO_ALIAS(ASN1_STRING_set_by_NID);
-/*
- * Now the tables and helper functions for the string table:
- */
-
-/* size limits: this stuff is taken straight from RFC3280 */
-
+/* From RFC 5280, Appendix A.1. */
#define ub_name 32768
#define ub_common_name 64
#define ub_locality_name 128
@@ -184,12 +172,9 @@ LCRYPTO_ALIAS(ASN1_STRING_set_by_NID);
#define ub_organization_name 64
#define ub_organization_unit_name 64
#define ub_title 64
-#define ub_email_address 128
+#define ub_email_address 128 /* XXX - bumped to 255 in RFC 5280 */
#define ub_serial_number 64
-
-/* This table must be kept in NID order */
-
static const ASN1_STRING_TABLE tbl_standard[] = {
{
.nid = NID_commonName,
@@ -326,138 +311,19 @@ static const ASN1_STRING_TABLE tbl_standard[] = {
},
};
-static int
-sk_table_cmp(const ASN1_STRING_TABLE * const *a,
- const ASN1_STRING_TABLE * const *b)
-{
- return (*a)->nid - (*b)->nid;
-}
-
-static int table_cmp_BSEARCH_CMP_FN(const void *, const void *);
-static int table_cmp(ASN1_STRING_TABLE const *, ASN1_STRING_TABLE const *);
-static ASN1_STRING_TABLE *OBJ_bsearch_table(ASN1_STRING_TABLE *key, ASN1_STRING_TABLE const *base, int num);
+#define N_STRING_TABLE_ENTRIES (sizeof(tbl_standard) / sizeof(tbl_standard[0]))
-static int
-table_cmp(const ASN1_STRING_TABLE *a, const ASN1_STRING_TABLE *b)
-{
- return a->nid - b->nid;
-}
-
-
-static int
-table_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_)
-{
- ASN1_STRING_TABLE const *a = a_;
- ASN1_STRING_TABLE const *b = b_;
- return table_cmp(a, b);
-}
-
-static ASN1_STRING_TABLE *
-OBJ_bsearch_table(ASN1_STRING_TABLE *key, ASN1_STRING_TABLE const *base, int num)
-{
- return (ASN1_STRING_TABLE *)OBJ_bsearch_(key, base, num, sizeof(ASN1_STRING_TABLE),
- table_cmp_BSEARCH_CMP_FN);
-}
-
-ASN1_STRING_TABLE *
+const ASN1_STRING_TABLE *
ASN1_STRING_TABLE_get(int nid)
{
- int idx;
- ASN1_STRING_TABLE fnd;
-
- fnd.nid = nid;
- if (stable != NULL) {
- idx = sk_ASN1_STRING_TABLE_find(stable, &fnd);
- if (idx >= 0)
- return sk_ASN1_STRING_TABLE_value(stable, idx);
- }
- return OBJ_bsearch_table(&fnd, tbl_standard,
- sizeof(tbl_standard) / sizeof(tbl_standard[0]));
-}
-LCRYPTO_ALIAS(ASN1_STRING_TABLE_get);
-
-/*
- * Return a string table pointer which can be modified: either directly
- * from table or a copy of an internal value added to the table.
- */
-
-static ASN1_STRING_TABLE *
-stable_get(int nid)
-{
- ASN1_STRING_TABLE *tmp, *rv;
-
- /* Always need a string table so allocate one if NULL */
- if (stable == NULL) {
- stable = sk_ASN1_STRING_TABLE_new(sk_table_cmp);
- if (stable == NULL)
- return NULL;
- }
- tmp = ASN1_STRING_TABLE_get(nid);
- if (tmp != NULL && (tmp->flags & STABLE_FLAGS_MALLOC) != 0)
- return tmp;
-
- if ((rv = calloc(1, sizeof(*rv))) == NULL) {
- ASN1error(ERR_R_MALLOC_FAILURE);
- return NULL;
- }
- if (!sk_ASN1_STRING_TABLE_push(stable, rv)) {
- free(rv);
- return NULL;
- }
- if (tmp != NULL) {
- rv->nid = tmp->nid;
- rv->minsize = tmp->minsize;
- rv->maxsize = tmp->maxsize;
- rv->mask = tmp->mask;
- rv->flags = tmp->flags | STABLE_FLAGS_MALLOC;
- } else {
- rv->nid = nid;
- rv->minsize = -1;
- rv->maxsize = -1;
- rv->flags = STABLE_FLAGS_MALLOC;
- }
- return rv;
-}
-
-int
-ASN1_STRING_TABLE_add(int nid, long minsize, long maxsize, unsigned long mask,
- unsigned long flags)
-{
- ASN1_STRING_TABLE *tmp;
+ size_t i;
- if ((tmp = stable_get(nid)) == NULL) {
- ASN1error(ERR_R_MALLOC_FAILURE);
- return 0;
+ for (i = 0; i < N_STRING_TABLE_ENTRIES; i++) {
+ const ASN1_STRING_TABLE *entry = &tbl_standard[i];
+ if (entry->nid == nid)
+ return entry;
}
- if (minsize >= 0)
- tmp->minsize = minsize;
- if (maxsize >= 0)
- tmp->maxsize = maxsize;
- if (mask != 0)
- tmp->mask = mask;
- if (flags != 0)
- tmp->flags = flags | STABLE_FLAGS_MALLOC;
-
- return 1;
-}
-LCRYPTO_ALIAS(ASN1_STRING_TABLE_add);
-void
-ASN1_STRING_TABLE_cleanup(void)
-{
- STACK_OF(ASN1_STRING_TABLE) *tmp;
-
- tmp = stable;
- if (tmp == NULL)
- return;
- stable = NULL;
- sk_ASN1_STRING_TABLE_pop_free(tmp, st_free);
-}
-LCRYPTO_ALIAS(ASN1_STRING_TABLE_cleanup);
-
-static void
-st_free(ASN1_STRING_TABLE *tbl)
-{
- if (tbl->flags & STABLE_FLAGS_MALLOC)
- free(tbl);
+ return NULL;
}
+LCRYPTO_ALIAS(ASN1_STRING_TABLE_get);
diff --git a/crypto/asn1/a_time_posix.c b/crypto/asn1/a_time_posix.c
index 9327aa8b..d4439b47 100644
--- a/crypto/asn1/a_time_posix.c
+++ b/crypto/asn1/a_time_posix.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: a_time_posix.c,v 1.3 2023/01/01 16:58:23 miod Exp $ */
+/* $OpenBSD: a_time_posix.c,v 1.5 2024/02/18 16:28:38 tb Exp $ */
/*
* Copyright (c) 2022, Google Inc.
* Copyright (c) 2022, Bob Beck
@@ -23,9 +23,15 @@
#include
#include
+#include
#include
#include
+#include
+#include
+
+#include "crypto_internal.h"
+
#define SECS_PER_HOUR (int64_t)(60 * 60)
#define SECS_PER_DAY (int64_t)(24 * SECS_PER_HOUR)
@@ -34,7 +40,7 @@
* to 9999?
*/
static int
-is_valid_date(int year, int month, int day)
+is_valid_date(int64_t year, int64_t month, int64_t day)
{
int days_in_month;
if (day < 1 || month < 1 || year < 0 || year > 9999)
@@ -78,13 +84,16 @@ is_valid_time(int hours, int minutes, int seconds)
minutes <= 59 && seconds <= 59;
}
+/* 0000-01-01 00:00:00 UTC */
+#define MIN_POSIX_TIME INT64_C(-62167219200)
+/* 9999-12-31 23:59:59 UTC */
+#define MAX_POSIX_TIME INT64_C(253402300799)
+
/* Is a int64 time representing a time within our expected range? */
static int
-is_valid_epoch_time(int64_t time)
+is_valid_posix_time(int64_t time)
{
- /* 0000-01-01 00:00:00 UTC to 9999-12-31 23:59:59 UTC */
- return (int64_t)-62167219200LL <= time &&
- time <= (int64_t)253402300799LL;
+ return MIN_POSIX_TIME <= time && time <= MAX_POSIX_TIME;
}
/*
@@ -93,8 +102,8 @@ is_valid_epoch_time(int64_t time)
* (Public Domain)
*/
static int
-posix_time_from_utc(int year, int month, int day, int hours, int minutes,
- int seconds, int64_t *out_time)
+posix_time_from_utc(int64_t year, int64_t month, int64_t day, int64_t hours,
+ int64_t minutes, int64_t seconds, int64_t *out_time)
{
int64_t era, year_of_era, day_of_year, day_of_era, posix_days;
@@ -130,7 +139,7 @@ utc_from_posix_time(int64_t time, int *out_year, int *out_month, int *out_day,
int64_t days, leftover_seconds, era, day_of_era, year_of_era,
day_of_year, month_of_year;
- if (!is_valid_epoch_time(time))
+ if (!is_valid_posix_time(time))
return 0;
days = time / SECS_PER_DAY;
@@ -165,40 +174,41 @@ utc_from_posix_time(int64_t time, int *out_year, int *out_month, int *out_day,
return 1;
}
-static int
-asn1_time_tm_to_posix(const struct tm *tm, int64_t *out)
+int
+OPENSSL_tm_to_posix(const struct tm *tm, int64_t *out)
{
- /* Ensure additions below do not overflow */
- if (tm->tm_year > 9999)
- return 0;
- if (tm->tm_mon > 12)
- return 0;
-
- return posix_time_from_utc(tm->tm_year + 1900, tm->tm_mon + 1,
- tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, out);
+ return posix_time_from_utc(tm->tm_year + (int64_t)1900,
+ tm->tm_mon + (int64_t)1, tm->tm_mday, tm->tm_hour, tm->tm_min,
+ tm->tm_sec, out);
}
+LCRYPTO_ALIAS(OPENSSL_tm_to_posix);
-static int
-asn1_time_posix_to_tm(int64_t time, struct tm *out_tm)
+int
+OPENSSL_posix_to_tm(int64_t time, struct tm *out_tm)
{
- memset(out_tm, 0, sizeof(struct tm));
- if (!utc_from_posix_time(time, &out_tm->tm_year, &out_tm->tm_mon,
- &out_tm->tm_mday, &out_tm->tm_hour, &out_tm->tm_min,
- &out_tm->tm_sec))
+ struct tm tmp_tm = {0};
+
+ memset(out_tm, 0, sizeof(*out_tm));
+
+ if (!utc_from_posix_time(time, &tmp_tm.tm_year, &tmp_tm.tm_mon,
+ &tmp_tm.tm_mday, &tmp_tm.tm_hour, &tmp_tm.tm_min, &tmp_tm.tm_sec))
return 0;
- out_tm->tm_year -= 1900;
- out_tm->tm_mon -= 1;
+ tmp_tm.tm_year -= 1900;
+ tmp_tm.tm_mon -= 1;
+
+ *out_tm = tmp_tm;
return 1;
}
+LCRYPTO_ALIAS(OPENSSL_posix_to_tm);
int
asn1_time_tm_to_time_t(const struct tm *tm, time_t *out)
{
int64_t posix_time;
- if (!asn1_time_tm_to_posix(tm, &posix_time))
+ if (!OPENSSL_tm_to_posix(tm, &posix_time))
return 0;
#ifdef SMALL_TIME_T
@@ -217,31 +227,46 @@ asn1_time_time_t_to_tm(const time_t *time, struct tm *out_tm)
{
int64_t posix_time = *time;
- return asn1_time_posix_to_tm(posix_time, out_tm);
+ return OPENSSL_posix_to_tm(posix_time, out_tm);
}
int
-OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec)
+OPENSSL_timegm(const struct tm *tm, time_t *out) {
+ return asn1_time_tm_to_time_t(tm, out);
+}
+LCRYPTO_ALIAS(OPENSSL_timegm);
+
+struct tm *
+OPENSSL_gmtime(const time_t *time, struct tm *out_tm) {
+ if (!asn1_time_time_t_to_tm(time, out_tm))
+ return NULL;
+ return out_tm;
+}
+LCRYPTO_ALIAS(OPENSSL_gmtime);
+
+/* Public API in OpenSSL. BoringSSL uses int64_t instead of long. */
+int
+OPENSSL_gmtime_adj(struct tm *tm, int offset_day, int64_t offset_sec)
{
int64_t posix_time;
- /* Ensure additions below do not overflow */
- if (tm->tm_year > 9999)
- return 0;
- if (tm->tm_mon > 12)
+ if (!OPENSSL_tm_to_posix(tm, &posix_time))
return 0;
- if (!posix_time_from_utc(tm->tm_year + 1900, tm->tm_mon + 1,
- tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, &posix_time))
- return 0;
+ CTASSERT(INT_MAX <= INT64_MAX / SECS_PER_DAY);
+ CTASSERT(MAX_POSIX_TIME <= INT64_MAX - INT_MAX * SECS_PER_DAY);
+ CTASSERT(MIN_POSIX_TIME >= INT64_MIN - INT_MIN * SECS_PER_DAY);
+
+ posix_time += offset_day * SECS_PER_DAY;
- if (!utc_from_posix_time(posix_time + off_day * SECS_PER_DAY +
- offset_sec, &tm->tm_year, &tm->tm_mon, &tm->tm_mday, &tm->tm_hour,
- &tm->tm_min, &tm->tm_sec))
+ if (posix_time > 0 && offset_sec > INT64_MAX - posix_time)
+ return 0;
+ if (posix_time < 0 && offset_sec < INT64_MIN - posix_time)
return 0;
+ posix_time += offset_sec;
- tm->tm_year -= 1900;
- tm->tm_mon -= 1;
+ if (!OPENSSL_posix_to_tm(posix_time, tm))
+ return 0;
return 1;
}
@@ -252,20 +277,17 @@ OPENSSL_gmtime_diff(int *out_days, int *out_secs, const struct tm *from,
{
int64_t time_to, time_from, timediff, daydiff;
- if (!posix_time_from_utc(to->tm_year + 1900, to->tm_mon + 1,
- to->tm_mday, to->tm_hour, to->tm_min, to->tm_sec, &time_to))
+ if (!OPENSSL_tm_to_posix(to, &time_to) ||
+ !OPENSSL_tm_to_posix(from, &time_from))
return 0;
- if (!posix_time_from_utc(from->tm_year + 1900, from->tm_mon + 1,
- from->tm_mday, from->tm_hour, from->tm_min,
- from->tm_sec, &time_from))
- return 0;
+ /* Times are in range, so these calculations cannot overflow. */
+ CTASSERT(SECS_PER_DAY <= INT_MAX);
+ CTASSERT((MAX_POSIX_TIME - MIN_POSIX_TIME) / SECS_PER_DAY <= INT_MAX);
timediff = time_to - time_from;
daydiff = timediff / SECS_PER_DAY;
timediff %= SECS_PER_DAY;
- if (daydiff > INT_MAX || daydiff < INT_MIN)
- return 0;
*out_secs = timediff;
*out_days = daydiff;
diff --git a/crypto/asn1/a_time_tm.c b/crypto/asn1/a_time_tm.c
index ea94d2f5..986c1e73 100644
--- a/crypto/asn1/a_time_tm.c
+++ b/crypto/asn1/a_time_tm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: a_time_tm.c,v 1.31 2023/10/01 22:14:36 tb Exp $ */
+/* $OpenBSD: a_time_tm.c,v 1.33 2024/03/02 09:10:42 tb Exp $ */
/*
* Copyright (c) 2015 Bob Beck
*
@@ -60,7 +60,6 @@ ASN1_time_tm_cmp(struct tm *tm1, struct tm *tm2)
return (1);
return 0;
}
-LCRYPTO_ALIAS(ASN1_time_tm_cmp);
int
ASN1_time_tm_clamp_notafter(struct tm *tm)
@@ -345,7 +344,6 @@ ASN1_time_parse(const char *bytes, size_t len, struct tm *tm, int mode)
return -1;
}
-LCRYPTO_ALIAS(ASN1_time_parse);
/*
* ASN1_TIME generic functions.
@@ -408,17 +406,6 @@ ASN1_TIME_set(ASN1_TIME *s, time_t t)
}
LCRYPTO_ALIAS(ASN1_TIME_set);
-ASN1_TIME *
-ASN1_TIME_set_tm(ASN1_TIME *s, struct tm *tm)
-{
- time_t t;
-
- if (!asn1_time_tm_to_time_t(tm, &t))
- return NULL;
- return (ASN1_TIME_adj(s, t, 0, 0));
-}
-LCRYPTO_ALIAS(ASN1_TIME_set_tm);
-
ASN1_TIME *
ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day, long offset_sec)
{
diff --git a/crypto/asn1/ameth_lib.c b/crypto/asn1/ameth_lib.c
deleted file mode 100644
index 153ad21a..00000000
--- a/crypto/asn1/ameth_lib.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/* $OpenBSD: ameth_lib.c,v 1.32 2023/07/07 19:37:52 beck Exp $ */
-/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
- * project 2006.
- */
-/* ====================================================================
- * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * licensing@OpenSSL.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#include
-#include
-
-#include
-
-#include
-#include
-
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
-
-#include "asn1_local.h"
-#include "evp_local.h"
-
-extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[];
-extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD gostimit_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD gostr01_asn1_meths[];
-extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[];
-extern const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth;
-extern const EVP_PKEY_ASN1_METHOD x25519_asn1_meth;
-
-static const EVP_PKEY_ASN1_METHOD *asn1_methods[] = {
- &cmac_asn1_meth,
- &dh_asn1_meth,
- &dsa_asn1_meths[0],
- &dsa_asn1_meths[1],
- &dsa_asn1_meths[2],
- &dsa_asn1_meths[3],
- &dsa_asn1_meths[4],
- &eckey_asn1_meth,
- &ed25519_asn1_meth,
- &gostimit_asn1_meth,
- &gostr01_asn1_meths[0],
- &gostr01_asn1_meths[1],
- &gostr01_asn1_meths[2],
- &hmac_asn1_meth,
- &rsa_asn1_meths[0],
- &rsa_asn1_meths[1],
- &rsa_pss_asn1_meth,
- &x25519_asn1_meth,
-};
-
-static const size_t asn1_methods_count =
- sizeof(asn1_methods) / sizeof(asn1_methods[0]);
-
-DECLARE_STACK_OF(EVP_PKEY_ASN1_METHOD)
-static STACK_OF(EVP_PKEY_ASN1_METHOD) *asn1_app_methods = NULL;
-
-int
-EVP_PKEY_asn1_get_count(void)
-{
- int num = asn1_methods_count;
-
- if (asn1_app_methods != NULL)
- num += sk_EVP_PKEY_ASN1_METHOD_num(asn1_app_methods);
-
- return num;
-}
-
-const EVP_PKEY_ASN1_METHOD *
-EVP_PKEY_asn1_get0(int idx)
-{
- int num = asn1_methods_count;
-
- if (idx < 0)
- return NULL;
- if (idx < num)
- return asn1_methods[idx];
-
- idx -= num;
-
- return sk_EVP_PKEY_ASN1_METHOD_value(asn1_app_methods, idx);
-}
-
-static const EVP_PKEY_ASN1_METHOD *
-pkey_asn1_find(int pkey_id)
-{
- const EVP_PKEY_ASN1_METHOD *ameth;
- int i;
-
- for (i = EVP_PKEY_asn1_get_count() - 1; i >= 0; i--) {
- ameth = EVP_PKEY_asn1_get0(i);
- if (ameth->pkey_id == pkey_id)
- return ameth;
- }
-
- return NULL;
-}
-
-/*
- * Find an implementation of an ASN1 algorithm. If 'pe' is not NULL
- * also search through engines and set *pe to a functional reference
- * to the engine implementing 'type' or NULL if no engine implements
- * it.
- */
-const EVP_PKEY_ASN1_METHOD *
-EVP_PKEY_asn1_find(ENGINE **pe, int type)
-{
- const EVP_PKEY_ASN1_METHOD *mp;
-
- for (;;) {
- if ((mp = pkey_asn1_find(type)) == NULL)
- break;
- if ((mp->pkey_flags & ASN1_PKEY_ALIAS) == 0)
- break;
- type = mp->pkey_base_id;
- }
- if (pe) {
-#ifndef OPENSSL_NO_ENGINE
- ENGINE *e;
- /* type will contain the final unaliased type */
- e = ENGINE_get_pkey_asn1_meth_engine(type);
- if (e) {
- *pe = e;
- return ENGINE_get_pkey_asn1_meth(e, type);
- }
-#endif
- *pe = NULL;
- }
- return mp;
-}
-
-const EVP_PKEY_ASN1_METHOD *
-EVP_PKEY_asn1_find_str(ENGINE **pe, const char *str, int len)
-{
- const EVP_PKEY_ASN1_METHOD *ameth;
- int i;
-
- if (len == -1)
- len = strlen(str);
- if (pe) {
-#ifndef OPENSSL_NO_ENGINE
- ENGINE *e;
- ameth = ENGINE_pkey_asn1_find_str(&e, str, len);
- if (ameth) {
- /* Convert structural into
- * functional reference
- */
- if (!ENGINE_init(e))
- ameth = NULL;
- ENGINE_free(e);
- *pe = e;
- return ameth;
- }
-#endif
- *pe = NULL;
- }
- for (i = EVP_PKEY_asn1_get_count() - 1; i >= 0; i--) {
- ameth = EVP_PKEY_asn1_get0(i);
- if (ameth->pkey_flags & ASN1_PKEY_ALIAS)
- continue;
- if (((int)strlen(ameth->pem_str) == len) &&
- !strncasecmp(ameth->pem_str, str, len))
- return ameth;
- }
- return NULL;
-}
-
-int
-EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth)
-{
- if (asn1_app_methods == NULL) {
- asn1_app_methods = sk_EVP_PKEY_ASN1_METHOD_new(NULL);
- if (asn1_app_methods == NULL)
- return 0;
- }
-
- if (!sk_EVP_PKEY_ASN1_METHOD_push(asn1_app_methods, ameth))
- return 0;
-
- return 1;
-}
-
-int
-EVP_PKEY_asn1_add_alias(int to, int from)
-{
- EVP_PKEY_ASN1_METHOD *ameth;
-
- ameth = EVP_PKEY_asn1_new(from, ASN1_PKEY_ALIAS, NULL, NULL);
- if (ameth == NULL)
- return 0;
-
- ameth->pkey_base_id = to;
- if (!EVP_PKEY_asn1_add0(ameth)) {
- EVP_PKEY_asn1_free(ameth);
- return 0;
- }
- return 1;
-}
-
-int
-EVP_PKEY_asn1_get0_info(int *ppkey_id, int *ppkey_base_id, int *ppkey_flags,
- const char **pinfo, const char **ppem_str,
- const EVP_PKEY_ASN1_METHOD *ameth)
-{
- if (!ameth)
- return 0;
- if (ppkey_id)
- *ppkey_id = ameth->pkey_id;
- if (ppkey_base_id)
- *ppkey_base_id = ameth->pkey_base_id;
- if (ppkey_flags)
- *ppkey_flags = ameth->pkey_flags;
- if (pinfo)
- *pinfo = ameth->info;
- if (ppem_str)
- *ppem_str = ameth->pem_str;
- return 1;
-}
-
-const EVP_PKEY_ASN1_METHOD*
-EVP_PKEY_get0_asn1(const EVP_PKEY *pkey)
-{
- return pkey->ameth;
-}
-
-EVP_PKEY_ASN1_METHOD*
-EVP_PKEY_asn1_new(int id, int flags, const char *pem_str, const char *info)
-{
- EVP_PKEY_ASN1_METHOD *ameth;
-
- if ((ameth = calloc(1, sizeof(EVP_PKEY_ASN1_METHOD))) == NULL)
- return NULL;
-
- ameth->pkey_id = id;
- ameth->pkey_base_id = id;
- ameth->pkey_flags = flags | ASN1_PKEY_DYNAMIC;
-
- if (info != NULL) {
- if ((ameth->info = strdup(info)) == NULL)
- goto err;
- }
-
- if (pem_str != NULL) {
- if ((ameth->pem_str = strdup(pem_str)) == NULL)
- goto err;
- }
-
- return ameth;
-
- err:
- EVP_PKEY_asn1_free(ameth);
- return NULL;
-}
-
-void
-EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, const EVP_PKEY_ASN1_METHOD *src)
-{
- EVP_PKEY_ASN1_METHOD preserve;
-
- preserve.pkey_id = dst->pkey_id;
- preserve.pkey_base_id = dst->pkey_base_id;
- preserve.pkey_flags = dst->pkey_flags;
- preserve.pem_str = dst->pem_str;
- preserve.info = dst->info;
-
- *dst = *src;
-
- dst->pkey_id = preserve.pkey_id;
- dst->pkey_base_id = preserve.pkey_base_id;
- dst->pkey_flags = preserve.pkey_flags;
- dst->pem_str = preserve.pem_str;
- dst->info = preserve.info;
-}
-
-void
-EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth)
-{
- if (ameth && (ameth->pkey_flags & ASN1_PKEY_DYNAMIC)) {
- free(ameth->pem_str);
- free(ameth->info);
- free(ameth);
- }
-}
-
-void
-EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,
- int (*pub_decode)(EVP_PKEY *pk, X509_PUBKEY *pub),
- int (*pub_encode)(X509_PUBKEY *pub, const EVP_PKEY *pk),
- int (*pub_cmp)(const EVP_PKEY *a, const EVP_PKEY *b),
- int (*pub_print)(BIO *out, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *pctx),
- int (*pkey_size)(const EVP_PKEY *pk),
- int (*pkey_bits)(const EVP_PKEY *pk))
-{
- ameth->pub_decode = pub_decode;
- ameth->pub_encode = pub_encode;
- ameth->pub_cmp = pub_cmp;
- ameth->pub_print = pub_print;
- ameth->pkey_size = pkey_size;
- ameth->pkey_bits = pkey_bits;
-}
-
-void
-EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,
- int (*priv_decode)(EVP_PKEY *pk, const PKCS8_PRIV_KEY_INFO *p8inf),
- int (*priv_encode)(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk),
- int (*priv_print)(BIO *out, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *pctx))
-{
- ameth->priv_decode = priv_decode;
- ameth->priv_encode = priv_encode;
- ameth->priv_print = priv_print;
-}
-
-void
-EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth,
- int (*param_decode)(EVP_PKEY *pkey, const unsigned char **pder, int derlen),
- int (*param_encode)(const EVP_PKEY *pkey, unsigned char **pder),
- int (*param_missing)(const EVP_PKEY *pk),
- int (*param_copy)(EVP_PKEY *to, const EVP_PKEY *from),
- int (*param_cmp)(const EVP_PKEY *a, const EVP_PKEY *b),
- int (*param_print)(BIO *out, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *pctx))
-{
- ameth->param_decode = param_decode;
- ameth->param_encode = param_encode;
- ameth->param_missing = param_missing;
- ameth->param_copy = param_copy;
- ameth->param_cmp = param_cmp;
- ameth->param_print = param_print;
-}
-
-void
-EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth,
- void (*pkey_free)(EVP_PKEY *pkey))
-{
- ameth->pkey_free = pkey_free;
-}
-
-void
-EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,
- int (*pkey_ctrl)(EVP_PKEY *pkey, int op, long arg1, void *arg2))
-{
- ameth->pkey_ctrl = pkey_ctrl;
-}
-
-void
-EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth,
- int (*pkey_security_bits)(const EVP_PKEY *pkey))
-{
- ameth->pkey_security_bits = pkey_security_bits;
-}
-
-void
-EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth,
- int (*pkey_check)(const EVP_PKEY *pk))
-{
- ameth->pkey_check = pkey_check;
-}
-
-void
-EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth,
- int (*pkey_public_check)(const EVP_PKEY *pk))
-{
- ameth->pkey_public_check = pkey_public_check;
-}
-
-void
-EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth,
- int (*pkey_param_check)(const EVP_PKEY *pk))
-{
- ameth->pkey_param_check = pkey_param_check;
-}
diff --git a/crypto/asn1/asn1_item.c b/crypto/asn1/asn1_item.c
index 87f426c6..99a08698 100644
--- a/crypto/asn1/asn1_item.c
+++ b/crypto/asn1/asn1_item.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: asn1_item.c,v 1.17 2023/07/13 20:59:10 tb Exp $ */
+/* $OpenBSD: asn1_item.c,v 1.20 2024/01/28 14:43:48 joshua Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -118,6 +118,7 @@
#include "asn1_local.h"
#include "evp_local.h"
+#include "x509_local.h"
int
ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
@@ -221,13 +222,20 @@ int
ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey, const EVP_MD *type)
{
- EVP_MD_CTX ctx;
- EVP_MD_CTX_init(&ctx);
- if (!EVP_DigestSignInit(&ctx, NULL, type, NULL, pkey)) {
- EVP_MD_CTX_cleanup(&ctx);
- return 0;
- }
- return ASN1_item_sign_ctx(it, algor1, algor2, signature, asn, &ctx);
+ EVP_MD_CTX *md_ctx = NULL;
+ int ret = 0;
+
+ if ((md_ctx = EVP_MD_CTX_new()) == NULL)
+ goto err;
+ if (!EVP_DigestSignInit(md_ctx, NULL, type, NULL, pkey))
+ goto err;
+
+ ret = ASN1_item_sign_ctx(it, algor1, algor2, signature, asn, md_ctx);
+
+ err:
+ EVP_MD_CTX_free(md_ctx);
+
+ return ret;
}
static int
@@ -235,7 +243,6 @@ asn1_item_set_algorithm_identifiers(EVP_MD_CTX *ctx, X509_ALGOR *algor1,
X509_ALGOR *algor2)
{
EVP_PKEY *pkey;
- ASN1_OBJECT *aobj;
const EVP_MD *md;
int sign_id, sign_param;
@@ -254,21 +261,17 @@ asn1_item_set_algorithm_identifiers(EVP_MD_CTX *ctx, X509_ALGOR *algor1,
ASN1error(ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED);
return 0;
}
- if ((aobj = OBJ_nid2obj(sign_id)) == NULL) {
- ASN1error(ASN1_R_UNKNOWN_OBJECT_TYPE);
- return 0;
- }
sign_param = V_ASN1_UNDEF;
if (pkey->ameth->pkey_flags & ASN1_PKEY_SIGPARAM_NULL)
sign_param = V_ASN1_NULL;
if (algor1 != NULL) {
- if (!X509_ALGOR_set0(algor1, aobj, sign_param, NULL))
+ if (!X509_ALGOR_set0_by_nid(algor1, sign_id, sign_param, NULL))
return 0;
}
if (algor2 != NULL) {
- if (!X509_ALGOR_set0(algor2, aobj, sign_param, NULL))
+ if (!X509_ALGOR_set0_by_nid(algor2, sign_id, sign_param, NULL))
return 0;
}
@@ -378,7 +381,7 @@ int
ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey)
{
- EVP_MD_CTX ctx;
+ EVP_MD_CTX *md_ctx = NULL;
unsigned char *in = NULL;
int mdnid, pknid;
int in_len = 0;
@@ -386,15 +389,16 @@ ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
if (pkey == NULL) {
ASN1error(ERR_R_PASSED_NULL_PARAMETER);
- return -1;
+ goto err;
}
if (signature->type == V_ASN1_BIT_STRING && signature->flags & 0x7) {
ASN1error(ASN1_R_INVALID_BIT_STRING_BITS_LEFT);
- return -1;
+ goto err;
}
- EVP_MD_CTX_init(&ctx);
+ if ((md_ctx = EVP_MD_CTX_new()) == NULL)
+ goto err;
/* Convert signature OID into digest and public key OIDs */
if (!OBJ_find_sigid_algs(OBJ_obj2nid(a->algorithm), &mdnid, &pknid)) {
@@ -406,7 +410,7 @@ ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
ASN1error(ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM);
goto err;
}
- ret = pkey->ameth->item_verify(&ctx, it, asn, a,
+ ret = pkey->ameth->item_verify(md_ctx, it, asn, a,
signature, pkey);
/* Return value of 2 means carry on, anything else means we
* exit straight away: either a fatal error of the underlying
@@ -429,7 +433,7 @@ ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
goto err;
}
- if (!EVP_DigestVerifyInit(&ctx, NULL, type, NULL, pkey)) {
+ if (!EVP_DigestVerifyInit(md_ctx, NULL, type, NULL, pkey)) {
ASN1error(ERR_R_EVP_LIB);
ret = 0;
goto err;
@@ -443,7 +447,7 @@ ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
goto err;
}
- if (EVP_DigestVerify(&ctx, signature->data, signature->length,
+ if (EVP_DigestVerify(md_ctx, signature->data, signature->length,
in, in_len) <= 0) {
ASN1error(ERR_R_EVP_LIB);
ret = 0;
@@ -453,7 +457,7 @@ ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
ret = 1;
err:
- EVP_MD_CTX_cleanup(&ctx);
+ EVP_MD_CTX_free(md_ctx);
freezero(in, in_len);
return ret;
diff --git a/crypto/asn1/asn1_local.h b/crypto/asn1/asn1_local.h
index 566ace79..19de9787 100644
--- a/crypto/asn1/asn1_local.h
+++ b/crypto/asn1/asn1_local.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: asn1_local.h,v 1.4 2023/07/28 10:00:10 tb Exp $ */
+/* $OpenBSD: asn1_local.h,v 1.10 2024/03/02 09:10:42 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -89,88 +89,6 @@ struct asn1_pctx_st {
unsigned long str_flags;
} /* ASN1_PCTX */;
-/* ASN1 public key method structure */
-
-struct evp_pkey_asn1_method_st {
- int pkey_id;
- int pkey_base_id;
- unsigned long pkey_flags;
-
- char *pem_str;
- char *info;
-
- int (*pub_decode)(EVP_PKEY *pk, X509_PUBKEY *pub);
- int (*pub_encode)(X509_PUBKEY *pub, const EVP_PKEY *pk);
- int (*pub_cmp)(const EVP_PKEY *a, const EVP_PKEY *b);
- int (*pub_print)(BIO *out, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *pctx);
-
- int (*priv_decode)(EVP_PKEY *pk, const PKCS8_PRIV_KEY_INFO *p8inf);
- int (*priv_encode)(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk);
- int (*priv_print)(BIO *out, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *pctx);
-
- int (*pkey_size)(const EVP_PKEY *pk);
- int (*pkey_bits)(const EVP_PKEY *pk);
- int (*pkey_security_bits)(const EVP_PKEY *pk);
-
- int (*param_decode)(EVP_PKEY *pkey, const unsigned char **pder,
- int derlen);
- int (*param_encode)(const EVP_PKEY *pkey, unsigned char **pder);
- int (*param_missing)(const EVP_PKEY *pk);
- int (*param_copy)(EVP_PKEY *to, const EVP_PKEY *from);
- int (*param_cmp)(const EVP_PKEY *a, const EVP_PKEY *b);
- int (*param_print)(BIO *out, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *pctx);
- int (*sig_print)(BIO *out, const X509_ALGOR *sigalg,
- const ASN1_STRING *sig, int indent, ASN1_PCTX *pctx);
-
- void (*pkey_free)(EVP_PKEY *pkey);
- int (*pkey_ctrl)(EVP_PKEY *pkey, int op, long arg1, void *arg2);
-
- /* Legacy functions for old PEM */
-
- int (*old_priv_decode)(EVP_PKEY *pkey, const unsigned char **pder,
- int derlen);
- int (*old_priv_encode)(const EVP_PKEY *pkey, unsigned char **pder);
- /* Custom ASN1 signature verification */
- int (*item_verify)(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
- X509_ALGOR *a, ASN1_BIT_STRING *sig, EVP_PKEY *pkey);
- int (*item_sign)(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
- X509_ALGOR *alg1, X509_ALGOR *alg2, ASN1_BIT_STRING *sig);
-
- int (*pkey_check)(const EVP_PKEY *pk);
- int (*pkey_public_check)(const EVP_PKEY *pk);
- int (*pkey_param_check)(const EVP_PKEY *pk);
-
- int (*set_priv_key)(EVP_PKEY *pk, const unsigned char *private_key,
- size_t len);
- int (*set_pub_key)(EVP_PKEY *pk, const unsigned char *public_key,
- size_t len);
- int (*get_priv_key)(const EVP_PKEY *pk, unsigned char *out_private_key,
- size_t *out_len);
- int (*get_pub_key)(const EVP_PKEY *pk, unsigned char *out_public_key,
- size_t *out_len);
-} /* EVP_PKEY_ASN1_METHOD */;
-
-/* Method to handle CRL access.
- * In general a CRL could be very large (several Mb) and can consume large
- * amounts of resources if stored in memory by multiple processes.
- * This method allows general CRL operations to be redirected to more
- * efficient callbacks: for example a CRL entry database.
- */
-
-#define X509_CRL_METHOD_DYNAMIC 1
-
-struct x509_crl_method_st {
- int flags;
- int (*crl_init)(X509_CRL *crl);
- int (*crl_free)(X509_CRL *crl);
- int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret,
- ASN1_INTEGER *ser, X509_NAME *issuer);
- int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk);
-};
-
int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it);
int asn1_set_choice_selector(ASN1_VALUE **pval, int value, const ASN1_ITEM *it);
@@ -242,7 +160,7 @@ ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,
int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp);
ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp,
long length);
-int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec);
+int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, int64_t offset_sec);
int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from,
const struct tm *to);
int asn1_time_time_t_to_tm(const time_t *time, struct tm *out_tm);
@@ -269,4 +187,7 @@ void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
+int ASN1_time_parse(const char *_bytes, size_t _len, struct tm *_tm, int _mode);
+int ASN1_time_tm_cmp(struct tm *_tm1, struct tm *_tm2);
+
__END_HIDDEN_DECLS
diff --git a/crypto/asn1/asn_moid.c b/crypto/asn1/asn_moid.c
index 4da35c0e..68749804 100644
--- a/crypto/asn1/asn_moid.c
+++ b/crypto/asn1/asn_moid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: asn_moid.c,v 1.16 2023/07/05 21:23:36 beck Exp $ */
+/* $OpenBSD: asn_moid.c,v 1.17 2024/03/02 09:02:04 tb Exp $ */
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
* project 2001.
*/
@@ -105,7 +105,6 @@ ASN1_add_oid_module(void)
{
CONF_module_add("oid_section", oid_module_init, oid_module_finish);
}
-LCRYPTO_ALIAS(ASN1_add_oid_module);
/* Create an OID based on a name value pair. Accept two formats.
* shortname = 1.2.3.4
diff --git a/crypto/asn1/p5_pbe.c b/crypto/asn1/p5_pbe.c
index 204e8182..0b628b36 100644
--- a/crypto/asn1/p5_pbe.c
+++ b/crypto/asn1/p5_pbe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: p5_pbe.c,v 1.25 2023/07/07 19:37:52 beck Exp $ */
+/* $OpenBSD: p5_pbe.c,v 1.26 2024/03/02 10:17:37 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -64,6 +64,8 @@
#include
#include
+#include "x509_local.h"
+
/* PKCS#5 password based encryption structure */
static const ASN1_TEMPLATE PBEPARAM_seq_tt[] = {
diff --git a/crypto/asn1/p5_pbev2.c b/crypto/asn1/p5_pbev2.c
index 8b6d1929..ebb20c29 100644
--- a/crypto/asn1/p5_pbev2.c
+++ b/crypto/asn1/p5_pbev2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: p5_pbev2.c,v 1.30 2023/07/07 19:37:52 beck Exp $ */
+/* $OpenBSD: p5_pbev2.c,v 1.32 2024/03/02 10:17:37 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999-2004.
*/
@@ -65,6 +65,7 @@
#include
#include "evp_local.h"
+#include "x509_local.h"
/* PKCS#5 v2.0 password based encryption structures */
@@ -218,7 +219,7 @@ PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, unsigned char *salt,
arc4random_buf(iv, EVP_CIPHER_iv_length(cipher));
}
- EVP_CIPHER_CTX_init(&ctx);
+ EVP_CIPHER_CTX_legacy_clear(&ctx);
/* Dummy cipherinit to just setup the IV, and PRF */
if (!EVP_CipherInit_ex(&ctx, cipher, NULL, NULL, iv, 0))
diff --git a/crypto/asn1/t_x509.c b/crypto/asn1/t_x509.c
index cd98997f..6f7bdc79 100644
--- a/crypto/asn1/t_x509.c
+++ b/crypto/asn1/t_x509.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: t_x509.c,v 1.43 2023/07/07 19:37:52 beck Exp $ */
+/* $OpenBSD: t_x509.c,v 1.44 2023/12/29 10:59:00 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -77,7 +77,7 @@
#include
#endif
-#include "asn1_local.h"
+#include "evp_local.h"
#include "x509_local.h"
int
diff --git a/crypto/asn1/tasn_prn.c b/crypto/asn1/tasn_prn.c
index 3f61a689..07764fc0 100644
--- a/crypto/asn1/tasn_prn.c
+++ b/crypto/asn1/tasn_prn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tasn_prn.c,v 1.25 2023/07/05 21:23:36 beck Exp $ */
+/* $OpenBSD: tasn_prn.c,v 1.27 2024/03/02 09:04:07 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2000.
*/
@@ -76,99 +76,6 @@ static const ASN1_PCTX default_pctx = {
.flags = ASN1_PCTX_FLAGS_SHOW_ABSENT,
};
-ASN1_PCTX *
-ASN1_PCTX_new(void)
-{
- ASN1_PCTX *p;
-
- if ((p = calloc(1, sizeof(ASN1_PCTX))) == NULL) {
- ASN1error(ERR_R_MALLOC_FAILURE);
- return NULL;
- }
-
- return p;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_new);
-
-void
-ASN1_PCTX_free(ASN1_PCTX *p)
-{
- free(p);
-}
-LCRYPTO_ALIAS(ASN1_PCTX_free);
-
-unsigned long
-ASN1_PCTX_get_flags(const ASN1_PCTX *p)
-{
- return p->flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_get_flags);
-
-void
-ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
-{
- p->flags = flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_set_flags);
-
-unsigned long
-ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
-{
- return p->nm_flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_get_nm_flags);
-
-void
-ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
-{
- p->nm_flags = flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_set_nm_flags);
-
-unsigned long
-ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
-{
- return p->cert_flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_get_cert_flags);
-
-void
-ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
-{
- p->cert_flags = flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_set_cert_flags);
-
-unsigned long
-ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
-{
- return p->oid_flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_get_oid_flags);
-
-void
-ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
-{
- p->oid_flags = flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_set_oid_flags);
-
-unsigned long
-ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
-{
- return p->str_flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_get_str_flags);
-
-void
-ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
-{
- p->str_flags = flags;
-}
-LCRYPTO_ALIAS(ASN1_PCTX_set_str_flags);
-
-/* Main print routines */
-
static int asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
const ASN1_ITEM *it, const char *fname, const char *sname, int nohdr,
const ASN1_PCTX *pctx);
@@ -395,15 +302,9 @@ static int
asn1_print_fsname(BIO *out, int indent, const char *fname, const char *sname,
const ASN1_PCTX *pctx)
{
- static char spaces[] = " ";
- const int nspaces = sizeof(spaces) - 1;
-
- while (indent > nspaces) {
- if (BIO_write(out, spaces, nspaces) != nspaces)
- return 0;
- indent -= nspaces;
- }
- if (BIO_write(out, spaces, indent) != indent)
+ if (indent < 0)
+ return 0;
+ if (!BIO_indent(out, indent, indent))
return 0;
if (pctx->flags & ASN1_PCTX_FLAGS_NO_STRUCT_NAME)
sname = NULL;
diff --git a/crypto/asn1/x_algor.c b/crypto/asn1/x_algor.c
index 0f1cd9cb..939ce4b6 100644
--- a/crypto/asn1/x_algor.c
+++ b/crypto/asn1/x_algor.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: x_algor.c,v 1.25 2023/07/07 19:37:52 beck Exp $ */
+/* $OpenBSD: x_algor.c,v 1.39 2024/03/02 10:33:51 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2000.
*/
@@ -57,9 +57,12 @@
*/
#include
-#include
+
#include
#include
+#include
+
+#include "x509_local.h"
static const ASN1_TEMPLATE X509_ALGOR_seq_tt[] = {
{
@@ -102,7 +105,6 @@ const ASN1_ITEM X509_ALGORS_it = {
.sname = "X509_ALGORS",
};
-
X509_ALGOR *
d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len)
{
@@ -147,74 +149,135 @@ X509_ALGOR_dup(X509_ALGOR *x)
return ASN1_item_dup(&X509_ALGOR_it, x);
}
-int
-X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval)
+static int
+X509_ALGOR_set0_obj(X509_ALGOR *alg, ASN1_OBJECT *aobj)
+{
+ ASN1_OBJECT_free(alg->algorithm);
+ alg->algorithm = aobj;
+
+ return 1;
+}
+
+static int
+X509_ALGOR_set_obj_by_nid(X509_ALGOR *alg, int nid)
{
- if (!alg)
+ ASN1_OBJECT *aobj;
+
+ if ((aobj = OBJ_nid2obj(nid)) == NULL)
return 0;
- if (ptype != V_ASN1_UNDEF) {
- if (alg->parameter == NULL)
- alg->parameter = ASN1_TYPE_new();
- if (alg->parameter == NULL)
- return 0;
- }
- if (alg) {
- if (alg->algorithm)
- ASN1_OBJECT_free(alg->algorithm);
- alg->algorithm = aobj;
- }
- if (ptype == 0)
- return 1;
- if (ptype == V_ASN1_UNDEF) {
- if (alg->parameter) {
- ASN1_TYPE_free(alg->parameter);
- alg->parameter = NULL;
- }
- } else
- ASN1_TYPE_set(alg->parameter, ptype, pval);
+ if (!X509_ALGOR_set0_obj(alg, aobj))
+ return 0;
+
return 1;
}
-void
-X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, const void **ppval,
- const X509_ALGOR *algor)
+static int
+X509_ALGOR_set0_parameter(X509_ALGOR *alg, int parameter_type,
+ void *parameter_value)
{
- if (paobj)
- *paobj = algor->algorithm;
- if (pptype) {
- if (algor->parameter == NULL) {
- *pptype = V_ASN1_UNDEF;
- return;
- } else
- *pptype = algor->parameter->type;
- if (ppval)
- *ppval = algor->parameter->value.ptr;
+ if (parameter_type == V_ASN1_UNDEF) {
+ ASN1_TYPE_free(alg->parameter);
+ alg->parameter = NULL;
+
+ return 1;
}
+
+ if (alg->parameter == NULL)
+ alg->parameter = ASN1_TYPE_new();
+ if (alg->parameter == NULL)
+ return 0;
+
+ if (parameter_type != 0)
+ ASN1_TYPE_set(alg->parameter, parameter_type, parameter_value);
+
+ return 1;
+}
+
+int
+X509_ALGOR_set0_by_nid(X509_ALGOR *alg, int nid, int parameter_type,
+ void *parameter_value)
+{
+ if (alg == NULL)
+ return 0;
+
+ if (!X509_ALGOR_set_obj_by_nid(alg, nid))
+ return 0;
+
+ if (!X509_ALGOR_set0_parameter(alg, parameter_type, parameter_value))
+ return 0;
+
+ return 1;
}
-/* Set up an X509_ALGOR DigestAlgorithmIdentifier from an EVP_MD */
+int
+X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int parameter_type,
+ void *parameter_value)
+{
+ if (alg == NULL)
+ return 0;
+
+ /* Set parameter first to preserve public API behavior on failure. */
+ if (!X509_ALGOR_set0_parameter(alg, parameter_type, parameter_value))
+ return 0;
+
+ if (!X509_ALGOR_set0_obj(alg, aobj))
+ return 0;
+
+ return 1;
+}
void
-X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md)
+X509_ALGOR_get0(const ASN1_OBJECT **out_aobj, int *out_type,
+ const void **out_value, const X509_ALGOR *alg)
+{
+ int type = V_ASN1_UNDEF;
+ const void *value = NULL;
+
+ if (out_aobj != NULL)
+ *out_aobj = alg->algorithm;
+
+ /* Ensure out_value is not left uninitialized if out_type is NULL. */
+ if (out_value != NULL)
+ *out_value = NULL;
+
+ if (out_type == NULL)
+ return;
+
+ if (alg->parameter != NULL) {
+ type = alg->parameter->type;
+ value = alg->parameter->value.ptr;
+ }
+
+ *out_type = type;
+ if (out_value != NULL)
+ *out_value = value;
+}
+
+int
+X509_ALGOR_set_evp_md(X509_ALGOR *alg, const EVP_MD *md)
{
- int param_type = V_ASN1_NULL;
+ int parameter_type = V_ASN1_NULL;
+ int nid = EVP_MD_type(md);
if ((EVP_MD_flags(md) & EVP_MD_FLAG_DIGALGID_ABSENT) != 0)
- param_type = V_ASN1_UNDEF;
+ parameter_type = V_ASN1_UNDEF;
- X509_ALGOR_set0(alg, OBJ_nid2obj(EVP_MD_type(md)), param_type, NULL);
+ if (!X509_ALGOR_set0_by_nid(alg, nid, parameter_type, NULL))
+ return 0;
+
+ return 1;
}
-/* Returns 0 if they are equal, != 0 otherwise. */
int
X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b)
{
- int rv = OBJ_cmp(a->algorithm, b->algorithm);
- if (!rv) {
- if (!a->parameter && !b->parameter)
- rv = 0;
- else
- rv = ASN1_TYPE_cmp(a->parameter, b->parameter);
- }
- return(rv);
+ int cmp;
+
+ if ((cmp = OBJ_cmp(a->algorithm, b->algorithm)) != 0)
+ return cmp;
+
+ if (a->parameter == NULL && b->parameter == NULL)
+ return 0;
+
+ return ASN1_TYPE_cmp(a->parameter, b->parameter);
}
diff --git a/crypto/asn1/x_crl.c b/crypto/asn1/x_crl.c
index b33ae6e0..e3d16352 100644
--- a/crypto/asn1/x_crl.c
+++ b/crypto/asn1/x_crl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: x_crl.c,v 1.41 2023/07/07 19:37:52 beck Exp $ */
+/* $OpenBSD: x_crl.c,v 1.43 2024/03/02 10:59:41 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -100,17 +100,6 @@ const ASN1_ITEM X509_REVOKED_it = {
.sname = "X509_REVOKED",
};
-static int def_crl_verify(X509_CRL *crl, EVP_PKEY *r);
-static int def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret,
- ASN1_INTEGER *serial, X509_NAME *issuer);
-
-static X509_CRL_METHOD int_crl_meth = {
- .crl_lookup = def_crl_lookup,
- .crl_verify = def_crl_verify
-};
-
-static const X509_CRL_METHOD *default_crl_method = &int_crl_meth;
-
/* The X509_CRL_INFO structure needs a bit of customisation.
* Since we cache the original encoding the signature wont be affected by
* reordering of the revoked field.
@@ -280,8 +269,6 @@ crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
crl->flags = 0;
crl->idp_flags = 0;
crl->idp_reasons = CRLDP_ALL_REASONS;
- crl->meth = default_crl_method;
- crl->meth_data = NULL;
crl->issuers = NULL;
crl->crl_number = NULL;
crl->base_crl_number = NULL;
@@ -335,18 +322,9 @@ crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
if (!crl_set_issuers(crl))
return 0;
-
- if (crl->meth->crl_init) {
- if (crl->meth->crl_init(crl) == 0)
- return 0;
- }
break;
case ASN1_OP_FREE_POST:
- if (crl->meth->crl_free) {
- if (!crl->meth->crl_free(crl))
- rc = 0;
- }
if (crl->akid)
AUTHORITY_KEYID_free(crl->akid);
if (crl->idp)
@@ -546,36 +524,10 @@ X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
}
int
-X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r)
-{
- if (crl->meth->crl_verify)
- return crl->meth->crl_verify(crl, r);
- return 0;
-}
-
-int
-X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret,
- ASN1_INTEGER *serial)
-{
- if (crl->meth->crl_lookup)
- return crl->meth->crl_lookup(crl, ret, serial, NULL);
- return 0;
-}
-
-int
-X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
-{
- if (crl->meth->crl_lookup)
- return crl->meth->crl_lookup(crl, ret,
- X509_get_serialNumber(x), X509_get_issuer_name(x));
- return 0;
-}
-
-static int
-def_crl_verify(X509_CRL *crl, EVP_PKEY *r)
+X509_CRL_verify(X509_CRL *crl, EVP_PKEY *pkey)
{
- return(ASN1_item_verify(&X509_CRL_INFO_it,
- crl->sig_alg, crl->signature, crl->crl, r));
+ return ASN1_item_verify(&X509_CRL_INFO_it, crl->sig_alg, crl->signature,
+ crl->crl, pkey);
}
static int
@@ -606,16 +558,13 @@ crl_revoked_issuer_match(X509_CRL *crl, X509_NAME *nm, X509_REVOKED *rev)
}
static int
-def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial,
+crl_lookup(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial,
X509_NAME *issuer)
{
X509_REVOKED rtmp, *rev;
int idx;
rtmp.serialNumber = serial;
- /* Sort revoked into serial number order if not already sorted.
- * Do this under a lock to avoid race condition.
- */
if (!sk_X509_REVOKED_is_sorted(crl->crl->revoked)) {
CRYPTO_w_lock(CRYPTO_LOCK_X509_CRL);
sk_X509_REVOKED_sort(crl->crl->revoked);
@@ -640,56 +589,18 @@ def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial,
return 0;
}
-void
-X509_CRL_set_default_method(const X509_CRL_METHOD *meth)
-{
- if (meth == NULL)
- default_crl_method = &int_crl_meth;
- else
- default_crl_method = meth;
-}
-
-X509_CRL_METHOD *
-X509_CRL_METHOD_new(int (*crl_init)(X509_CRL *crl),
- int (*crl_free)(X509_CRL *crl),
- int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret,
- ASN1_INTEGER *ser, X509_NAME *issuer),
- int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk))
-{
- X509_CRL_METHOD *m;
-
- if ((m = calloc(1, sizeof(X509_CRL_METHOD))) == NULL)
- return NULL;
-
- m->crl_init = crl_init;
- m->crl_free = crl_free;
- m->crl_lookup = crl_lookup;
- m->crl_verify = crl_verify;
- m->flags = X509_CRL_METHOD_DYNAMIC;
-
- return m;
-}
-
-void
-X509_CRL_METHOD_free(X509_CRL_METHOD *m)
-{
- if (m == NULL)
- return;
- if (!(m->flags & X509_CRL_METHOD_DYNAMIC))
- return;
- free(m);
-}
-
-void
-X509_CRL_set_meth_data(X509_CRL *crl, void *dat)
+int
+X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret,
+ ASN1_INTEGER *serial)
{
- crl->meth_data = dat;
+ return crl_lookup(crl, ret, serial, NULL);
}
-void *
-X509_CRL_get_meth_data(X509_CRL *crl)
+int
+X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
{
- return crl->meth_data;
+ return crl_lookup(crl, ret, X509_get_serialNumber(x),
+ X509_get_issuer_name(x));
}
int
diff --git a/crypto/bio/b_dump.c b/crypto/bio/b_dump.c
index e46424e6..4dcf710b 100644
--- a/crypto/bio/b_dump.c
+++ b/crypto/bio/b_dump.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: b_dump.c,v 1.26 2023/07/29 02:32:00 tb Exp $ */
+/* $OpenBSD: b_dump.c,v 1.30 2024/03/02 09:21:24 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -56,135 +56,156 @@
* [including the GNU Public Licence.]
*/
-/*
- * Stolen from tjh's ssl/ssl_trc.c stuff.
- */
-
+#include
+#include
#include
#include
#include
+#include
-#define TRUNCATE
-#define DUMP_WIDTH 16
-#define DUMP_WIDTH_LESS_INDENT(i) (DUMP_WIDTH - ((i - (i > 6 ? 6 : i) + 3) / 4))
+#include "bytestring.h"
-int
-BIO_dump_cb(int (*cb)(const void *data, size_t len, void *u),
- void *u, const char *s, int len)
-{
- return BIO_dump_indent_cb(cb, u, s, len, 0);
-}
+#define MAX_BYTES_PER_LINE 16
+
+/*
+ * The byte string s is dumped as lines of the following form:
+ * indent | byte count (4 digits) | " - " | hex dump | " " | ASCII dump
+ * Each byte uses 4 characters (two hex digits followed by a space and one
+ * ASCII character).
+ */
int
-BIO_dump_indent_cb(int (*cb)(const void *data, size_t len, void *u),
- void *u, const char *s, int len, int indent)
+BIO_dump_indent(BIO *bio, const char *s, int len, int indent)
{
- char buf[288 + 1], tmp[20], str[128 + 1];
- int i, j, rows, trc, written;
- unsigned char ch;
- int dump_width;
- int ret = 0;
+ CBB cbb;
+ CBS cbs;
+ int bytes_per_line, dumped, printed, trailing, written;
+ int ret = -1;
- trc = 0;
+ memset(&cbb, 0, sizeof(cbb));
-#ifdef TRUNCATE
- for (; (len > 0) && ((s[len - 1] == ' ') || (s[len - 1] == '\0')); len--)
- trc++;
-#endif
+ if (len < 0)
+ goto err;
+ CBS_init(&cbs, s, len);
if (indent < 0)
indent = 0;
if (indent > 64)
indent = 64;
- memset(str, ' ', indent);
- str[indent] = '\0';
-
- if ((dump_width = DUMP_WIDTH_LESS_INDENT(indent)) <= 0)
- return -1;
- rows = (len / dump_width);
- if ((rows * dump_width) < len)
- rows++;
- for (i = 0; i < rows; i++) {
- strlcpy(buf, str, sizeof buf);
- snprintf(tmp, sizeof tmp, "%04x - ", i*dump_width);
- strlcat(buf, tmp, sizeof buf);
- for (j = 0; j < dump_width; j++) {
- if (((i*dump_width) + j) >= len) {
- strlcat(buf, " ", sizeof buf);
- } else {
- ch = ((unsigned char)*(s + i*dump_width + j)) & 0xff;
- snprintf(tmp, sizeof tmp, "%02x%c", ch,
- j == 7 ? '-' : ' ');
- strlcat(buf, tmp, sizeof buf);
- }
- }
- strlcat(buf, " ", sizeof buf);
- for (j = 0; j < dump_width; j++) {
- if (((i*dump_width) + j) >= len)
- break;
- ch = ((unsigned char)*(s + i * dump_width + j)) & 0xff;
- snprintf(tmp, sizeof tmp, "%c",
- ((ch >= ' ') && (ch <= '~')) ? ch : '.');
- strlcat(buf, tmp, sizeof buf);
- }
- strlcat(buf, "\n", sizeof buf);
- /* if this is the last call then update the ddt_dump thing so
- * that we will move the selection point in the debug window
- */
- if ((written = cb((void *)buf, strlen(buf), u)) < 0)
- return -1;
- ret += written;
+ /*
+ * Less obfuscated version of the original calculation attempting to
+ * ensure that the dump doesn't overshoot 80 characters per line. For
+ * a very long string the byte count will still make it go past that.
+ */
+ bytes_per_line = MAX_BYTES_PER_LINE;
+ if (indent > 6)
+ bytes_per_line -= (indent - 3) / 4;
+ if (bytes_per_line <= 0)
+ goto err;
+
+ /* Strip and count trailing spaces and NULs. */
+ trailing = 0;
+ while (CBS_len(&cbs) > 0) {
+ uint8_t u8;
+
+ if (!CBS_peek_last_u8(&cbs, &u8))
+ goto err;
+ if (u8 != '\0' && u8 != ' ')
+ break;
+ if (!CBS_get_last_u8(&cbs, &u8))
+ goto err;
+ trailing++;
}
-#ifdef TRUNCATE
- if (trc > 0) {
- snprintf(buf, sizeof buf, "%s%04x - \n",
- str, len + trc);
- if ((written = cb((void *)buf, strlen(buf), u)) < 0)
- return -1;
- ret += written;
+
+ printed = 0;
+ dumped = 0;
+ while (CBS_len(&cbs) > 0) {
+ CBS row;
+ uint8_t ascii_dump[MAX_BYTES_PER_LINE];
+ int missing, row_bytes;
+
+ if ((row_bytes = CBS_len(&cbs)) > bytes_per_line)
+ row_bytes = bytes_per_line;
+ if (!CBS_get_bytes(&cbs, &row, row_bytes))
+ goto err;
+
+ /* Write out indent, byte count and initial " - ". */
+ if ((written = BIO_printf(bio, "%*s%04x - ", indent, "",
+ dumped)) < 0)
+ goto err;
+ if (printed > INT_MAX - written)
+ goto err;
+ printed += written;
+
+ /*
+ * Write out hex dump, prepare ASCII dump.
+ */
+
+ if (!CBB_init_fixed(&cbb, ascii_dump, sizeof(ascii_dump)))
+ goto err;
+ while (CBS_len(&row) > 0) {
+ uint8_t u8;
+ char sep = ' ';
+
+ if (!CBS_get_u8(&row, &u8))
+ goto err;
+
+ /* Historic behavior: print a '-' after eighth byte. */
+ if (row_bytes - CBS_len(&row) == 8)
+ sep = '-';
+ if ((written = BIO_printf(bio, "%02x%c", u8, sep)) < 0)
+ goto err;
+ if (printed > INT_MAX - written)
+ goto err;
+ printed += written;
+
+ /* Locale-independent version of !isprint(u8). */
+ if (u8 < ' ' || u8 > '~')
+ u8 = '.';
+ if (!CBB_add_u8(&cbb, u8))
+ goto err;
+ }
+ if (!CBB_finish(&cbb, NULL, NULL))
+ goto err;
+
+ /* Calculate number of bytes missing in dump of last line. */
+ if ((missing = bytes_per_line - row_bytes) < 0)
+ goto err;
+
+ /* Pad missing bytes, add 2 spaces and print the ASCII dump. */
+ if ((written = BIO_printf(bio, "%*s%.*s\n", 3 * missing + 2, "",
+ row_bytes, ascii_dump)) < 0)
+ goto err;
+ if (printed > INT_MAX - written)
+ goto err;
+ printed += written;
+
+ dumped += row_bytes;
}
-#endif
- return (ret);
-}
-static int
-write_fp(const void *data, size_t len, void *fp)
-{
- return fwrite(data, 1, len, fp);
-}
+ if (trailing > 0) {
+ if ((written = BIO_printf(bio, "%*s%04x - \n",
+ indent, "", dumped + trailing)) < 0)
+ goto err;
+ if (printed > INT_MAX - written)
+ goto err;
+ printed += written;
+ }
-int
-BIO_dump_fp(FILE *fp, const char *s, int len)
-{
- return BIO_dump_cb(write_fp, fp, s, len);
-}
-LCRYPTO_ALIAS(BIO_dump_fp);
+ ret = printed;
-int
-BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent)
-{
- return BIO_dump_indent_cb(write_fp, fp, s, len, indent);
-}
-LCRYPTO_ALIAS(BIO_dump_indent_fp);
+ err:
+ CBB_cleanup(&cbb);
-static int
-write_bio(const void *data, size_t len, void *bp)
-{
- return BIO_write((BIO *)bp, (const char *)data, len);
+ return ret;
}
+LCRYPTO_ALIAS(BIO_dump_indent);
int
-BIO_dump(BIO *bp, const char *s, int len)
+BIO_dump(BIO *bio, const char *s, int len)
{
- return BIO_dump_cb(write_bio, bp, s, len);
+ return BIO_dump_indent(bio, s, len, 0);
}
LCRYPTO_ALIAS(BIO_dump);
-
-int
-BIO_dump_indent(BIO *bp, const char *s, int len, int indent)
-{
- return BIO_dump_indent_cb(write_bio, bp, s, len, indent);
-}
-LCRYPTO_ALIAS(BIO_dump_indent);
diff --git a/crypto/bio/b_print.c b/crypto/bio/b_print.c
index a750ac41..f6943ea3 100644
--- a/crypto/bio/b_print.c
+++ b/crypto/bio/b_print.c
@@ -1,21 +1,10 @@
-/* $OpenBSD: b_print.c,v 1.27 2023/07/05 21:23:37 beck Exp $ */
+/* $OpenBSD: b_print.c,v 1.28 2024/03/02 09:18:28 tb Exp $ */
/* Theo de Raadt places this file in the public domain. */
#include
-int
-BIO_printf(BIO *bio, const char *format, ...)
-{
- va_list args;
- int ret;
-
- va_start(args, format);
- ret = BIO_vprintf(bio, format, args);
- va_end(args);
- return (ret);
-}
-LCRYPTO_ALIAS(BIO_printf);
+#include "bio_local.h"
#ifdef HAVE_FUNOPEN
static int
@@ -40,7 +29,6 @@ BIO_vprintf(BIO *bio, const char *format, va_list args)
fail:
return (ret);
}
-LCRYPTO_ALIAS(BIO_vprintf);
#else /* !HAVE_FUNOPEN */
@@ -57,55 +45,18 @@ BIO_vprintf(BIO *bio, const char *format, va_list args)
free(buf);
return (ret);
}
-LCRYPTO_ALIAS(BIO_vprintf);
#endif /* HAVE_FUNOPEN */
-/*
- * BIO_snprintf and BIO_vsnprintf return -1 for overflow,
- * due to the history of this API. Justification:
- *
- * Traditional snprintf surfaced in 4.4BSD, and returned
- * "number of bytes wanted". Solaris and Windows opted to
- * return -1. A draft standard was written which returned -1.
- * Due to the large volume of code already using the first
- * semantics, the draft was repaired before standardization to
- * specify "number of bytes wanted" plus "-1 for character conversion
- * style errors". Solaris adapted to this rule, but Windows stuck
- * with -1.
- *
- * Original OpenSSL comment which is full of lies:
- *
- * "In case of truncation, return -1 like traditional snprintf.
- * (Current drafts for ISO/IEC 9899 say snprintf should return
- * the number of characters that would have been written,
- * had the buffer been large enough.)"
- */
int
-BIO_snprintf(char *buf, size_t n, const char *format, ...)
+BIO_printf(BIO *bio, const char *format, ...)
{
va_list args;
int ret;
va_start(args, format);
- ret = vsnprintf(buf, n, format, args);
+ ret = BIO_vprintf(bio, format, args);
va_end(args);
-
- if (ret >= n || ret == -1)
- return (-1);
- return (ret);
-}
-LCRYPTO_ALIAS(BIO_snprintf);
-
-int
-BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
-{
- int ret;
-
- ret = vsnprintf(buf, n, format, args);
-
- if (ret >= n || ret == -1)
- return (-1);
return (ret);
}
-LCRYPTO_ALIAS(BIO_vsnprintf);
+LCRYPTO_ALIAS(BIO_printf);
diff --git a/crypto/bio/bio_lib.c b/crypto/bio/bio_lib.c
index b058af0a..2f490a42 100644
--- a/crypto/bio/bio_lib.c
+++ b/crypto/bio/bio_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bio_lib.c,v 1.48 2023/08/07 10:58:56 tb Exp $ */
+/* $OpenBSD: bio_lib.c,v 1.52 2024/03/02 09:22:41 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -134,82 +134,64 @@ LCRYPTO_ALIAS(BIO_get_new_index);
BIO *
BIO_new(const BIO_METHOD *method)
{
- BIO *ret = NULL;
+ BIO *bio = NULL;
- /* XXX calloc */
- ret = malloc(sizeof(BIO));
- if (ret == NULL) {
+ if ((bio = calloc(1, sizeof(BIO))) == NULL) {
BIOerror(ERR_R_MALLOC_FAILURE);
- return (NULL);
- }
- if (!BIO_set(ret, method)) {
- free(ret);
- ret = NULL;
+ return NULL;
}
- return (ret);
-}
-LCRYPTO_ALIAS(BIO_new);
-int
-BIO_set(BIO *bio, const BIO_METHOD *method)
-{
bio->method = method;
- bio->callback = NULL;
- bio->callback_ex = NULL;
- bio->cb_arg = NULL;
- bio->init = 0;
bio->shutdown = 1;
- bio->flags = 0;
- bio->retry_reason = 0;
- bio->num = 0;
- bio->ptr = NULL;
- bio->prev_bio = NULL;
- bio->next_bio = NULL;
bio->references = 1;
- bio->num_read = 0L;
- bio->num_write = 0L;
+
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);
+
if (method->create != NULL) {
if (!method->create(bio)) {
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio,
&bio->ex_data);
- return (0);
+ free(bio);
+ return NULL;
}
}
- return (1);
+
+ return bio;
}
-LCRYPTO_ALIAS(BIO_set);
+LCRYPTO_ALIAS(BIO_new);
int
-BIO_free(BIO *a)
+BIO_free(BIO *bio)
{
int ret;
- if (a == NULL)
- return (0);
+ if (bio == NULL)
+ return 0;
- if (CRYPTO_add(&a->references, -1, CRYPTO_LOCK_BIO) > 0)
- return (1);
+ if (CRYPTO_add(&bio->references, -1, CRYPTO_LOCK_BIO) > 0)
+ return 1;
- if (a->callback != NULL || a->callback_ex != NULL) {
- if ((ret = (int)bio_call_callback(a, BIO_CB_FREE, NULL, 0, 0,
+ if (bio->callback != NULL || bio->callback_ex != NULL) {
+ if ((ret = (int)bio_call_callback(bio, BIO_CB_FREE, NULL, 0, 0,
0L, 1L, NULL)) <= 0)
- return (ret);
+ return ret;
}
- CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, a, &a->ex_data);
+ CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);
- if (a->method != NULL && a->method->destroy != NULL)
- a->method->destroy(a);
- free(a);
- return (1);
+ if (bio->method != NULL && bio->method->destroy != NULL)
+ bio->method->destroy(bio);
+
+ free(bio);
+
+ return 1;
}
LCRYPTO_ALIAS(BIO_free);
void
-BIO_vfree(BIO *a)
+BIO_vfree(BIO *bio)
{
- BIO_free(a);
+ BIO_free(bio);
}
LCRYPTO_ALIAS(BIO_vfree);
@@ -222,121 +204,121 @@ BIO_up_ref(BIO *bio)
LCRYPTO_ALIAS(BIO_up_ref);
void *
-BIO_get_data(BIO *a)
+BIO_get_data(BIO *bio)
{
- return (a->ptr);
+ return bio->ptr;
}
LCRYPTO_ALIAS(BIO_get_data);
void
-BIO_set_data(BIO *a, void *ptr)
+BIO_set_data(BIO *bio, void *ptr)
{
- a->ptr = ptr;
+ bio->ptr = ptr;
}
LCRYPTO_ALIAS(BIO_set_data);
int
-BIO_get_init(BIO *a)
+BIO_get_init(BIO *bio)
{
- return a->init;
+ return bio->init;
}
LCRYPTO_ALIAS(BIO_get_init);
void
-BIO_set_init(BIO *a, int init)
+BIO_set_init(BIO *bio, int init)
{
- a->init = init;
+ bio->init = init;
}
LCRYPTO_ALIAS(BIO_set_init);
int
-BIO_get_shutdown(BIO *a)
+BIO_get_shutdown(BIO *bio)
{
- return (a->shutdown);
+ return bio->shutdown;
}
LCRYPTO_ALIAS(BIO_get_shutdown);
void
-BIO_set_shutdown(BIO *a, int shut)
+BIO_set_shutdown(BIO *bio, int shut)
{
- a->shutdown = shut;
+ bio->shutdown = shut;
}
LCRYPTO_ALIAS(BIO_set_shutdown);
void
-BIO_clear_flags(BIO *b, int flags)
+BIO_clear_flags(BIO *bio, int flags)
{
- b->flags &= ~flags;
+ bio->flags &= ~flags;
}
LCRYPTO_ALIAS(BIO_clear_flags);
int
-BIO_test_flags(const BIO *b, int flags)
+BIO_test_flags(const BIO *bio, int flags)
{
- return (b->flags & flags);
+ return (bio->flags & flags);
}
LCRYPTO_ALIAS(BIO_test_flags);
void
-BIO_set_flags(BIO *b, int flags)
+BIO_set_flags(BIO *bio, int flags)
{
- b->flags |= flags;
+ bio->flags |= flags;
}
LCRYPTO_ALIAS(BIO_set_flags);
BIO_callback_fn
-BIO_get_callback(const BIO *b)
+BIO_get_callback(const BIO *bio)
{
- return b->callback;
+ return bio->callback;
}
LCRYPTO_ALIAS(BIO_get_callback);
void
-BIO_set_callback(BIO *b, BIO_callback_fn cb)
+BIO_set_callback(BIO *bio, BIO_callback_fn cb)
{
- b->callback = cb;
+ bio->callback = cb;
}
LCRYPTO_ALIAS(BIO_set_callback);
BIO_callback_fn_ex
-BIO_get_callback_ex(const BIO *b)
+BIO_get_callback_ex(const BIO *bio)
{
- return b->callback_ex;
+ return bio->callback_ex;
}
LCRYPTO_ALIAS(BIO_get_callback_ex);
void
-BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex cb)
+BIO_set_callback_ex(BIO *bio, BIO_callback_fn_ex cb)
{
- b->callback_ex = cb;
+ bio->callback_ex = cb;
}
LCRYPTO_ALIAS(BIO_set_callback_ex);
void
-BIO_set_callback_arg(BIO *b, char *arg)
+BIO_set_callback_arg(BIO *bio, char *arg)
{
- b->cb_arg = arg;
+ bio->cb_arg = arg;
}
LCRYPTO_ALIAS(BIO_set_callback_arg);
char *
-BIO_get_callback_arg(const BIO *b)
+BIO_get_callback_arg(const BIO *bio)
{
- return b->cb_arg;
+ return bio->cb_arg;
}
LCRYPTO_ALIAS(BIO_get_callback_arg);
const char *
-BIO_method_name(const BIO *b)
+BIO_method_name(const BIO *bio)
{
- return b->method->name;
+ return bio->method->name;
}
LCRYPTO_ALIAS(BIO_method_name);
int
-BIO_method_type(const BIO *b)
+BIO_method_type(const BIO *bio)
{
- return b->method->type;
+ return bio->method->type;
}
LCRYPTO_ALIAS(BIO_method_type);
@@ -544,37 +526,37 @@ BIO_gets(BIO *b, char *in, int inl)
LCRYPTO_ALIAS(BIO_gets);
int
-BIO_indent(BIO *b, int indent, int max)
+BIO_indent(BIO *bio, int indent, int max)
{
if (indent > max)
indent = max;
if (indent <= 0)
return 1;
- if (BIO_printf(b, "%*s", indent, "") <= 0)
+ if (BIO_printf(bio, "%*s", indent, "") <= 0)
return 0;
return 1;
}
LCRYPTO_ALIAS(BIO_indent);
long
-BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg)
+BIO_int_ctrl(BIO *bio, int cmd, long larg, int iarg)
{
int i;
i = iarg;
- return (BIO_ctrl(b, cmd, larg, (char *)&i));
+ return BIO_ctrl(bio, cmd, larg, (char *)&i);
}
LCRYPTO_ALIAS(BIO_int_ctrl);
char *
-BIO_ptr_ctrl(BIO *b, int cmd, long larg)
+BIO_ptr_ctrl(BIO *bio, int cmd, long larg)
{
char *p = NULL;
- if (BIO_ctrl(b, cmd, larg, (char *)&p) <= 0)
- return (NULL);
+ if (BIO_ctrl(bio, cmd, larg, (char *)&p) <= 0)
+ return NULL;
else
- return (p);
+ return p;
}
LCRYPTO_ALIAS(BIO_ptr_ctrl);
@@ -730,7 +712,7 @@ LCRYPTO_ALIAS(BIO_get_retry_BIO);
int
BIO_get_retry_reason(BIO *bio)
{
- return (bio->retry_reason);
+ return bio->retry_reason;
}
LCRYPTO_ALIAS(BIO_get_retry_reason);
diff --git a/crypto/bio/bio_local.h b/crypto/bio/bio_local.h
index 4eecf7e0..f59b5756 100644
--- a/crypto/bio/bio_local.h
+++ b/crypto/bio/bio_local.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: bio_local.h,v 1.5 2022/12/02 19:44:04 tb Exp $ */
+/* $OpenBSD: bio_local.h,v 1.6 2024/03/02 09:18:28 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -59,6 +59,8 @@
#ifndef HEADER_BIO_LOCAL_H
#define HEADER_BIO_LOCAL_H
+#include
+
__BEGIN_HIDDEN_DECLS
struct bio_method_st {
@@ -118,6 +120,8 @@ typedef struct bio_f_buffer_ctx_struct {
int obuf_off; /* write/read offset */
} BIO_F_BUFFER_CTX;
+int BIO_vprintf(BIO *bio, const char *format, va_list args);
+
__END_HIDDEN_DECLS
#endif /* !HEADER_BIO_LOCAL_H */
diff --git a/crypto/bn/arch/amd64/bignum_add.S b/crypto/bn/arch/amd64/bignum_add.S
index 06298ca6..5fe4aae7 100644
--- a/crypto/bn/arch/amd64/bignum_add.S
+++ b/crypto/bn/arch/amd64/bignum_add.S
@@ -49,7 +49,7 @@
S2N_BN_SYMBOL(bignum_add):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_cmadd.S b/crypto/bn/arch/amd64/bignum_cmadd.S
index 5ad71274..25ba17bc 100644
--- a/crypto/bn/arch/amd64/bignum_cmadd.S
+++ b/crypto/bn/arch/amd64/bignum_cmadd.S
@@ -54,7 +54,7 @@
S2N_BN_SYMBOL(bignum_cmadd):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_cmul.S b/crypto/bn/arch/amd64/bignum_cmul.S
index 9199c8f4..12f785d6 100644
--- a/crypto/bn/arch/amd64/bignum_cmul.S
+++ b/crypto/bn/arch/amd64/bignum_cmul.S
@@ -51,7 +51,7 @@
S2N_BN_SYMBOL(bignum_cmul):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_mul.S b/crypto/bn/arch/amd64/bignum_mul.S
index 2d7ed190..a3552679 100644
--- a/crypto/bn/arch/amd64/bignum_mul.S
+++ b/crypto/bn/arch/amd64/bignum_mul.S
@@ -59,7 +59,7 @@
S2N_BN_SYMBOL(bignum_mul):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_mul_4_8_alt.S b/crypto/bn/arch/amd64/bignum_mul_4_8_alt.S
index f02b09b2..70ff69e3 100644
--- a/crypto/bn/arch/amd64/bignum_mul_4_8_alt.S
+++ b/crypto/bn/arch/amd64/bignum_mul_4_8_alt.S
@@ -72,7 +72,7 @@
adc h, rdx
S2N_BN_SYMBOL(bignum_mul_4_8_alt):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_mul_8_16_alt.S b/crypto/bn/arch/amd64/bignum_mul_8_16_alt.S
index 97be83e1..066403b0 100644
--- a/crypto/bn/arch/amd64/bignum_mul_8_16_alt.S
+++ b/crypto/bn/arch/amd64/bignum_mul_8_16_alt.S
@@ -72,7 +72,7 @@
adc h, rdx
S2N_BN_SYMBOL(bignum_mul_8_16_alt):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_sqr.S b/crypto/bn/arch/amd64/bignum_sqr.S
index c4a0cabf..54e3f594 100644
--- a/crypto/bn/arch/amd64/bignum_sqr.S
+++ b/crypto/bn/arch/amd64/bignum_sqr.S
@@ -62,7 +62,7 @@
#define llshort ebp
S2N_BN_SYMBOL(bignum_sqr):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_sqr_4_8_alt.S b/crypto/bn/arch/amd64/bignum_sqr_4_8_alt.S
index b228414d..7c534ae9 100644
--- a/crypto/bn/arch/amd64/bignum_sqr_4_8_alt.S
+++ b/crypto/bn/arch/amd64/bignum_sqr_4_8_alt.S
@@ -71,7 +71,7 @@
adc c, 0
S2N_BN_SYMBOL(bignum_sqr_4_8_alt):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_sqr_8_16_alt.S b/crypto/bn/arch/amd64/bignum_sqr_8_16_alt.S
index 04efeec7..ac0b6f96 100644
--- a/crypto/bn/arch/amd64/bignum_sqr_8_16_alt.S
+++ b/crypto/bn/arch/amd64/bignum_sqr_8_16_alt.S
@@ -103,7 +103,7 @@
adc c, 0
S2N_BN_SYMBOL(bignum_sqr_8_16_alt):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bignum_sub.S b/crypto/bn/arch/amd64/bignum_sub.S
index 11a9bd7e..3ff8a305 100644
--- a/crypto/bn/arch/amd64/bignum_sub.S
+++ b/crypto/bn/arch/amd64/bignum_sub.S
@@ -49,7 +49,7 @@
S2N_BN_SYMBOL(bignum_sub):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/arch/amd64/bn_arch.h b/crypto/bn/arch/amd64/bn_arch.h
index 9d491e27..e1339438 100644
--- a/crypto/bn/arch/amd64/bn_arch.h
+++ b/crypto/bn/arch/amd64/bn_arch.h
@@ -21,7 +21,9 @@
#define HEADER_BN_ARCH_H
#ifdef _WIN32
+#ifndef OPENSSL_NO_ASM
#define OPENSSL_NO_ASM
+#endif
#else
#ifndef OPENSSL_NO_ASM
diff --git a/crypto/bn/arch/amd64/word_clz.S b/crypto/bn/arch/amd64/word_clz.S
index 464a9d90..3926fcd4 100644
--- a/crypto/bn/arch/amd64/word_clz.S
+++ b/crypto/bn/arch/amd64/word_clz.S
@@ -30,7 +30,7 @@
.text
S2N_BN_SYMBOL(word_clz):
- endbr64
+ _CET_ENDBR
#if WINDOWS_ABI
push rdi
diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c
index a50fa595..04852424 100644
--- a/crypto/bn/bn_exp.c
+++ b/crypto/bn/bn_exp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_exp.c,v 1.47 2023/07/08 12:21:58 beck Exp $ */
+/* $OpenBSD: bn_exp.c,v 1.52 2024/03/02 09:27:31 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -180,11 +180,12 @@ int
BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
BN_CTX *ctx)
{
- int i, j, bits, ret = 0, wstart, wend, window, wvalue;
+ int i, j, bits, wstart, wend, window, wvalue;
int start = 1;
- BIGNUM *d;
+ BIGNUM *d, *q;
/* Table of variables obtained from 'ctx' */
BIGNUM *val[TABLE_SIZE];
+ int ret = 0;
if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0) {
/* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */
@@ -192,6 +193,11 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
return -1;
}
+ if (r == m) {
+ BNerror(BN_R_INVALID_ARGUMENT);
+ return 0;
+ }
+
bits = BN_num_bits(p);
if (bits == 0) {
/* x**0 mod 1 is still zero. */
@@ -206,21 +212,24 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
BN_CTX_start(ctx);
if ((d = BN_CTX_get(ctx)) == NULL)
goto err;
+ if ((q = BN_CTX_get(ctx)) == NULL)
+ goto err;
if ((val[0] = BN_CTX_get(ctx)) == NULL)
goto err;
- if (!BN_nnmod(val[0],a,m,ctx))
- goto err; /* 1 */
+ if (!BN_nnmod(val[0], a, m, ctx))
+ goto err;
if (BN_is_zero(val[0])) {
BN_zero(r);
- ret = 1;
- goto err;
+ goto done;
}
+ if (!bn_copy(q, p))
+ goto err;
window = BN_window_bits_for_exponent_size(bits);
if (window > 1) {
if (!BN_mod_mul(d, val[0], val[0], m, ctx))
- goto err; /* 2 */
+ goto err;
j = 1 << (window - 1);
for (i = 1; i < j; i++) {
if (((val[i] = BN_CTX_get(ctx)) == NULL) ||
@@ -240,7 +249,7 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
goto err;
for (;;) {
- if (BN_is_bit_set(p, wstart) == 0) {
+ if (BN_is_bit_set(q, wstart) == 0) {
if (!start)
if (!BN_mod_mul(r, r, r, m, ctx))
goto err;
@@ -259,7 +268,7 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
for (i = 1; i < window; i++) {
if (wstart - i < 0)
break;
- if (BN_is_bit_set(p, wstart - i)) {
+ if (BN_is_bit_set(q, wstart - i)) {
wvalue <<= (i - wend);
wvalue |= 1;
wend = i;
@@ -286,13 +295,15 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
if (wstart < 0)
break;
}
+
+ done:
ret = 1;
-err:
+ err:
BN_CTX_end(ctx);
- return (ret);
+
+ return ret;
}
-LCRYPTO_ALIAS(BN_mod_exp_simple);
/* BN_mod_exp_mont_consttime() stores the precomputed powers in a specific layout
* so that accessing any of these table values shows the same access pattern as far
@@ -698,12 +709,12 @@ BN_mod_exp_mont_internal(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIG
goto err;
}
if (!BN_to_montgomery(val[0], aa, mont, ctx))
- goto err; /* 1 */
+ goto err;
window = BN_window_bits_for_exponent_size(bits);
if (window > 1) {
if (!BN_mod_mul_montgomery(d, val[0], val[0], mont, ctx))
- goto err; /* 2 */
+ goto err;
j = 1 << (window - 1);
for (i = 1; i < j; i++) {
if (((val[i] = BN_CTX_get(ctx)) == NULL) ||
@@ -950,18 +961,18 @@ BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p, const BIGNUM *m,
BN_CTX_end(ctx);
return (ret);
}
-LCRYPTO_ALIAS(BN_mod_exp_mont_word);
int
BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
BN_CTX *ctx)
{
- int i, j, bits, ret = 0, wstart, wend, window, wvalue;
+ int i, j, bits, wstart, wend, window, wvalue;
int start = 1;
- BIGNUM *aa;
+ BIGNUM *aa, *q;
/* Table of variables obtained from 'ctx' */
BIGNUM *val[TABLE_SIZE];
BN_RECP_CTX recp;
+ int ret = 0;
if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0) {
/* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */
@@ -985,6 +996,8 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
BN_CTX_start(ctx);
if ((aa = BN_CTX_get(ctx)) == NULL)
goto err;
+ if ((q = BN_CTX_get(ctx)) == NULL)
+ goto err;
if ((val[0] = BN_CTX_get(ctx)) == NULL)
goto err;
@@ -1001,17 +1014,18 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
}
if (!BN_nnmod(val[0], a, m, ctx))
- goto err; /* 1 */
+ goto err;
if (BN_is_zero(val[0])) {
BN_zero(r);
- ret = 1;
- goto err;
+ goto done;
}
+ if (!bn_copy(q, p))
+ goto err;
window = BN_window_bits_for_exponent_size(bits);
if (window > 1) {
if (!BN_mod_mul_reciprocal(aa, val[0], val[0], &recp, ctx))
- goto err; /* 2 */
+ goto err;
j = 1 << (window - 1);
for (i = 1; i < j; i++) {
if (((val[i] = BN_CTX_get(ctx)) == NULL) ||
@@ -1032,9 +1046,9 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
goto err;
for (;;) {
- if (BN_is_bit_set(p, wstart) == 0) {
+ if (BN_is_bit_set(q, wstart) == 0) {
if (!start)
- if (!BN_mod_mul_reciprocal(r, r,r, &recp, ctx))
+ if (!BN_mod_mul_reciprocal(r, r, r, &recp, ctx))
goto err;
if (wstart == 0)
break;
@@ -1051,7 +1065,7 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
for (i = 1; i < window; i++) {
if (wstart - i < 0)
break;
- if (BN_is_bit_set(p, wstart - i)) {
+ if (BN_is_bit_set(q, wstart - i)) {
wvalue <<= (i - wend);
wvalue |= 1;
wend = i;
@@ -1063,12 +1077,12 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
/* add the 'bytes above' */
if (!start)
for (i = 0; i < j; i++) {
- if (!BN_mod_mul_reciprocal(r, r,r, &recp, ctx))
+ if (!BN_mod_mul_reciprocal(r, r, r, &recp, ctx))
goto err;
}
/* wvalue will be an odd number < 2^window */
- if (!BN_mod_mul_reciprocal(r, r,val[wvalue >> 1], &recp, ctx))
+ if (!BN_mod_mul_reciprocal(r, r, val[wvalue >> 1], &recp, ctx))
goto err;
/* move the 'window' down further */
@@ -1078,12 +1092,15 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
if (wstart < 0)
break;
}
+
+ done:
ret = 1;
-err:
+ err:
BN_CTX_end(ctx);
BN_RECP_CTX_free(&recp);
- return (ret);
+
+ return ret;
}
static int
@@ -1335,4 +1352,3 @@ BN_mod_exp2_mont(BIGNUM *rr, const BIGNUM *a1, const BIGNUM *p1,
BN_CTX_end(ctx);
return (ret);
}
-LCRYPTO_ALIAS(BN_mod_exp2_mont);
diff --git a/crypto/bn/bn_local.h b/crypto/bn/bn_local.h
index a9ce466d..5acb546d 100644
--- a/crypto/bn/bn_local.h
+++ b/crypto/bn/bn_local.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_local.h,v 1.38 2023/08/09 09:23:03 tb Exp $ */
+/* $OpenBSD: bn_local.h,v 1.40 2024/03/02 09:27:31 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -308,6 +308,15 @@ int BN_div_ct(BIGNUM *q, BIGNUM *r, const BIGNUM *n, const BIGNUM *d,
int BN_mod_ct(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);
int BN_mod_nonct(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);
+int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p,
+ const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
+int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1,
+ const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m,
+ BN_CTX *ctx, BN_MONT_CTX *m_ctx);
+
+int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
+ const BIGNUM *m, BN_CTX *ctx);
+
BIGNUM *BN_mod_inverse_ct(BIGNUM *ret, const BIGNUM *a, const BIGNUM *n,
BN_CTX *ctx);
BIGNUM *BN_mod_inverse_nonct(BIGNUM *ret, const BIGNUM *a, const BIGNUM *n,
diff --git a/crypto/bn/bn_print.c b/crypto/bn/bn_print.c
index e7678f7a..cd8b6636 100644
--- a/crypto/bn/bn_print.c
+++ b/crypto/bn/bn_print.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_print.c,v 1.46 2023/07/22 17:14:08 tb Exp $ */
+/* $OpenBSD: bn_print.c,v 1.47 2024/03/02 09:18:28 tb Exp $ */
/*
* Copyright (c) 2023 Theo Buehler
@@ -25,6 +25,7 @@
#include
#include
+#include "bio_local.h"
#include "bn_local.h"
#include "bytestring.h"
diff --git a/crypto/bn/modexp512-elf-x86_64.S b/crypto/bn/modexp512-elf-x86_64.S
index 87fc0261..0d984d0b 100644
--- a/crypto/bn/modexp512-elf-x86_64.S
+++ b/crypto/bn/modexp512-elf-x86_64.S
@@ -1,10 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.type MULADD_128x512,@function
.align 16
MULADD_128x512:
- endbr64
+_CET_ENDBR
movq 0(%rsi),%rax
mulq %rbp
addq %rax,%r8
@@ -135,7 +141,7 @@ MULADD_128x512:
.type mont_reduce,@function
.align 16
mont_reduce:
- endbr64
+_CET_ENDBR
leaq 192(%rsp),%rdi
movq 32(%rsp),%rsi
addq $576,%rsi
@@ -579,7 +585,7 @@ mont_reduce:
.type mont_mul_a3b,@function
.align 16
mont_mul_a3b:
- endbr64
+_CET_ENDBR
@@ -1086,7 +1092,7 @@ mont_mul_a3b:
.type sqr_reduce,@function
.align 16
sqr_reduce:
- endbr64
+_CET_ENDBR
movq 16(%rsp),%rcx
@@ -1470,7 +1476,7 @@ sqr_reduce:
.globl mod_exp_512
.type mod_exp_512,@function
mod_exp_512:
- endbr64
+_CET_ENDBR
pushq %rbp
pushq %rbx
pushq %r12
diff --git a/crypto/bn/modexp512-macosx-x86_64.S b/crypto/bn/modexp512-macosx-x86_64.S
index 4d7b0b82..ef53019b 100644
--- a/crypto/bn/modexp512-macosx-x86_64.S
+++ b/crypto/bn/modexp512-macosx-x86_64.S
@@ -1,9 +1,16 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
.p2align 4
MULADD_128x512:
+_CET_ENDBR
movq 0(%rsi),%rax
mulq %rbp
addq %rax,%r8
@@ -134,6 +141,7 @@ MULADD_128x512:
.p2align 4
mont_reduce:
+_CET_ENDBR
leaq 192(%rsp),%rdi
movq 32(%rsp),%rsi
addq $576,%rsi
@@ -577,6 +585,7 @@ mont_reduce:
.p2align 4
mont_mul_a3b:
+_CET_ENDBR
@@ -1083,6 +1092,7 @@ mont_mul_a3b:
.p2align 4
sqr_reduce:
+_CET_ENDBR
movq 16(%rsp),%rcx
@@ -1466,6 +1476,7 @@ sqr_reduce:
.globl _mod_exp_512
_mod_exp_512:
+_CET_ENDBR
pushq %rbp
pushq %rbx
pushq %r12
diff --git a/crypto/bn/modexp512-masm-x86_64.S b/crypto/bn/modexp512-masm-x86_64.S
index 9626fe38..1bb67dc9 100644
--- a/crypto/bn/modexp512-masm-x86_64.S
+++ b/crypto/bn/modexp512-masm-x86_64.S
@@ -1,28 +1,34 @@
; 1 "crypto/bn/modexp512-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/bn/modexp512-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+
+
+; 40 "./crypto/x86_arch.h"
+
+
@@ -66,12 +72,13 @@ OPTION DOTNAME
-; 3 "crypto/bn/modexp512-masm-x86_64.S.tmp" 2
+; 9 "crypto/bn/modexp512-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
ALIGN 16
MULADD_128x512 PROC PRIVATE
+
mov rax,QWORD PTR[rsi]
mul rbp
add r8,rax
@@ -202,6 +209,7 @@ MULADD_128x512 ENDP
ALIGN 16
mont_reduce PROC PRIVATE
+
lea rdi,QWORD PTR[192+rsp]
mov rsi,QWORD PTR[32+rsp]
add rsi,576
@@ -649,6 +657,7 @@ mont_mul_a3b PROC PRIVATE
+
mov rbp,QWORD PTR[rdi]
mov rax,r10
@@ -1151,6 +1160,7 @@ mont_mul_a3b ENDP
ALIGN 16
sqr_reduce PROC PRIVATE
+
mov rcx,QWORD PTR[16+rsp]
@@ -1544,6 +1554,7 @@ $L$SEH_begin_mod_exp_512::
mov rcx,r9
+
push rbp
push rbx
push r12
diff --git a/crypto/bn/mont-elf-x86_64.S b/crypto/bn/mont-elf-x86_64.S
index 7847a190..64e06054 100644
--- a/crypto/bn/mont-elf-x86_64.S
+++ b/crypto/bn/mont-elf-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -5,7 +11,7 @@
.type bn_mul_mont,@function
.align 16
bn_mul_mont:
- endbr64
+_CET_ENDBR
testl $3,%r9d
jnz .Lmul_enter
cmpl $8,%r9d
@@ -213,7 +219,7 @@ bn_mul_mont:
.align 16
bn_mul4x_mont:
.Lmul4x_enter:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -612,7 +618,7 @@ bn_mul4x_mont:
.align 16
bn_sqr4x_mont:
.Lsqr4x_enter:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
diff --git a/crypto/bn/mont-macosx-x86_64.S b/crypto/bn/mont-macosx-x86_64.S
index 7de69d90..283b6ac0 100644
--- a/crypto/bn/mont-macosx-x86_64.S
+++ b/crypto/bn/mont-macosx-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -5,6 +11,7 @@
.p2align 4
_bn_mul_mont:
+_CET_ENDBR
testl $3,%r9d
jnz L$mul_enter
cmpl $8,%r9d
@@ -212,6 +219,7 @@ L$mul_epilogue:
.p2align 4
bn_mul4x_mont:
L$mul4x_enter:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -610,6 +618,7 @@ L$mul4x_epilogue:
.p2align 4
bn_sqr4x_mont:
L$sqr4x_enter:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r12
@@ -1371,5 +1380,3 @@ L$sqr4x_copy:
L$sqr4x_epilogue:
retq
-.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.p2align 4
diff --git a/crypto/bn/mont-masm-x86_64.S b/crypto/bn/mont-masm-x86_64.S
index 4896acd1..7e5f1727 100644
--- a/crypto/bn/mont-masm-x86_64.S
+++ b/crypto/bn/mont-masm-x86_64.S
@@ -1,29 +1,33 @@
; 1 "crypto/bn/mont-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/bn/mont-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
+
-; 40 "./crypto/x86_arch.h"
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,7 +70,9 @@ OPTION DOTNAME
-; 3 "crypto/bn/mont-masm-x86_64.S.tmp" 2
+
+
+; 9 "crypto/bn/mont-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
PUBLIC bn_mul_mont
@@ -85,6 +91,7 @@ $L$SEH_begin_bn_mul_mont::
mov r9,QWORD PTR[48+rsp]
+
test r9d,3
jnz $L$mul_enter
cmp r9d,8
@@ -307,6 +314,7 @@ $L$SEH_begin_bn_mul4x_mont::
$L$mul4x_enter::
+
push rbx
push rbp
push r12
@@ -720,6 +728,7 @@ $L$SEH_begin_bn_sqr4x_mont::
$L$sqr4x_enter::
+
push rbx
push rbp
push r12
@@ -1484,12 +1493,6 @@ $L$sqr4x_epilogue::
DB 0F3h,0C3h ;repret
$L$SEH_end_bn_sqr4x_mont::
bn_sqr4x_mont ENDP
-DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
-DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
-DB 54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83
-DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
-DB 115,108,46,111,114,103,62,0
-ALIGN 16
.text$ ENDS
END
diff --git a/crypto/bn/mont5-elf-x86_64.S b/crypto/bn/mont5-elf-x86_64.S
index a3dbbcab..5a34eb5f 100644
--- a/crypto/bn/mont5-elf-x86_64.S
+++ b/crypto/bn/mont5-elf-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -5,7 +11,7 @@
.type bn_mul_mont_gather5,@function
.align 64
bn_mul_mont_gather5:
- endbr64
+_CET_ENDBR
testl $3,%r9d
jnz .Lmul_enter
cmpl $8,%r9d
@@ -401,7 +407,7 @@ bn_mul_mont_gather5:
.type bn_mul4x_mont_gather5,@function
.align 16
bn_mul4x_mont_gather5:
- endbr64
+_CET_ENDBR
.Lmul4x_enter:
movl %r9d,%r9d
movd 8(%rsp),%xmm5
@@ -992,7 +998,7 @@ bn_mul4x_mont_gather5:
.type bn_scatter5,@function
.align 16
bn_scatter5:
- endbr64
+_CET_ENDBR
cmpq $0,%rsi
jz .Lscatter_epilogue
leaq (%rdx,%rcx,8),%rdx
@@ -1011,7 +1017,7 @@ bn_scatter5:
.type bn_gather5,@function
.align 16
bn_gather5:
- endbr64
+_CET_ENDBR
.LSEH_begin_bn_gather5:
.byte 0x4c,0x8d,0x14,0x24
diff --git a/crypto/bn/mont5-macosx-x86_64.S b/crypto/bn/mont5-macosx-x86_64.S
index 039229fd..abf1a186 100644
--- a/crypto/bn/mont5-macosx-x86_64.S
+++ b/crypto/bn/mont5-macosx-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -5,6 +11,7 @@
.p2align 6
_bn_mul_mont_gather5:
+_CET_ENDBR
testl $3,%r9d
jnz L$mul_enter
cmpl $8,%r9d
@@ -400,6 +407,7 @@ L$mul_epilogue:
.p2align 4
bn_mul4x_mont_gather5:
+_CET_ENDBR
L$mul4x_enter:
movl %r9d,%r9d
movd 8(%rsp),%xmm5
@@ -990,6 +998,7 @@ L$mul4x_epilogue:
.p2align 4
_bn_scatter5:
+_CET_ENDBR
cmpq $0,%rsi
jz L$scatter_epilogue
leaq (%rdx,%rcx,8),%rdx
@@ -1008,6 +1017,7 @@ L$scatter_epilogue:
.p2align 4
_bn_gather5:
+_CET_ENDBR
L$SEH_begin_bn_gather5:
.byte 0x4c,0x8d,0x14,0x24
@@ -1167,8 +1177,9 @@ L$gather:
retq
L$SEH_end_bn_gather5:
+.section __DATA,__const
.p2align 6
L$inc:
.long 0,0, 1,1
.long 2,2, 2,2
-.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.text
diff --git a/crypto/bn/mont5-masm-x86_64.S b/crypto/bn/mont5-masm-x86_64.S
index cc709e67..99cba7d1 100644
--- a/crypto/bn/mont5-masm-x86_64.S
+++ b/crypto/bn/mont5-masm-x86_64.S
@@ -1,27 +1,33 @@
; 1 "crypto/bn/mont5-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/bn/mont5-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+
+
+; 16 "./crypto/x86_arch.h"
+
+
+
-; 40 "./crypto/x86_arch.h"
+; 40 "./crypto/x86_arch.h"
+
@@ -66,7 +72,7 @@ OPTION DOTNAME
-; 3 "crypto/bn/mont5-masm-x86_64.S.tmp" 2
+; 9 "crypto/bn/mont5-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
PUBLIC bn_mul_mont_gather5
@@ -85,6 +91,7 @@ $L$SEH_begin_bn_mul_mont_gather5::
mov r9,QWORD PTR[48+rsp]
+
test r9d,3
jnz $L$mul_enter
cmp r9d,8
@@ -495,6 +502,7 @@ $L$SEH_begin_bn_mul4x_mont_gather5::
mov r9,QWORD PTR[48+rsp]
+
$L$mul4x_enter::
mov r9d,r9d
movd xmm5,DWORD PTR[56+rsp]
@@ -1088,6 +1096,7 @@ PUBLIC bn_scatter5
ALIGN 16
bn_scatter5 PROC PUBLIC
+
cmp rdx,0
jz $L$scatter_epilogue
lea r8,QWORD PTR[r9*8+r8]
@@ -1106,6 +1115,7 @@ PUBLIC bn_gather5
ALIGN 16
bn_gather5 PROC PUBLIC
+
$L$SEH_begin_bn_gather5::
DB 04ch,08dh,014h,024h
@@ -1265,20 +1275,19 @@ $L$gather::
DB 0F3h,0C3h ;repret
$L$SEH_end_bn_gather5::
bn_gather5 ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
$L$inc::
DD 0,0,1,1
DD 2,2,2,2
-DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
-DB 112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115
-DB 99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111
-DB 114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79
-DB 71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111
-DB 112,101,110,115,115,108,46,111,114,103,62,0
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
mul_handler PROC PRIVATE
+
push rsi
push rdi
push rbx
diff --git a/crypto/bn/s2n_bignum_internal.h b/crypto/bn/s2n_bignum_internal.h
index f4136883..b82db7d0 100644
--- a/crypto/bn/s2n_bignum_internal.h
+++ b/crypto/bn/s2n_bignum_internal.h
@@ -18,6 +18,12 @@
# define S2N_BN_SYMBOL(name) name
#endif
+#ifdef __CET__
+# include
+#else
+# define _CET_ENDBR
+#endif
+
#define S2N_BN_SYM_VISIBILITY_DIRECTIVE(name) .globl S2N_BN_SYMBOL(name)
#ifdef S2N_BN_HIDE_SYMBOLS
# ifdef __APPLE__
diff --git a/crypto/camellia/cmll-elf-x86_64.S b/crypto/camellia/cmll-elf-x86_64.S
index ab4a184c..1540ef53 100644
--- a/crypto/camellia/cmll-elf-x86_64.S
+++ b/crypto/camellia/cmll-elf-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -6,7 +12,7 @@
.type Camellia_EncryptBlock,@function
.align 16
Camellia_EncryptBlock:
- endbr64
+_CET_ENDBR
movl $128,%eax
subl %edi,%eax
movl $3,%edi
@@ -19,7 +25,7 @@ Camellia_EncryptBlock:
.align 16
.Lenc_rounds:
Camellia_EncryptBlock_Rounds:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -68,7 +74,7 @@ Camellia_EncryptBlock_Rounds:
.type _x86_64_Camellia_encrypt,@function
.align 16
_x86_64_Camellia_encrypt:
- endbr64
+_CET_ENDBR
xorl 0(%r14),%r9d
xorl 4(%r14),%r8d
xorl 8(%r14),%r11d
@@ -278,7 +284,7 @@ _x86_64_Camellia_encrypt:
.type Camellia_DecryptBlock,@function
.align 16
Camellia_DecryptBlock:
- endbr64
+_CET_ENDBR
movl $128,%eax
subl %edi,%eax
movl $3,%edi
@@ -291,7 +297,7 @@ Camellia_DecryptBlock:
.align 16
.Ldec_rounds:
Camellia_DecryptBlock_Rounds:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -340,7 +346,7 @@ Camellia_DecryptBlock_Rounds:
.type _x86_64_Camellia_decrypt,@function
.align 16
_x86_64_Camellia_decrypt:
- endbr64
+_CET_ENDBR
xorl 0(%r14),%r9d
xorl 4(%r14),%r8d
xorl 8(%r14),%r11d
@@ -549,7 +555,7 @@ _x86_64_Camellia_decrypt:
.type Camellia_Ekeygen,@function
.align 16
Camellia_Ekeygen:
- endbr64
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -1615,7 +1621,7 @@ Camellia_Ekeygen:
.type Camellia_cbc_encrypt,@function
.align 16
Camellia_cbc_encrypt:
- endbr64
+_CET_ENDBR
cmpq $0,%rdx
je .Lcbc_abort
pushq %rbx
diff --git a/crypto/camellia/cmll-macosx-x86_64.S b/crypto/camellia/cmll-macosx-x86_64.S
index 5e7a1b7b..90d209d7 100644
--- a/crypto/camellia/cmll-macosx-x86_64.S
+++ b/crypto/camellia/cmll-macosx-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -6,6 +12,7 @@
.p2align 4
_Camellia_EncryptBlock:
+_CET_ENDBR
movl $128,%eax
subl %edi,%eax
movl $3,%edi
@@ -18,6 +25,7 @@ _Camellia_EncryptBlock:
.p2align 4
L$enc_rounds:
_Camellia_EncryptBlock_Rounds:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -66,6 +74,7 @@ L$enc_epilogue:
.p2align 4
_x86_64_Camellia_encrypt:
+_CET_ENDBR
xorl 0(%r14),%r9d
xorl 4(%r14),%r8d
xorl 8(%r14),%r11d
@@ -275,6 +284,7 @@ L$edone:
.p2align 4
_Camellia_DecryptBlock:
+_CET_ENDBR
movl $128,%eax
subl %edi,%eax
movl $3,%edi
@@ -287,6 +297,7 @@ _Camellia_DecryptBlock:
.p2align 4
L$dec_rounds:
_Camellia_DecryptBlock_Rounds:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -335,6 +346,7 @@ L$dec_epilogue:
.p2align 4
_x86_64_Camellia_decrypt:
+_CET_ENDBR
xorl 0(%r14),%r9d
xorl 4(%r14),%r8d
xorl 8(%r14),%r11d
@@ -543,6 +555,7 @@ L$ddone:
.p2align 4
_Camellia_Ekeygen:
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -1083,6 +1096,7 @@ L$done:
L$key_epilogue:
retq
+.section __DATA,__const
.p2align 6
L$Camellia_SIGMA:
.long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
@@ -1602,10 +1616,12 @@ L$Camellia_SBOX:
.long 0x008f8f8f,0xe300e3e3
.long 0x00010101,0x40004040
.long 0x003d3d3d,0x4f004f4f
+.text
.globl _Camellia_cbc_encrypt
.p2align 4
_Camellia_cbc_encrypt:
+_CET_ENDBR
cmpq $0,%rdx
je L$cbc_abort
pushq %rbx
@@ -1835,5 +1851,3 @@ L$cbc_done:
L$cbc_abort:
retq
-
-.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/crypto/camellia/cmll-masm-x86_64.S b/crypto/camellia/cmll-masm-x86_64.S
index e1871b50..cb401e47 100644
--- a/crypto/camellia/cmll-masm-x86_64.S
+++ b/crypto/camellia/cmll-masm-x86_64.S
@@ -1,28 +1,33 @@
; 1 "crypto/camellia/cmll-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/camellia/cmll-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,7 +71,8 @@ OPTION DOTNAME
-; 3 "crypto/camellia/cmll-masm-x86_64.S.tmp" 2
+
+; 9 "crypto/camellia/cmll-masm-x86_64.S.tmp" 2
.text$ SEGMENT ALIGN(64) 'CODE'
@@ -74,6 +80,7 @@ PUBLIC Camellia_EncryptBlock
ALIGN 16
Camellia_EncryptBlock PROC PUBLIC
+
mov eax,128
sub eax,edi
mov edi,3
@@ -96,6 +103,7 @@ $L$SEH_begin_Camellia_EncryptBlock_Rounds::
mov rcx,r9
+
push rbx
push rbp
push r13
@@ -147,6 +155,7 @@ Camellia_EncryptBlock_Rounds ENDP
ALIGN 16
_x86_64_Camellia_encrypt PROC PRIVATE
+
xor r9d,DWORD PTR[r14]
xor r8d,DWORD PTR[4+r14]
xor r11d,DWORD PTR[8+r14]
@@ -356,6 +365,7 @@ PUBLIC Camellia_DecryptBlock
ALIGN 16
Camellia_DecryptBlock PROC PUBLIC
+
mov eax,128
sub eax,edi
mov edi,3
@@ -378,6 +388,7 @@ $L$SEH_begin_Camellia_DecryptBlock_Rounds::
mov rcx,r9
+
push rbx
push rbp
push r13
@@ -429,6 +440,7 @@ Camellia_DecryptBlock_Rounds ENDP
ALIGN 16
_x86_64_Camellia_decrypt PROC PRIVATE
+
xor r9d,DWORD PTR[r14]
xor r8d,DWORD PTR[4+r14]
xor r11d,DWORD PTR[8+r14]
@@ -646,6 +658,7 @@ $L$SEH_begin_Camellia_Ekeygen::
mov rdx,r8
+
push rbx
push rbp
push r13
@@ -1189,6 +1202,8 @@ $L$key_epilogue::
DB 0F3h,0C3h ;repret
$L$SEH_end_Camellia_Ekeygen::
Camellia_Ekeygen ENDP
+.text$ ENDS
+.rdata SEGMENT READONLY ALIGN(64)
ALIGN 64
$L$Camellia_SIGMA::
DD 03bcc908bh,0a09e667fh,04caa73b2h,0b67ae858h
@@ -1708,6 +1723,8 @@ $L$Camellia_SBOX::
DD 0008f8f8fh,0e300e3e3h
DD 000010101h,040004040h
DD 0003d3d3dh,04f004f4fh
+.rdata ENDS
+.text$ SEGMENT ALIGN(64) 'CODE'
PUBLIC Camellia_cbc_encrypt
ALIGN 16
@@ -1724,6 +1741,7 @@ $L$SEH_begin_Camellia_cbc_encrypt::
mov r9,QWORD PTR[48+rsp]
+
cmp rdx,0
je $L$cbc_abort
push rbx
@@ -1957,10 +1975,6 @@ $L$cbc_abort::
$L$SEH_end_Camellia_cbc_encrypt::
Camellia_cbc_encrypt ENDP
-DB 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
-DB 95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112
-DB 101,110,115,115,108,46,111,114,103,62,0
-
.text$ ENDS
END
diff --git a/crypto/camellia/cmll-mingw64-x86_64.S b/crypto/camellia/cmll-mingw64-x86_64.S
index 75966f43..37e6665a 100644
--- a/crypto/camellia/cmll-mingw64-x86_64.S
+++ b/crypto/camellia/cmll-mingw64-x86_64.S
@@ -1,3 +1,9 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.text
@@ -6,6 +12,7 @@
.def Camellia_EncryptBlock; .scl 2; .type 32; .endef
.p2align 4
Camellia_EncryptBlock:
+_CET_ENDBR
movl $128,%eax
subl %edi,%eax
movl $3,%edi
@@ -27,6 +34,7 @@ Camellia_EncryptBlock_Rounds:
movq %r8,%rdx
movq %r9,%rcx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -77,6 +85,7 @@ Camellia_EncryptBlock_Rounds:
.def _x86_64_Camellia_encrypt; .scl 3; .type 32; .endef
.p2align 4
_x86_64_Camellia_encrypt:
+_CET_ENDBR
xorl 0(%r14),%r9d
xorl 4(%r14),%r8d
xorl 8(%r14),%r11d
@@ -286,6 +295,7 @@ _x86_64_Camellia_encrypt:
.def Camellia_DecryptBlock; .scl 2; .type 32; .endef
.p2align 4
Camellia_DecryptBlock:
+_CET_ENDBR
movl $128,%eax
subl %edi,%eax
movl $3,%edi
@@ -307,6 +317,7 @@ Camellia_DecryptBlock_Rounds:
movq %r8,%rdx
movq %r9,%rcx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -357,6 +368,7 @@ Camellia_DecryptBlock_Rounds:
.def _x86_64_Camellia_decrypt; .scl 3; .type 32; .endef
.p2align 4
_x86_64_Camellia_decrypt:
+_CET_ENDBR
xorl 0(%r14),%r9d
xorl 4(%r14),%r8d
xorl 8(%r14),%r11d
@@ -573,6 +585,7 @@ Camellia_Ekeygen:
movq %rdx,%rsi
movq %r8,%rdx
+_CET_ENDBR
pushq %rbx
pushq %rbp
pushq %r13
@@ -1115,6 +1128,7 @@ Camellia_Ekeygen:
movq 16(%rsp),%rsi
retq
.LSEH_end_Camellia_Ekeygen:
+.section .rodata
.p2align 6
.LCamellia_SIGMA:
.long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
@@ -1634,6 +1648,7 @@ Camellia_Ekeygen:
.long 0x008f8f8f,0xe300e3e3
.long 0x00010101,0x40004040
.long 0x003d3d3d,0x4f004f4f
+.text
.globl Camellia_cbc_encrypt
.def Camellia_cbc_encrypt; .scl 2; .type 32; .endef
.p2align 4
@@ -1649,6 +1664,7 @@ Camellia_cbc_encrypt:
movq 40(%rsp),%r8
movq 48(%rsp),%r9
+_CET_ENDBR
cmpq $0,%rdx
je .Lcbc_abort
pushq %rbx
@@ -1880,5 +1896,3 @@ Camellia_cbc_encrypt:
movq 16(%rsp),%rsi
retq
.LSEH_end_Camellia_cbc_encrypt:
-
-.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/crypto/cmac/cm_ameth.c b/crypto/cmac/cm_ameth.c
index 04e0eb83..50db6175 100644
--- a/crypto/cmac/cm_ameth.c
+++ b/crypto/cmac/cm_ameth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cm_ameth.c,v 1.10 2022/11/26 16:08:51 tb Exp $ */
+/* $OpenBSD: cm_ameth.c,v 1.11 2024/01/04 17:01:26 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2010.
*/
@@ -77,8 +77,8 @@ cmac_key_free(EVP_PKEY *pkey)
}
const EVP_PKEY_ASN1_METHOD cmac_asn1_meth = {
+ .base_method = &cmac_asn1_meth,
.pkey_id = EVP_PKEY_CMAC,
- .pkey_base_id = EVP_PKEY_CMAC,
.pem_str = "CMAC",
.info = "OpenSSL CMAC method",
diff --git a/crypto/cmac/cm_pmeth.c b/crypto/cmac/cm_pmeth.c
index d47cfb7b..03538e20 100644
--- a/crypto/cmac/cm_pmeth.c
+++ b/crypto/cmac/cm_pmeth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cm_pmeth.c,v 1.10 2022/11/26 16:08:51 tb Exp $ */
+/* $OpenBSD: cm_pmeth.c,v 1.12 2023/12/28 21:56:12 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2010.
*/
@@ -92,18 +92,23 @@ pkey_cmac_cleanup(EVP_PKEY_CTX *ctx)
static int
pkey_cmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
{
- CMAC_CTX *cmkey = CMAC_CTX_new();
- CMAC_CTX *cmctx = ctx->data;
+ CMAC_CTX *cmkey;
+ int ret = 0;
- if (!cmkey)
- return 0;
- if (!CMAC_CTX_copy(cmkey, cmctx)) {
- CMAC_CTX_free(cmkey);
- return 0;
- }
- EVP_PKEY_assign(pkey, EVP_PKEY_CMAC, cmkey);
+ if ((cmkey = CMAC_CTX_new()) == NULL)
+ goto err;
+ if (!CMAC_CTX_copy(cmkey, ctx->data))
+ goto err;
+ if (!EVP_PKEY_assign(pkey, EVP_PKEY_CMAC, cmkey))
+ goto err;
+ cmkey = NULL;
- return 1;
+ ret = 1;
+
+ err:
+ CMAC_CTX_free(cmkey);
+
+ return ret;
}
static int
@@ -143,7 +148,7 @@ pkey_cmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
break;
case EVP_PKEY_CTRL_CIPHER:
- if (!CMAC_Init(cmctx, NULL, 0, p2, ctx->engine))
+ if (!CMAC_Init(cmctx, NULL, 0, p2, NULL))
return 0;
break;
diff --git a/crypto/cmac/cmac.c b/crypto/cmac/cmac.c
index 9c05a98e..7ad34348 100644
--- a/crypto/cmac/cmac.c
+++ b/crypto/cmac/cmac.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmac.c,v 1.14 2023/07/08 14:27:14 beck Exp $ */
+/* $OpenBSD: cmac.c,v 1.23 2024/03/02 09:30:21 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
*/
@@ -59,37 +59,52 @@
#include "evp_local.h"
+/*
+ * This implementation follows https://doi.org/10.6028/NIST.SP.800-38B
+ */
+
+/*
+ * CMAC context. k1 and k2 are the secret subkeys, computed as in section 6.1.
+ * The temporary block tbl is a scratch buffer that holds intermediate secrets.
+ */
struct CMAC_CTX_st {
- /* Cipher context to use */
- EVP_CIPHER_CTX cctx;
- /* Keys k1 and k2 */
+ EVP_CIPHER_CTX *cipher_ctx;
unsigned char k1[EVP_MAX_BLOCK_LENGTH];
unsigned char k2[EVP_MAX_BLOCK_LENGTH];
- /* Temporary block */
unsigned char tbl[EVP_MAX_BLOCK_LENGTH];
- /* Last (possibly partial) block */
unsigned char last_block[EVP_MAX_BLOCK_LENGTH];
- /* Number of bytes in last block: -1 means context not initialised */
+ /* Bytes in last block. -1 means not initialized. */
int nlast_block;
};
-
-/* Make temporary keys K1 and K2 */
-
+/*
+ * SP 800-38B, section 6.1, steps 2 and 3: given the input key l, calculate
+ * the subkeys k1 and k2: shift l one bit to the left. If the most significant
+ * bit of l was 1, additionally xor the result with Rb to get kn.
+ *
+ * Step 2: calculate k1 with l being the intermediate block CIPH_K(0),
+ * Step 3: calculate k2 from l == k1.
+ *
+ * Per 5.3, Rb is the lexically first irreducible polynomial of degree b with
+ * the minimum number of non-zero terms. This gives R128 = (1 << 128) | 0x87
+ * and R64 = (1 << 64) | 0x1b for the only supported block sizes 128 and 64.
+ */
static void
-make_kn(unsigned char *k1, unsigned char *l, int bl)
+make_kn(unsigned char *kn, const unsigned char *l, int block_size)
{
+ unsigned char mask, Rb;
int i;
- /* Shift block to left, including carry */
- for (i = 0; i < bl; i++) {
- k1[i] = l[i] << 1;
- if (i < bl - 1 && l[i + 1] & 0x80)
- k1[i] |= 1;
- }
- /* If MSB set fixup with R */
- if (l[0] & 0x80)
- k1[bl - 1] ^= bl == 16 ? 0x87 : 0x1b;
+ /* Choose Rb according to the block size in bytes. */
+ Rb = block_size == 16 ? 0x87 : 0x1b;
+
+ /* Compute l << 1 up to last byte. */
+ for (i = 0; i < block_size - 1; i++)
+ kn[i] = (l[i] << 1) | (l[i + 1] >> 7);
+
+ /* Only xor with Rb if the MSB is one. */
+ mask = 0 - (l[0] >> 7);
+ kn[block_size - 1] = (l[block_size - 1] << 1) ^ (Rb & mask);
}
CMAC_CTX *
@@ -97,19 +112,26 @@ CMAC_CTX_new(void)
{
CMAC_CTX *ctx;
- ctx = malloc(sizeof(CMAC_CTX));
- if (!ctx)
- return NULL;
- EVP_CIPHER_CTX_init(&ctx->cctx);
+ if ((ctx = calloc(1, sizeof(CMAC_CTX))) == NULL)
+ goto err;
+ if ((ctx->cipher_ctx = EVP_CIPHER_CTX_new()) == NULL)
+ goto err;
+
ctx->nlast_block = -1;
+
return ctx;
+
+ err:
+ CMAC_CTX_free(ctx);
+
+ return NULL;
}
LCRYPTO_ALIAS(CMAC_CTX_new);
void
CMAC_CTX_cleanup(CMAC_CTX *ctx)
{
- EVP_CIPHER_CTX_cleanup(&ctx->cctx);
+ (void)EVP_CIPHER_CTX_reset(ctx->cipher_ctx);
explicit_bzero(ctx->tbl, EVP_MAX_BLOCK_LENGTH);
explicit_bzero(ctx->k1, EVP_MAX_BLOCK_LENGTH);
explicit_bzero(ctx->k2, EVP_MAX_BLOCK_LENGTH);
@@ -121,7 +143,7 @@ LCRYPTO_ALIAS(CMAC_CTX_cleanup);
EVP_CIPHER_CTX *
CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx)
{
- return &ctx->cctx;
+ return ctx->cipher_ctx;
}
LCRYPTO_ALIAS(CMAC_CTX_get0_cipher_ctx);
@@ -132,24 +154,25 @@ CMAC_CTX_free(CMAC_CTX *ctx)
return;
CMAC_CTX_cleanup(ctx);
- free(ctx);
+ EVP_CIPHER_CTX_free(ctx->cipher_ctx);
+ freezero(ctx, sizeof(CMAC_CTX));
}
LCRYPTO_ALIAS(CMAC_CTX_free);
int
CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in)
{
- int bl;
+ int block_size;
if (in->nlast_block == -1)
return 0;
- if (!EVP_CIPHER_CTX_copy(&out->cctx, &in->cctx))
+ if (!EVP_CIPHER_CTX_copy(out->cipher_ctx, in->cipher_ctx))
return 0;
- bl = EVP_CIPHER_CTX_block_size(&in->cctx);
- memcpy(out->k1, in->k1, bl);
- memcpy(out->k2, in->k2, bl);
- memcpy(out->tbl, in->tbl, bl);
- memcpy(out->last_block, in->last_block, bl);
+ block_size = EVP_CIPHER_CTX_block_size(in->cipher_ctx);
+ memcpy(out->k1, in->k1, block_size);
+ memcpy(out->k2, in->k2, block_size);
+ memcpy(out->tbl, in->tbl, block_size);
+ memcpy(out->last_block, in->last_block, block_size);
out->nlast_block = in->nlast_block;
return 1;
}
@@ -160,44 +183,68 @@ CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,
const EVP_CIPHER *cipher, ENGINE *impl)
{
static unsigned char zero_iv[EVP_MAX_BLOCK_LENGTH];
+ int block_size;
/* All zeros means restart */
- if (!key && !cipher && !impl && keylen == 0) {
+ if (key == NULL && cipher == NULL && keylen == 0) {
/* Not initialised */
if (ctx->nlast_block == -1)
return 0;
- if (!EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, zero_iv))
+ if (!EVP_EncryptInit_ex(ctx->cipher_ctx, NULL, NULL, NULL, zero_iv))
return 0;
- memset(ctx->tbl, 0, EVP_CIPHER_CTX_block_size(&ctx->cctx));
+ explicit_bzero(ctx->tbl, sizeof(ctx->tbl));
ctx->nlast_block = 0;
return 1;
}
- /* Initialise context */
- if (cipher && !EVP_EncryptInit_ex(&ctx->cctx, cipher, impl, NULL, NULL))
- return 0;
- /* Non-NULL key means initialisation complete */
- if (key) {
- int bl;
- if (!EVP_CIPHER_CTX_cipher(&ctx->cctx))
+ /* Initialise context. */
+ if (cipher != NULL) {
+ /*
+ * Disallow ciphers for which EVP_Cipher() behaves differently.
+ * These are AEAD ciphers (or AES keywrap) for which the CMAC
+ * construction makes little sense.
+ */
+ if ((cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) != 0)
return 0;
- if (!EVP_CIPHER_CTX_set_key_length(&ctx->cctx, keylen))
+ if (!EVP_EncryptInit_ex(ctx->cipher_ctx, cipher, NULL, NULL, NULL))
return 0;
- if (!EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, key, zero_iv))
+ }
+
+ /* Non-NULL key means initialisation is complete. */
+ if (key != NULL) {
+ if (EVP_CIPHER_CTX_cipher(ctx->cipher_ctx) == NULL)
+ return 0;
+
+ /* make_kn() only supports block sizes of 8 and 16 bytes. */
+ block_size = EVP_CIPHER_CTX_block_size(ctx->cipher_ctx);
+ if (block_size != 8 && block_size != 16)
+ return 0;
+
+ /*
+ * Section 6.1, step 1: store the intermediate secret CIPH_K(0)
+ * in ctx->tbl.
+ */
+ if (!EVP_CIPHER_CTX_set_key_length(ctx->cipher_ctx, keylen))
return 0;
- bl = EVP_CIPHER_CTX_block_size(&ctx->cctx);
- if (!EVP_Cipher(&ctx->cctx, ctx->tbl, zero_iv, bl))
+ if (!EVP_EncryptInit_ex(ctx->cipher_ctx, NULL, NULL, key, zero_iv))
return 0;
- make_kn(ctx->k1, ctx->tbl, bl);
- make_kn(ctx->k2, ctx->k1, bl);
- explicit_bzero(ctx->tbl, bl);
- /* Reset context again ready for first data block */
- if (!EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, zero_iv))
+ if (!EVP_Cipher(ctx->cipher_ctx, ctx->tbl, zero_iv, block_size))
return 0;
- /* Zero tbl so resume works */
- memset(ctx->tbl, 0, bl);
+
+ /* Section 6.1, step 2: compute k1 from intermediate secret. */
+ make_kn(ctx->k1, ctx->tbl, block_size);
+ /* Section 6.1, step 3: compute k2 from k1. */
+ make_kn(ctx->k2, ctx->k1, block_size);
+
+ /* Destroy intermediate secret and reset last block count. */
+ explicit_bzero(ctx->tbl, sizeof(ctx->tbl));
ctx->nlast_block = 0;
+
+ /* Reset context again to get ready for the first data block. */
+ if (!EVP_EncryptInit_ex(ctx->cipher_ctx, NULL, NULL, NULL, zero_iv))
+ return 0;
}
+
return 1;
}
LCRYPTO_ALIAS(CMAC_Init);
@@ -206,18 +253,18 @@ int
CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen)
{
const unsigned char *data = in;
- size_t bl;
+ size_t block_size;
if (ctx->nlast_block == -1)
return 0;
if (dlen == 0)
return 1;
- bl = EVP_CIPHER_CTX_block_size(&ctx->cctx);
+ block_size = EVP_CIPHER_CTX_block_size(ctx->cipher_ctx);
/* Copy into partial block if we need to */
if (ctx->nlast_block > 0) {
size_t nleft;
- nleft = bl - ctx->nlast_block;
+ nleft = block_size - ctx->nlast_block;
if (dlen < nleft)
nleft = dlen;
memcpy(ctx->last_block + ctx->nlast_block, data, nleft);
@@ -228,15 +275,16 @@ CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen)
return 1;
data += nleft;
/* Else not final block so encrypt it */
- if (!EVP_Cipher(&ctx->cctx, ctx->tbl, ctx->last_block, bl))
+ if (!EVP_Cipher(ctx->cipher_ctx, ctx->tbl, ctx->last_block,
+ block_size))
return 0;
}
/* Encrypt all but one of the complete blocks left */
- while (dlen > bl) {
- if (!EVP_Cipher(&ctx->cctx, ctx->tbl, data, bl))
+ while (dlen > block_size) {
+ if (!EVP_Cipher(ctx->cipher_ctx, ctx->tbl, data, block_size))
return 0;
- dlen -= bl;
- data += bl;
+ dlen -= block_size;
+ data += block_size;
}
/* Copy any data left to last block buffer */
memcpy(ctx->last_block, data, dlen);
@@ -248,45 +296,30 @@ LCRYPTO_ALIAS(CMAC_Update);
int
CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen)
{
- int i, bl, lb;
+ int i, block_size, lb;
if (ctx->nlast_block == -1)
return 0;
- bl = EVP_CIPHER_CTX_block_size(&ctx->cctx);
- *poutlen = (size_t)bl;
+ block_size = EVP_CIPHER_CTX_block_size(ctx->cipher_ctx);
+ *poutlen = (size_t)block_size;
if (!out)
return 1;
lb = ctx->nlast_block;
/* Is last block complete? */
- if (lb == bl) {
- for (i = 0; i < bl; i++)
+ if (lb == block_size) {
+ for (i = 0; i < block_size; i++)
out[i] = ctx->last_block[i] ^ ctx->k1[i];
} else {
ctx->last_block[lb] = 0x80;
- if (bl - lb > 1)
- memset(ctx->last_block + lb + 1, 0, bl - lb - 1);
- for (i = 0; i < bl; i++)
+ if (block_size - lb > 1)
+ memset(ctx->last_block + lb + 1, 0, block_size - lb - 1);
+ for (i = 0; i < block_size; i++)
out[i] = ctx->last_block[i] ^ ctx->k2[i];
}
- if (!EVP_Cipher(&ctx->cctx, out, out, bl)) {
- explicit_bzero(out, bl);
+ if (!EVP_Cipher(ctx->cipher_ctx, out, out, block_size)) {
+ explicit_bzero(out, block_size);
return 0;
}
return 1;
}
LCRYPTO_ALIAS(CMAC_Final);
-
-int
-CMAC_resume(CMAC_CTX *ctx)
-{
- if (ctx->nlast_block == -1)
- return 0;
- /* The buffer "tbl" containes the last fully encrypted block
- * which is the last IV (or all zeroes if no last encrypted block).
- * The last block has not been modified since CMAC_final().
- * So reinitialising using the last decrypted block will allow
- * CMAC to continue after calling CMAC_Final().
- */
- return EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, ctx->tbl);
-}
-LCRYPTO_ALIAS(CMAC_resume);
diff --git a/crypto/cms/cms_dd.c b/crypto/cms/cms_dd.c
index a08fccc2..0a357094 100644
--- a/crypto/cms/cms_dd.c
+++ b/crypto/cms/cms_dd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_dd.c,v 1.15 2022/11/26 16:08:51 tb Exp $ */
+/* $OpenBSD: cms_dd.c,v 1.17 2023/10/26 09:08:57 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -54,13 +54,14 @@
#include
-#include "cryptlib.h"
-#include
-#include
-#include
-#include
+#include
#include
+#include
+#include
+#include
+
#include "cms_local.h"
+#include "x509_local.h"
/* CMS DigestedData Utilities */
@@ -85,7 +86,8 @@ cms_DigestedData_create(const EVP_MD *md)
dd->version = 0;
dd->encapContentInfo->eContentType = OBJ_nid2obj(NID_pkcs7_data);
- X509_ALGOR_set_md(dd->digestAlgorithm, md);
+ if (!X509_ALGOR_set_evp_md(dd->digestAlgorithm, md))
+ goto err;
return cms;
diff --git a/crypto/cms/cms_enc.c b/crypto/cms/cms_enc.c
index 547f9ff7..dee643fa 100644
--- a/crypto/cms/cms_enc.c
+++ b/crypto/cms/cms_enc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_enc.c,v 1.23 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: cms_enc.c,v 1.24 2024/01/14 18:40:24 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -61,7 +61,10 @@
#include
#include
#include
+
#include "cms_local.h"
+#include "evp_local.h"
+#include "x509_local.h"
/* CMS EncryptedData Utilities */
diff --git a/crypto/cms/cms_env.c b/crypto/cms/cms_env.c
index 7bb8f613..98979cda 100644
--- a/crypto/cms/cms_env.c
+++ b/crypto/cms/cms_env.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_env.c,v 1.26 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: cms_env.c,v 1.27 2024/01/14 18:40:24 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -54,16 +54,17 @@
#include
-#include "cryptlib.h"
#include
#include
#include
#include
#include
#include
-#include "cms_local.h"
+
#include "asn1/asn1_local.h"
+#include "cms_local.h"
#include "evp/evp_local.h"
+#include "x509_local.h"
/* CMS EnvelopedData Utilities */
diff --git a/crypto/cms/cms_ess.c b/crypto/cms/cms_ess.c
index b9a4cd8a..16b54c19 100644
--- a/crypto/cms/cms_ess.c
+++ b/crypto/cms/cms_ess.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_ess.c,v 1.23 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: cms_ess.c,v 1.24 2024/01/14 18:40:24 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -54,15 +54,15 @@
#include
-#include "cryptlib.h"
#include
#include
#include
#include
#include
#include
-#include "cms_local.h"
+#include "cms_local.h"
+#include "x509_local.h"
CMS_ReceiptRequest *
d2i_CMS_ReceiptRequest(CMS_ReceiptRequest **a, const unsigned char **in, long len)
diff --git a/crypto/cms/cms_kari.c b/crypto/cms/cms_kari.c
index 8ed54e75..242a4969 100644
--- a/crypto/cms/cms_kari.c
+++ b/crypto/cms/cms_kari.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_kari.c,v 1.15 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: cms_kari.c,v 1.16 2024/02/02 14:11:45 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -279,7 +279,7 @@ cms_kek_cipher(unsigned char **pout, size_t *poutlen, const unsigned char *in,
explicit_bzero(kek, keklen);
if (!rv)
free(out);
- EVP_CIPHER_CTX_reset(kari->ctx);
+ (void)EVP_CIPHER_CTX_reset(kari->ctx);
/* FIXME: WHY IS kari->pctx freed here? /RL */
EVP_PKEY_CTX_free(kari->pctx);
kari->pctx = NULL;
diff --git a/crypto/cms/cms_pwri.c b/crypto/cms/cms_pwri.c
index 9ea7cfdc..b6fe5df9 100644
--- a/crypto/cms/cms_pwri.c
+++ b/crypto/cms/cms_pwri.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_pwri.c,v 1.29 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: cms_pwri.c,v 1.31 2024/01/14 18:40:24 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -52,18 +52,21 @@
* ====================================================================
*/
+#include
+
+#include
#include
-#include "cryptlib.h"
-#include
-#include
-#include
+#include
#include
+#include
#include
-#include
-#include
+#include
+#include
+
#include "cms_local.h"
-#include "asn1/asn1_local.h"
+#include "evp_local.h"
+#include "x509_local.h"
int
CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, unsigned char *pass,
diff --git a/crypto/cms/cms_sd.c b/crypto/cms/cms_sd.c
index 24582297..b644717b 100644
--- a/crypto/cms/cms_sd.c
+++ b/crypto/cms/cms_sd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_sd.c,v 1.28 2023/09/11 09:29:30 tb Exp $ */
+/* $OpenBSD: cms_sd.c,v 1.30 2024/02/02 14:13:11 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -52,18 +52,22 @@
* ====================================================================
*/
+#include
#include
-#include "cryptlib.h"
-#include
-#include
-#include
-#include
+#include
+#include
#include
+#include
#include
+#include
+#include
+#include
+
+#include "asn1_local.h"
#include "cms_local.h"
-#include "asn1/asn1_local.h"
-#include "evp/evp_local.h"
+#include "evp_local.h"
+#include "x509_local.h"
/* CMS SignedData Utilities */
@@ -279,7 +283,7 @@ CMS_add1_signer(CMS_ContentInfo *cms, X509 *signer, EVP_PKEY *pk,
{
CMS_SignedData *sd;
CMS_SignerInfo *si = NULL;
- X509_ALGOR *alg;
+ X509_ALGOR *alg = NULL;
int i, type;
if (!X509_check_private_key(signer, pk)) {
@@ -337,26 +341,29 @@ CMS_add1_signer(CMS_ContentInfo *cms, X509 *signer, EVP_PKEY *pk,
goto err;
}
- X509_ALGOR_set_md(si->digestAlgorithm, md);
+ if (!X509_ALGOR_set_evp_md(si->digestAlgorithm, md))
+ goto err;
/* See if digest is present in digestAlgorithms */
for (i = 0; i < sk_X509_ALGOR_num(sd->digestAlgorithms); i++) {
+ const X509_ALGOR *x509_alg;
const ASN1_OBJECT *aoid;
- alg = sk_X509_ALGOR_value(sd->digestAlgorithms, i);
- X509_ALGOR_get0(&aoid, NULL, NULL, alg);
+
+ x509_alg = sk_X509_ALGOR_value(sd->digestAlgorithms, i);
+ X509_ALGOR_get0(&aoid, NULL, NULL, x509_alg);
if (OBJ_obj2nid(aoid) == EVP_MD_type(md))
break;
}
if (i == sk_X509_ALGOR_num(sd->digestAlgorithms)) {
- alg = X509_ALGOR_new();
- if (alg == NULL)
+ if ((alg = X509_ALGOR_new()) == NULL)
+ goto merr;
+ if (!X509_ALGOR_set_evp_md(alg, md))
goto merr;
- X509_ALGOR_set_md(alg, md);
if (!sk_X509_ALGOR_push(sd->digestAlgorithms, alg)) {
- X509_ALGOR_free(alg);
goto merr;
}
+ alg = NULL;
}
if (!(flags & CMS_KEY_PARAM) && !cms_sd_asn1_ctrl(si, 0))
@@ -422,6 +429,7 @@ CMS_add1_signer(CMS_ContentInfo *cms, X509 *signer, EVP_PKEY *pk,
CMSerror(ERR_R_MALLOC_FAILURE);
err:
ASN1_item_free((ASN1_VALUE *)si, &CMS_SignerInfo_it);
+ X509_ALGOR_free(alg);
return NULL;
}
@@ -736,7 +744,7 @@ CMS_SignerInfo_sign(CMS_SignerInfo *si)
}
if (si->pctx == NULL) {
- EVP_MD_CTX_reset(si->mctx);
+ (void)EVP_MD_CTX_reset(si->mctx);
if (!EVP_DigestSignInit(si->mctx, &si->pctx, md, NULL, si->pkey))
goto err;
}
@@ -771,8 +779,7 @@ CMS_SignerInfo_sign(CMS_SignerInfo *si)
ret = 1;
err:
- if (si->mctx != NULL)
- EVP_MD_CTX_reset(si->mctx);
+ (void)EVP_MD_CTX_reset(si->mctx);
freezero(buf, buf_len);
freezero(sig, sig_len);
@@ -823,8 +830,7 @@ CMS_SignerInfo_verify(CMS_SignerInfo *si)
}
err:
- if (si->mctx != NULL)
- EVP_MD_CTX_reset(si->mctx);
+ (void)EVP_MD_CTX_reset(si->mctx);
freezero(buf, buf_len);
return ret;
diff --git a/crypto/cms/cms_smime.c b/crypto/cms/cms_smime.c
index b2930017..5a194748 100644
--- a/crypto/cms/cms_smime.c
+++ b/crypto/cms/cms_smime.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cms_smime.c,v 1.27 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: cms_smime.c,v 1.28 2023/12/22 10:23:11 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -52,14 +52,21 @@
* ====================================================================
*/
-#include "cryptlib.h"
-#include
-#include
-#include
-#include
+#include
+
+#include
+
+#include
+#include
#include
+#include
+#include
+#include
+#include
+#include
+#include
+
#include "cms_local.h"
-#include "asn1/asn1_local.h"
static BIO *
cms_get_text_bio(BIO *out, unsigned int flags)
diff --git a/crypto/compat/posix_win.c b/crypto/compat/posix_win.c
index b3a46872..3e78a07c 100644
--- a/crypto/compat/posix_win.c
+++ b/crypto/compat/posix_win.c
@@ -9,8 +9,8 @@
#define NO_REDEF_POSIX_FUNCTIONS
-#include
#include
+#include
#include
#include
@@ -164,8 +164,10 @@ static void noop_handler(const wchar_t *expression, const wchar_t *function,
}
#define BEGIN_SUPPRESS_IPH \
+ int old_report_mode = _CrtSetReportMode(_CRT_ASSERT, 0); \
_invalid_parameter_handler old_handler = _set_thread_local_invalid_parameter_handler(noop_handler)
#define END_SUPPRESS_IPH \
+ _CrtSetReportMode(_CRT_ASSERT, old_report_mode); \
_set_thread_local_invalid_parameter_handler(old_handler)
#else
diff --git a/crypto/conf/conf_api.c b/crypto/conf/conf_api.c
index 6fe071e1..b78bd50c 100644
--- a/crypto/conf/conf_api.c
+++ b/crypto/conf/conf_api.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf_api.c,v 1.16 2023/07/08 08:26:26 beck Exp $ */
+/* $OpenBSD: conf_api.c,v 1.18 2024/03/02 11:11:11 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -69,6 +69,8 @@
#include
#include
+#include "lhash_local.h"
+
static void value_free_hash_doall_arg(CONF_VALUE *a,
LHASH_OF(CONF_VALUE) *conf);
static void value_free_stack_doall(CONF_VALUE *a);
@@ -205,9 +207,6 @@ _CONF_free_data(CONF *conf)
if (conf == NULL || conf->data == NULL)
return;
- lh_CONF_VALUE_down_load(conf->data) = 0; /* evil thing to make
- * sure the 'free()' works as
- * expected */
lh_CONF_VALUE_doall_arg(conf->data,
LHASH_DOALL_ARG_FN(value_free_hash),
LHASH_OF(CONF_VALUE), conf->data);
diff --git a/crypto/conf/conf_lib.c b/crypto/conf/conf_lib.c
index 995ba3ef..2e4228bb 100644
--- a/crypto/conf/conf_lib.c
+++ b/crypto/conf/conf_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf_lib.c,v 1.15 2017/01/29 17:49:22 beck Exp $ */
+/* $OpenBSD: conf_lib.c,v 1.16 2024/01/28 21:00:54 tb Exp $ */
/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
* project 2000.
*/
@@ -86,8 +86,8 @@ CONF_set_default_method(CONF_METHOD *meth)
return 1;
}
-LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file,
- long *eline)
+LHASH_OF(CONF_VALUE) *
+CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, long *eline)
{
LHASH_OF(CONF_VALUE) *ltmp;
BIO *in = NULL;
@@ -104,8 +104,8 @@ LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file,
return ltmp;
}
-LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp,
- long *eline)
+LHASH_OF(CONF_VALUE) *
+CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, long *eline)
{
BIO *btmp;
LHASH_OF(CONF_VALUE) *ltmp;
@@ -119,8 +119,8 @@ LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp,
return ltmp;
}
-LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp,
- long *eline)
+LHASH_OF(CONF_VALUE) *
+CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, long *eline)
{
CONF ctmp;
int ret;
@@ -133,8 +133,8 @@ LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp,
return NULL;
}
-STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf,
- const char *section)
+STACK_OF(CONF_VALUE) *
+CONF_get_section(LHASH_OF(CONF_VALUE) *conf, const char *section)
{
if (conf == NULL) {
return NULL;
diff --git a/crypto/conf/conf_mall.c b/crypto/conf/conf_mall.c
index 18631b3b..141c0abe 100644
--- a/crypto/conf/conf_mall.c
+++ b/crypto/conf/conf_mall.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf_mall.c,v 1.9 2014/07/11 08:44:48 jsing Exp $ */
+/* $OpenBSD: conf_mall.c,v 1.11 2024/03/02 09:02:04 tb Exp $ */
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
* project 2001.
*/
@@ -56,27 +56,14 @@
*
*/
-#include
-
-#include
-
-#include
#include
-#include
-#include
-
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
/* Load all OpenSSL builtin modules */
+void ASN1_add_oid_module(void);
void
OPENSSL_load_builtin_modules(void)
{
/* Add builtin modules here */
ASN1_add_oid_module();
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_add_conf_module();
-#endif
}
diff --git a/crypto/conf/conf_sap.c b/crypto/conf/conf_sap.c
index 827cf96e..689b7a32 100644
--- a/crypto/conf/conf_sap.c
+++ b/crypto/conf/conf_sap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf_sap.c,v 1.14 2018/03/19 03:56:08 beck Exp $ */
+/* $OpenBSD: conf_sap.c,v 1.15 2023/11/19 15:46:09 tb Exp $ */
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
* project 2001.
*/
@@ -67,10 +67,6 @@
#include
#include
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
-
/* This is the automatic configuration loader: it is called automatically by
* OpenSSL when any of a number of standard initialisation functions are called,
* unless this is overridden by calling OPENSSL_no_config()
@@ -84,10 +80,6 @@ static void
OPENSSL_config_internal(void)
{
OPENSSL_load_builtin_modules();
-#ifndef OPENSSL_NO_ENGINE
- /* Need to load ENGINEs */
- ENGINE_load_builtin_engines();
-#endif
/* Add others here? */
ERR_clear_error();
diff --git a/crypto/cpuid-elf-x86_64.S b/crypto/cpuid-elf-x86_64.S
index 6dc8e58d..10d5fd7b 100644
--- a/crypto/cpuid-elf-x86_64.S
+++ b/crypto/cpuid-elf-x86_64.S
@@ -1,8 +1,14 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.hidden OPENSSL_cpuid_setup
.section .init
- endbr64
+_CET_ENDBR
call OPENSSL_cpuid_setup
@@ -14,7 +20,7 @@
.type OPENSSL_ia32_cpuid,@function
.align 16
OPENSSL_ia32_cpuid:
- endbr64
+_CET_ENDBR
movq %rbx,%r8
xorl %eax,%eax
diff --git a/crypto/cpuid-macosx-x86_64.S b/crypto/cpuid-macosx-x86_64.S
index 5d3f1a74..84c35601 100644
--- a/crypto/cpuid-macosx-x86_64.S
+++ b/crypto/cpuid-macosx-x86_64.S
@@ -1,7 +1,14 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.private_extern _OPENSSL_cpuid_setup
.mod_init_func
+_CET_ENDBR
.p2align 3
.quad _OPENSSL_cpuid_setup
@@ -14,6 +21,7 @@
.p2align 4
_OPENSSL_ia32_cpuid:
+_CET_ENDBR
movq %rbx,%r8
xorl %eax,%eax
diff --git a/crypto/cpuid-masm-x86_64.S b/crypto/cpuid-masm-x86_64.S
index 97dae0a6..259ed978 100644
--- a/crypto/cpuid-masm-x86_64.S
+++ b/crypto/cpuid-masm-x86_64.S
@@ -1,30 +1,33 @@
; 1 "crypto/cpuid-masm-x86_64.S.tmp"
; 1 "" 1
; 1 "" 3
-; 343 "" 3
+; 371 "" 3
; 1 "" 1
; 1 "" 2
; 1 "crypto/cpuid-masm-x86_64.S.tmp" 2
OPTION DOTNAME
-; 1 "./crypto/x86_arch.h" 1
-; 16 "./crypto/x86_arch.h"
+; 1 "./crypto/x86_arch.h" 1
+; 16 "./crypto/x86_arch.h"
+
-; 40 "./crypto/x86_arch.h"
+
+; 40 "./crypto/x86_arch.h"
+
@@ -66,10 +69,14 @@ OPTION DOTNAME
-; 3 "crypto/cpuid-masm-x86_64.S.tmp" 2
+
+
+
+; 9 "crypto/cpuid-masm-x86_64.S.tmp" 2
EXTERN OPENSSL_cpuid_setup:NEAR
.CRT$XCU SEGMENT READONLY ALIGN(8)
+
DQ OPENSSL_cpuid_setup
EXTERN OPENSSL_ia32cap_P:NEAR
@@ -82,6 +89,7 @@ PUBLIC OPENSSL_ia32_cpuid
ALIGN 16
OPENSSL_ia32_cpuid PROC PUBLIC
+
mov r8,rbx
xor eax,eax
diff --git a/crypto/cpuid-mingw64-x86_64.S b/crypto/cpuid-mingw64-x86_64.S
index cf66d0fd..d459c0e5 100644
--- a/crypto/cpuid-mingw64-x86_64.S
+++ b/crypto/cpuid-mingw64-x86_64.S
@@ -1,7 +1,14 @@
+#if defined(__CET__)
+#include
+#else
+#define _CET_ENDBR
+#endif
+
#include "x86_arch.h"
.section .ctors
+_CET_ENDBR
.p2align 3
.quad OPENSSL_cpuid_setup
@@ -14,6 +21,7 @@
.def OPENSSL_ia32_cpuid; .scl 2; .type 32; .endef
.p2align 4
OPENSSL_ia32_cpuid:
+_CET_ENDBR
movq %rbx,%r8
xorl %eax,%eax
diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
index 18f40e54..abf11594 100644
--- a/crypto/cryptlib.c
+++ b/crypto/cryptlib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cryptlib.c,v 1.46 2023/07/08 08:28:23 beck Exp $ */
+/* $OpenBSD: cryptlib.c,v 1.48 2024/03/02 11:37:13 tb Exp $ */
/* ====================================================================
* Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
*
@@ -124,6 +124,8 @@
#include
#include
+#include "crypto_local.h"
+
static void (*locking_callback)(int mode, int type,
const char *file, int line) = NULL;
static int (*add_lock_callback)(int *pointer, int amount,
@@ -355,7 +357,7 @@ OPENSSL_showfatal(const char *fmta, ...)
va_list ap;
va_start(ap, fmta);
- vsyslog_r(LOG_INFO|LOG_LOCAL2, &sdata, fmta, ap);
+ vsyslog_r(LOG_CONS|LOG_LOCAL2, &sdata, fmta, ap);
va_end(ap);
}
diff --git a/crypto/crypto.sym b/crypto/crypto.sym
index bb80f34c..846bd5ce 100644
--- a/crypto/crypto.sym
+++ b/crypto/crypto.sym
@@ -81,18 +81,6 @@ ASN1_OCTET_STRING_free
ASN1_OCTET_STRING_it
ASN1_OCTET_STRING_new
ASN1_OCTET_STRING_set
-ASN1_PCTX_free
-ASN1_PCTX_get_cert_flags
-ASN1_PCTX_get_flags
-ASN1_PCTX_get_nm_flags
-ASN1_PCTX_get_oid_flags
-ASN1_PCTX_get_str_flags
-ASN1_PCTX_new
-ASN1_PCTX_set_cert_flags
-ASN1_PCTX_set_flags
-ASN1_PCTX_set_nm_flags
-ASN1_PCTX_set_oid_flags
-ASN1_PCTX_set_str_flags
ASN1_PRINTABLESTRING_free
ASN1_PRINTABLESTRING_it
ASN1_PRINTABLESTRING_new
@@ -103,8 +91,6 @@ ASN1_PRINTABLE_type
ASN1_SEQUENCE_ANY_it
ASN1_SEQUENCE_it
ASN1_SET_ANY_it
-ASN1_STRING_TABLE_add
-ASN1_STRING_TABLE_cleanup
ASN1_STRING_TABLE_get
ASN1_STRING_cmp
ASN1_STRING_copy
@@ -143,7 +129,6 @@ ASN1_TIME_print
ASN1_TIME_set
ASN1_TIME_set_string
ASN1_TIME_set_string_X509
-ASN1_TIME_set_tm
ASN1_TIME_to_generalizedtime
ASN1_TIME_to_tm
ASN1_TYPE_cmp
@@ -175,7 +160,6 @@ ASN1_UTF8STRING_new
ASN1_VISIBLESTRING_free
ASN1_VISIBLESTRING_it
ASN1_VISIBLESTRING_new
-ASN1_add_oid_module
ASN1_d2i_bio
ASN1_d2i_fp
ASN1_dup
@@ -213,9 +197,7 @@ ASN1_put_eoc
ASN1_put_object
ASN1_tag2bit
ASN1_tag2str
-ASN1_time_parse
ASN1_time_tm_clamp_notafter
-ASN1_time_tm_cmp
ASRange_free
ASRange_it
ASRange_new
@@ -251,11 +233,7 @@ BIO_ctrl_wpending
BIO_debug_callback
BIO_dgram_non_fatal_error
BIO_dump
-BIO_dump_cb
-BIO_dump_fp
BIO_dump_indent
-BIO_dump_indent_cb
-BIO_dump_indent_fp
BIO_dup_chain
BIO_f_base64
BIO_f_buffer
@@ -337,7 +315,6 @@ BIO_s_log
BIO_s_mem
BIO_s_null
BIO_s_socket
-BIO_set
BIO_set_callback
BIO_set_callback_arg
BIO_set_callback_ex
@@ -350,7 +327,6 @@ BIO_set_next
BIO_set_retry_reason
BIO_set_shutdown
BIO_set_tcp_ndelay
-BIO_snprintf
BIO_sock_cleanup
BIO_sock_error
BIO_sock_init
@@ -361,8 +337,6 @@ BIO_socket_nbio
BIO_test_flags
BIO_up_ref
BIO_vfree
-BIO_vprintf
-BIO_vsnprintf
BIO_write
BN_CTX_end
BN_CTX_free
@@ -433,11 +407,8 @@ BN_mask_bits
BN_mod_add
BN_mod_add_quick
BN_mod_exp
-BN_mod_exp2_mont
BN_mod_exp_mont
BN_mod_exp_mont_consttime
-BN_mod_exp_mont_word
-BN_mod_exp_simple
BN_mod_inverse
BN_mod_lshift
BN_mod_lshift1
@@ -507,7 +478,6 @@ CMAC_CTX_new
CMAC_Final
CMAC_Init
CMAC_Update
-CMAC_resume
CMS_ContentInfo_free
CMS_ContentInfo_it
CMS_ContentInfo_new
@@ -653,11 +623,7 @@ CONF_set_nconf
CRL_DIST_POINTS_free
CRL_DIST_POINTS_it
CRL_DIST_POINTS_new
-CRYPTO_THREADID_cmp
-CRYPTO_THREADID_cpy
-CRYPTO_THREADID_current
CRYPTO_THREADID_get_callback
-CRYPTO_THREADID_hash
CRYPTO_THREADID_set_callback
CRYPTO_THREADID_set_numeric
CRYPTO_THREADID_set_pointer
@@ -679,16 +645,10 @@ CRYPTO_chacha_20
CRYPTO_cleanup_all_ex_data
CRYPTO_ctr128_encrypt
CRYPTO_ctr128_encrypt_ctr32
-CRYPTO_dbg_free
-CRYPTO_dbg_get_options
-CRYPTO_dbg_malloc
-CRYPTO_dbg_realloc
-CRYPTO_dbg_set_options
CRYPTO_destroy_dynlockid
CRYPTO_dup_ex_data
CRYPTO_free
CRYPTO_free_ex_data
-CRYPTO_free_locked
CRYPTO_gcm128_aad
CRYPTO_gcm128_decrypt
CRYPTO_gcm128_decrypt_ctr32
@@ -709,24 +669,13 @@ CRYPTO_get_ex_data
CRYPTO_get_ex_new_index
CRYPTO_get_id_callback
CRYPTO_get_lock_name
-CRYPTO_get_locked_mem_ex_functions
-CRYPTO_get_locked_mem_functions
CRYPTO_get_locking_callback
-CRYPTO_get_mem_debug_functions
-CRYPTO_get_mem_debug_options
-CRYPTO_get_mem_ex_functions
-CRYPTO_get_mem_functions
CRYPTO_get_new_dynlockid
CRYPTO_get_new_lockid
CRYPTO_hchacha_20
-CRYPTO_is_mem_check_on
CRYPTO_lock
CRYPTO_malloc
-CRYPTO_malloc_locked
CRYPTO_mem_ctrl
-CRYPTO_mem_leaks
-CRYPTO_mem_leaks_cb
-CRYPTO_mem_leaks_fp
CRYPTO_memcmp
CRYPTO_new_ex_data
CRYPTO_num_locks
@@ -734,23 +683,13 @@ CRYPTO_ofb128_encrypt
CRYPTO_poly1305_finish
CRYPTO_poly1305_init
CRYPTO_poly1305_update
-CRYPTO_pop_info
-CRYPTO_push_info_
-CRYPTO_realloc
-CRYPTO_realloc_clean
-CRYPTO_remalloc
-CRYPTO_remove_all_info
CRYPTO_set_add_lock_callback
CRYPTO_set_dynlock_create_callback
CRYPTO_set_dynlock_destroy_callback
CRYPTO_set_dynlock_lock_callback
CRYPTO_set_ex_data
CRYPTO_set_id_callback
-CRYPTO_set_locked_mem_ex_functions
-CRYPTO_set_locked_mem_functions
CRYPTO_set_locking_callback
-CRYPTO_set_mem_debug_functions
-CRYPTO_set_mem_debug_options
CRYPTO_set_mem_ex_functions
CRYPTO_set_mem_functions
CRYPTO_strdup
@@ -895,7 +834,6 @@ DSA_do_verify
DSA_dup_DH
DSA_free
DSA_generate_key
-DSA_generate_parameters
DSA_generate_parameters_ex
DSA_get0_engine
DSA_get0_g
@@ -1117,7 +1055,6 @@ ERR_get_error
ERR_get_error_line
ERR_get_error_line_data
ERR_get_next_error_library
-ERR_get_state
ERR_lib_error_string
ERR_load_ASN1_strings
ERR_load_BIO_strings
@@ -1131,7 +1068,6 @@ ERR_load_DSA_strings
ERR_load_EC_strings
ERR_load_ERR_strings
ERR_load_EVP_strings
-ERR_load_GOST_strings
ERR_load_OBJ_strings
ERR_load_OCSP_strings
ERR_load_PEM_strings
@@ -1212,12 +1148,10 @@ EVP_CIPHER_CTX_set_iv
EVP_CIPHER_CTX_set_key_length
EVP_CIPHER_CTX_set_padding
EVP_CIPHER_CTX_test_flags
-EVP_CIPHER_asn1_to_param
EVP_CIPHER_block_size
EVP_CIPHER_do_all
EVP_CIPHER_do_all_sorted
EVP_CIPHER_flags
-EVP_CIPHER_get_asn1_iv
EVP_CIPHER_iv_length
EVP_CIPHER_key_length
EVP_CIPHER_meth_dup
@@ -1233,8 +1167,6 @@ EVP_CIPHER_meth_set_init
EVP_CIPHER_meth_set_iv_length
EVP_CIPHER_meth_set_set_asn1_params
EVP_CIPHER_nid
-EVP_CIPHER_param_to_asn1
-EVP_CIPHER_set_asn1_iv
EVP_CIPHER_type
EVP_Cipher
EVP_CipherFinal
@@ -1295,29 +1227,11 @@ EVP_MD_block_size
EVP_MD_do_all
EVP_MD_do_all_sorted
EVP_MD_flags
-EVP_MD_meth_dup
-EVP_MD_meth_free
-EVP_MD_meth_new
-EVP_MD_meth_set_app_datasize
-EVP_MD_meth_set_cleanup
-EVP_MD_meth_set_copy
-EVP_MD_meth_set_ctrl
-EVP_MD_meth_set_final
-EVP_MD_meth_set_flags
-EVP_MD_meth_set_init
-EVP_MD_meth_set_input_blocksize
-EVP_MD_meth_set_result_size
-EVP_MD_meth_set_update
EVP_MD_pkey_type
EVP_MD_size
EVP_MD_type
EVP_OpenFinal
EVP_OpenInit
-EVP_PBE_CipherInit
-EVP_PBE_alg_add
-EVP_PBE_alg_add_type
-EVP_PBE_cleanup
-EVP_PBE_find
EVP_PKCS82PKEY
EVP_PKEY2PKCS8
EVP_PKEY_CTX_ctrl
@@ -1341,25 +1255,11 @@ EVP_PKEY_add1_attr
EVP_PKEY_add1_attr_by_NID
EVP_PKEY_add1_attr_by_OBJ
EVP_PKEY_add1_attr_by_txt
-EVP_PKEY_asn1_add0
-EVP_PKEY_asn1_add_alias
-EVP_PKEY_asn1_copy
EVP_PKEY_asn1_find
EVP_PKEY_asn1_find_str
-EVP_PKEY_asn1_free
EVP_PKEY_asn1_get0
EVP_PKEY_asn1_get0_info
EVP_PKEY_asn1_get_count
-EVP_PKEY_asn1_new
-EVP_PKEY_asn1_set_check
-EVP_PKEY_asn1_set_ctrl
-EVP_PKEY_asn1_set_free
-EVP_PKEY_asn1_set_param
-EVP_PKEY_asn1_set_param_check
-EVP_PKEY_asn1_set_private
-EVP_PKEY_asn1_set_public
-EVP_PKEY_asn1_set_public_check
-EVP_PKEY_asn1_set_security_bits
EVP_PKEY_assign
EVP_PKEY_base_id
EVP_PKEY_bits
@@ -1399,29 +1299,6 @@ EVP_PKEY_get_raw_public_key
EVP_PKEY_id
EVP_PKEY_keygen
EVP_PKEY_keygen_init
-EVP_PKEY_meth_add0
-EVP_PKEY_meth_copy
-EVP_PKEY_meth_find
-EVP_PKEY_meth_free
-EVP_PKEY_meth_get0_info
-EVP_PKEY_meth_new
-EVP_PKEY_meth_set_check
-EVP_PKEY_meth_set_cleanup
-EVP_PKEY_meth_set_copy
-EVP_PKEY_meth_set_ctrl
-EVP_PKEY_meth_set_decrypt
-EVP_PKEY_meth_set_derive
-EVP_PKEY_meth_set_encrypt
-EVP_PKEY_meth_set_init
-EVP_PKEY_meth_set_keygen
-EVP_PKEY_meth_set_param_check
-EVP_PKEY_meth_set_paramgen
-EVP_PKEY_meth_set_public_check
-EVP_PKEY_meth_set_sign
-EVP_PKEY_meth_set_signctx
-EVP_PKEY_meth_set_verify
-EVP_PKEY_meth_set_verify_recover
-EVP_PKEY_meth_set_verifyctx
EVP_PKEY_missing_parameters
EVP_PKEY_new
EVP_PKEY_new_CMAC_key
@@ -1456,14 +1333,11 @@ EVP_SealFinal
EVP_SealInit
EVP_SignFinal
EVP_VerifyFinal
-EVP_add_cipher
-EVP_add_digest
EVP_aead_aes_128_gcm
EVP_aead_aes_256_gcm
EVP_aead_chacha20_poly1305
EVP_aead_xchacha20_poly1305
EVP_aes_128_cbc
-EVP_aes_128_cbc_hmac_sha1
EVP_aes_128_ccm
EVP_aes_128_cfb1
EVP_aes_128_cfb128
@@ -1485,7 +1359,6 @@ EVP_aes_192_gcm
EVP_aes_192_ofb
EVP_aes_192_wrap
EVP_aes_256_cbc
-EVP_aes_256_cbc_hmac_sha1
EVP_aes_256_ccm
EVP_aes_256_cfb1
EVP_aes_256_cfb128
@@ -1548,11 +1421,6 @@ EVP_enc_null
EVP_get_cipherbyname
EVP_get_digestbyname
EVP_get_pw_prompt
-EVP_gost2814789_cfb64
-EVP_gost2814789_cnt
-EVP_gost2814789_ecb
-EVP_gost2814789imit
-EVP_gostr341194
EVP_idea_cbc
EVP_idea_cfb64
EVP_idea_ecb
@@ -1569,7 +1437,6 @@ EVP_rc2_ecb
EVP_rc2_ofb
EVP_rc4
EVP_rc4_40
-EVP_rc4_hmac_md5
EVP_read_pw_string
EVP_read_pw_string_min
EVP_ripemd160
@@ -1591,8 +1458,6 @@ EVP_sm4_cfb128
EVP_sm4_ctr
EVP_sm4_ecb
EVP_sm4_ofb
-EVP_streebog256
-EVP_streebog512
EVP_whirlpool
EXTENDED_KEY_USAGE_free
EXTENDED_KEY_USAGE_it
@@ -1615,37 +1480,6 @@ GENERAL_NAME_set0_value
GENERAL_SUBTREE_free
GENERAL_SUBTREE_it
GENERAL_SUBTREE_new
-GOST2814789IMIT
-GOST2814789IMIT_Final
-GOST2814789IMIT_Init
-GOST2814789IMIT_Transform
-GOST2814789IMIT_Update
-GOSTR341194
-GOSTR341194_Final
-GOSTR341194_Init
-GOSTR341194_Transform
-GOSTR341194_Update
-GOST_CIPHER_PARAMS_free
-GOST_CIPHER_PARAMS_it
-GOST_CIPHER_PARAMS_new
-GOST_KEY_check_key
-GOST_KEY_free
-GOST_KEY_get0_group
-GOST_KEY_get0_private_key
-GOST_KEY_get0_public_key
-GOST_KEY_get_digest
-GOST_KEY_get_size
-GOST_KEY_new
-GOST_KEY_set_digest
-GOST_KEY_set_group
-GOST_KEY_set_private_key
-GOST_KEY_set_public_key
-GOST_KEY_set_public_key_affine_coordinates
-Gost2814789_cfb64_encrypt
-Gost2814789_cnt_encrypt
-Gost2814789_ecb_encrypt
-Gost2814789_set_key
-Gost2814789_set_sbox
HKDF
HKDF_expand
HKDF_extract
@@ -1719,16 +1553,8 @@ NETSCAPE_SPKI_verify
NOTICEREF_free
NOTICEREF_it
NOTICEREF_new
-OBJ_NAME_add
-OBJ_NAME_cleanup
OBJ_NAME_do_all
OBJ_NAME_do_all_sorted
-OBJ_NAME_get
-OBJ_NAME_init
-OBJ_NAME_new_index
-OBJ_NAME_remove
-OBJ_add_object
-OBJ_bsearch_
OBJ_cleanup
OBJ_cmp
OBJ_create
@@ -1893,12 +1719,16 @@ OPENSSL_cleanup
OPENSSL_config
OPENSSL_cpu_caps
OPENSSL_cpuid_setup
+OPENSSL_gmtime
OPENSSL_init
OPENSSL_init_crypto
OPENSSL_load_builtin_modules
OPENSSL_no_config
+OPENSSL_posix_to_tm
OPENSSL_strcasecmp
OPENSSL_strncasecmp
+OPENSSL_timegm
+OPENSSL_tm_to_posix
OPENSSL_uni2asc
OTHERNAME_cmp
OTHERNAME_free
@@ -1909,15 +1739,7 @@ OpenSSL_add_all_ciphers
OpenSSL_add_all_digests
OpenSSL_version
OpenSSL_version_num
-PBE2PARAM_free
-PBE2PARAM_it
-PBE2PARAM_new
-PBEPARAM_free
PBEPARAM_it
-PBEPARAM_new
-PBKDF2PARAM_free
-PBKDF2PARAM_it
-PBKDF2PARAM_new
PEM_ASN1_read
PEM_ASN1_read_bio
PEM_ASN1_write
@@ -2029,21 +1851,7 @@ PEM_write_bio_X509_AUX
PEM_write_bio_X509_CRL
PEM_write_bio_X509_REQ
PEM_write_bio_X509_REQ_NEW
-PKCS12_AUTHSAFES_it
-PKCS12_BAGS_free
-PKCS12_BAGS_it
-PKCS12_BAGS_new
-PKCS12_MAC_DATA_free
-PKCS12_MAC_DATA_it
-PKCS12_MAC_DATA_new
PKCS12_PBE_add
-PKCS12_PBE_keyivgen
-PKCS12_SAFEBAGS_it
-PKCS12_SAFEBAG_create0_p8inf
-PKCS12_SAFEBAG_create0_pkcs8
-PKCS12_SAFEBAG_create_cert
-PKCS12_SAFEBAG_create_crl
-PKCS12_SAFEBAG_create_pkcs8_encrypt
PKCS12_SAFEBAG_free
PKCS12_SAFEBAG_get0_attr
PKCS12_SAFEBAG_get0_attrs
@@ -2057,53 +1865,24 @@ PKCS12_SAFEBAG_get_bag_nid
PKCS12_SAFEBAG_get_nid
PKCS12_SAFEBAG_it
PKCS12_SAFEBAG_new
-PKCS12_add_CSPName_asc
-PKCS12_add_cert
-PKCS12_add_friendlyname_asc
-PKCS12_add_friendlyname_uni
-PKCS12_add_key
-PKCS12_add_localkeyid
-PKCS12_add_safe
-PKCS12_add_safes
PKCS12_create
PKCS12_decrypt_skey
PKCS12_free
-PKCS12_gen_mac
PKCS12_get0_mac
-PKCS12_get_attr_gen
PKCS12_get_friendlyname
-PKCS12_init
PKCS12_it
-PKCS12_item_decrypt_d2i
-PKCS12_item_i2d_encrypt
-PKCS12_item_pack_safebag
-PKCS12_key_gen_asc
-PKCS12_key_gen_uni
PKCS12_mac_present
PKCS12_new
PKCS12_newpass
-PKCS12_pack_authsafes
-PKCS12_pack_p7data
-PKCS12_pack_p7encdata
PKCS12_parse
-PKCS12_pbe_crypt
PKCS12_set_mac
-PKCS12_setup_mac
PKCS12_unpack_authsafes
PKCS12_unpack_p7data
PKCS12_unpack_p7encdata
PKCS12_verify_mac
PKCS1_MGF1
-PKCS5_PBE_add
-PKCS5_PBE_keyivgen
PKCS5_PBKDF2_HMAC
PKCS5_PBKDF2_HMAC_SHA1
-PKCS5_pbe2_set
-PKCS5_pbe2_set_iv
-PKCS5_pbe_set
-PKCS5_pbe_set0_algor
-PKCS5_pbkdf2_set
-PKCS5_v2_PBE_keyivgen
PKCS7_ATTR_SIGN_it
PKCS7_ATTR_VERIFY_it
PKCS7_DIGEST_free
@@ -2413,15 +2192,6 @@ SMIME_write_CMS
SMIME_write_PKCS7
SSLeay
SSLeay_version
-STREEBOG256
-STREEBOG256_Final
-STREEBOG256_Init
-STREEBOG256_Update
-STREEBOG512
-STREEBOG512_Final
-STREEBOG512_Init
-STREEBOG512_Transform
-STREEBOG512_Update
TS_ACCURACY_dup
TS_ACCURACY_free
TS_ACCURACY_get_micros
@@ -2644,13 +2414,9 @@ X509V3_EXT_CRL_add_conf
X509V3_EXT_CRL_add_nconf
X509V3_EXT_REQ_add_conf
X509V3_EXT_REQ_add_nconf
-X509V3_EXT_add
-X509V3_EXT_add_alias
X509V3_EXT_add_conf
-X509V3_EXT_add_list
X509V3_EXT_add_nconf
X509V3_EXT_add_nconf_sk
-X509V3_EXT_cleanup
X509V3_EXT_conf
X509V3_EXT_conf_nid
X509V3_EXT_d2i
@@ -2691,7 +2457,6 @@ X509_ALGOR_get0
X509_ALGOR_it
X509_ALGOR_new
X509_ALGOR_set0
-X509_ALGOR_set_md
X509_ATTRIBUTE_count
X509_ATTRIBUTE_create
X509_ATTRIBUTE_create_by_NID
@@ -2706,18 +2471,12 @@ X509_ATTRIBUTE_it
X509_ATTRIBUTE_new
X509_ATTRIBUTE_set1_data
X509_ATTRIBUTE_set1_object
-X509_CERT_AUX_free
-X509_CERT_AUX_it
-X509_CERT_AUX_new
-X509_CERT_AUX_print
X509_CINF_free
X509_CINF_it
X509_CINF_new
X509_CRL_INFO_free
X509_CRL_INFO_it
X509_CRL_INFO_new
-X509_CRL_METHOD_free
-X509_CRL_METHOD_new
X509_CRL_add0_revoked
X509_CRL_add1_ext_i2d
X509_CRL_add_ext
@@ -2742,7 +2501,6 @@ X509_CRL_get_ext_count
X509_CRL_get_ext_d2i
X509_CRL_get_issuer
X509_CRL_get_lastUpdate
-X509_CRL_get_meth_data
X509_CRL_get_nextUpdate
X509_CRL_get_signature_nid
X509_CRL_get_version
@@ -2753,10 +2511,8 @@ X509_CRL_print
X509_CRL_print_fp
X509_CRL_set1_lastUpdate
X509_CRL_set1_nextUpdate
-X509_CRL_set_default_method
X509_CRL_set_issuer_name
X509_CRL_set_lastUpdate
-X509_CRL_set_meth_data
X509_CRL_set_nextUpdate
X509_CRL_set_version
X509_CRL_sign
@@ -2779,18 +2535,11 @@ X509_EXTENSION_set_data
X509_EXTENSION_set_object
X509_INFO_free
X509_INFO_new
-X509_LOOKUP_by_alias
-X509_LOOKUP_by_fingerprint
-X509_LOOKUP_by_issuer_serial
-X509_LOOKUP_by_subject
X509_LOOKUP_ctrl
X509_LOOKUP_file
X509_LOOKUP_free
X509_LOOKUP_hash_dir
-X509_LOOKUP_init
X509_LOOKUP_mem
-X509_LOOKUP_new
-X509_LOOKUP_shutdown
X509_NAME_ENTRIES_it
X509_NAME_ENTRY_create_by_NID
X509_NAME_ENTRY_create_by_OBJ
@@ -2849,17 +2598,12 @@ X509_PUBKEY_it
X509_PUBKEY_new
X509_PUBKEY_set
X509_PUBKEY_set0_param
-X509_PURPOSE_add
-X509_PURPOSE_cleanup
X509_PURPOSE_get0
X509_PURPOSE_get0_name
X509_PURPOSE_get0_sname
-X509_PURPOSE_get_by_id
X509_PURPOSE_get_by_sname
X509_PURPOSE_get_count
X509_PURPOSE_get_id
-X509_PURPOSE_get_trust
-X509_PURPOSE_set
X509_REQ_INFO_free
X509_REQ_INFO_it
X509_REQ_INFO_new
@@ -2952,7 +2696,6 @@ X509_STORE_CTX_get_verify
X509_STORE_CTX_get_verify_cb
X509_STORE_CTX_init
X509_STORE_CTX_new
-X509_STORE_CTX_purpose_inherit
X509_STORE_CTX_set0_crls
X509_STORE_CTX_set0_param
X509_STORE_CTX_set0_trusted_stack
@@ -2978,6 +2721,7 @@ X509_STORE_add_crl
X509_STORE_add_lookup
X509_STORE_free
X509_STORE_get0_objects
+X509_STORE_get1_objects
X509_STORE_get0_param
X509_STORE_get_check_issued
X509_STORE_get_ex_data
@@ -2997,16 +2741,6 @@ X509_STORE_set_trust
X509_STORE_set_verify
X509_STORE_set_verify_cb
X509_STORE_up_ref
-X509_TRUST_add
-X509_TRUST_cleanup
-X509_TRUST_get0
-X509_TRUST_get0_name
-X509_TRUST_get_by_id
-X509_TRUST_get_count
-X509_TRUST_get_flags
-X509_TRUST_get_trust
-X509_TRUST_set
-X509_TRUST_set_default
X509_VAL_free
X509_VAL_it
X509_VAL_new
@@ -3290,7 +3024,6 @@ d2i_ESS_SIGNING_CERT
d2i_EXTENDED_KEY_USAGE
d2i_GENERAL_NAME
d2i_GENERAL_NAMES
-d2i_GOST_CIPHER_PARAMS
d2i_IPAddressChoice
d2i_IPAddressFamily
d2i_IPAddressOrRange
@@ -3317,12 +3050,7 @@ d2i_OCSP_SERVICELOC
d2i_OCSP_SIGNATURE
d2i_OCSP_SINGLERESP
d2i_OTHERNAME
-d2i_PBE2PARAM
-d2i_PBEPARAM
-d2i_PBKDF2PARAM
d2i_PKCS12
-d2i_PKCS12_BAGS
-d2i_PKCS12_MAC_DATA
d2i_PKCS12_SAFEBAG
d2i_PKCS12_bio
d2i_PKCS12_fp
@@ -3387,7 +3115,6 @@ d2i_X509_ALGOR
d2i_X509_ALGORS
d2i_X509_ATTRIBUTE
d2i_X509_AUX
-d2i_X509_CERT_AUX
d2i_X509_CINF
d2i_X509_CRL
d2i_X509_CRL_INFO
@@ -3487,7 +3214,6 @@ i2d_ESS_SIGNING_CERT
i2d_EXTENDED_KEY_USAGE
i2d_GENERAL_NAME
i2d_GENERAL_NAMES
-i2d_GOST_CIPHER_PARAMS
i2d_IPAddressChoice
i2d_IPAddressFamily
i2d_IPAddressOrRange
@@ -3514,12 +3240,7 @@ i2d_OCSP_SERVICELOC
i2d_OCSP_SIGNATURE
i2d_OCSP_SINGLERESP
i2d_OTHERNAME
-i2d_PBE2PARAM
-i2d_PBEPARAM
-i2d_PBKDF2PARAM
i2d_PKCS12
-i2d_PKCS12_BAGS
-i2d_PKCS12_MAC_DATA
i2d_PKCS12_SAFEBAG
i2d_PKCS12_bio
i2d_PKCS12_fp
@@ -3589,7 +3310,6 @@ i2d_X509_ALGOR
i2d_X509_ALGORS
i2d_X509_ATTRIBUTE
i2d_X509_AUX
-i2d_X509_CERT_AUX
i2d_X509_CINF
i2d_X509_CRL
i2d_X509_CRL_INFO
@@ -3633,17 +3353,12 @@ idea_set_encrypt_key
lh_delete
lh_doall
lh_doall_arg
+lh_error
lh_free
lh_insert
lh_new
-lh_node_stats
-lh_node_stats_bio
-lh_node_usage_stats
-lh_node_usage_stats_bio
lh_num_items
lh_retrieve
-lh_stats
-lh_stats_bio
lh_strhash
o2i_ECPublicKey
o2i_SCT
@@ -3654,7 +3369,6 @@ sk_delete
sk_delete_ptr
sk_dup
sk_find
-sk_find_ex
sk_free
sk_insert
sk_is_sorted
diff --git a/crypto/crypto_init.c b/crypto/crypto_init.c
index a2c1c786..56f4460e 100644
--- a/crypto/crypto_init.c
+++ b/crypto/crypto_init.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: crypto_init.c,v 1.11 2023/07/08 08:28:23 beck Exp $ */
+/* $OpenBSD: crypto_init.c,v 1.18 2024/01/25 12:22:31 tb Exp $ */
/*
* Copyright (c) 2018 Bob Beck
*
@@ -22,9 +22,6 @@
#include
#include
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
#include
#include
#include
@@ -47,8 +44,6 @@ OPENSSL_init_crypto_internal(void)
OPENSSL_cpuid_setup();
ERR_load_crypto_strings();
- OpenSSL_add_all_ciphers();
- OpenSSL_add_all_digests();
}
int
@@ -84,15 +79,8 @@ OPENSSL_cleanup(void)
ERR_free_strings();
CRYPTO_cleanup_all_ex_data();
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_cleanup();
-#endif
EVP_cleanup();
- ASN1_STRING_TABLE_cleanup();
- X509V3_EXT_cleanup();
- X509_PURPOSE_cleanup();
- X509_TRUST_cleanup();
X509_VERIFY_PARAM_table_cleanup();
x509_issuer_cache_free();
@@ -100,3 +88,24 @@ OPENSSL_cleanup(void)
crypto_init_cleaned_up = 1;
}
LCRYPTO_ALIAS(OPENSSL_cleanup);
+
+void
+OpenSSL_add_all_ciphers(void)
+{
+}
+
+void
+OpenSSL_add_all_digests(void)
+{
+}
+
+void
+OPENSSL_add_all_algorithms_noconf(void)
+{
+}
+
+void
+OPENSSL_add_all_algorithms_conf(void)
+{
+ OPENSSL_config(NULL);
+}
diff --git a/crypto/crypto_local.h b/crypto/crypto_local.h
new file mode 100644
index 00000000..970a7846
--- /dev/null
+++ b/crypto/crypto_local.h
@@ -0,0 +1,138 @@
+/* $OpenBSD: crypto_local.h,v 1.1 2024/03/02 11:37:13 tb Exp $ */
+/* ====================================================================
+ * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ * nor may "OpenSSL" appear in their names without prior written
+ * permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com). This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ *
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to. The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ *
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * "This product includes cryptographic software written by
+ * Eric Young (eay@cryptsoft.com)"
+ * The word 'cryptographic' can be left out if the rouines from the library
+ * being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from
+ * the apps directory (application code) you must include an acknowledgement:
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+/* ====================================================================
+ * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
+ * ECDH support in OpenSSL originally developed by
+ * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
+ */
+
+#include
+#include
+#include
+
+#ifndef HEADER_CRYPTO_LOCAL_H
+#define HEADER_CRYPTO_LOCAL_H
+
+__BEGIN_HIDDEN_DECLS
+
+struct crypto_threadid_st {
+ void *ptr;
+ unsigned long val;
+} /* CRYPTO_THREADID */;
+
+void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
+int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b);
+void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src);
+unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
+
+__END_HIDDEN_DECLS
+
+#endif
diff --git a/crypto/des/rand_key.c b/crypto/des/rand_key.c
deleted file mode 100644
index aba899fe..00000000
--- a/crypto/des/rand_key.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $OpenBSD: rand_key.c,v 1.9 2023/07/08 07:11:07 beck Exp $ */
-/* ====================================================================
- * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#include
-
-#include
-
-int
-DES_random_key(DES_cblock *ret)
-{
- do {
- arc4random_buf(ret, sizeof(DES_cblock));
- DES_set_odd_parity(ret);
- } while (DES_is_weak_key(ret));
- return (1);
-}
diff --git a/crypto/des/set_key.c b/crypto/des/set_key.c
index 91116c4d..8ae40a81 100644
--- a/crypto/des/set_key.c
+++ b/crypto/des/set_key.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: set_key.c,v 1.23 2023/07/08 07:34:34 jsing Exp $ */
+/* $OpenBSD: set_key.c,v 1.26 2023/12/20 06:30:04 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -56,14 +56,10 @@
* [including the GNU Public Licence.]
*/
-/* set_key.c v 1.4 eay 24/9/91
- * 1.4 Speed up by 400% :-)
- * 1.3 added register declarations.
- * 1.2 unrolled make_key_sched a bit more
- * 1.1 added norm_expand_bits
- * 1.0 First working version
- */
+#include
+
#include
+
#include "des_local.h"
int DES_check_key = 0; /* defaults to false */
@@ -398,10 +394,13 @@ DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule)
{
return (DES_set_key(key, schedule));
}
-/*
-#undef des_fixup_key_parity
-void des_fixup_key_parity(des_cblock *key)
- {
- des_set_odd_parity(key);
- }
-*/
+
+int
+DES_random_key(DES_cblock *ret)
+{
+ do {
+ arc4random_buf(ret, sizeof(DES_cblock));
+ DES_set_odd_parity(ret);
+ } while (DES_is_weak_key(ret));
+ return (1);
+}
diff --git a/crypto/dh/dh_ameth.c b/crypto/dh/dh_ameth.c
index 43beb469..d51a5bea 100644
--- a/crypto/dh/dh_ameth.c
+++ b/crypto/dh/dh_ameth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dh_ameth.c,v 1.39 2023/08/12 07:59:48 tb Exp $ */
+/* $OpenBSD: dh_ameth.c,v 1.40 2024/01/04 17:01:26 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -523,8 +523,8 @@ dh_pkey_param_check(const EVP_PKEY *pkey)
}
const EVP_PKEY_ASN1_METHOD dh_asn1_meth = {
+ .base_method = &dh_asn1_meth,
.pkey_id = EVP_PKEY_DH,
- .pkey_base_id = EVP_PKEY_DH,
.pem_str = "DH",
.info = "OpenSSL PKCS#3 DH method",
diff --git a/crypto/dh/dh_lib.c b/crypto/dh/dh_lib.c
index 8d637876..d8698859 100644
--- a/crypto/dh/dh_lib.c
+++ b/crypto/dh/dh_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dh_lib.c,v 1.41 2023/08/13 12:09:14 tb Exp $ */
+/* $OpenBSD: dh_lib.c,v 1.43 2023/11/29 21:35:57 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -65,10 +65,6 @@
#include
#include
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
-
#include "dh_local.h"
static const DH_METHOD *default_DH_method = NULL;
@@ -101,10 +97,6 @@ DH_set_method(DH *dh, const DH_METHOD *meth)
mtmp = dh->meth;
if (mtmp->finish)
mtmp->finish(dh);
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_finish(dh->engine);
- dh->engine = NULL;
-#endif
dh->meth = meth;
if (meth->init)
meth->init(dh);
@@ -133,24 +125,6 @@ DH_new_method(ENGINE *engine)
dh->flags = dh->meth->flags & ~DH_FLAG_NON_FIPS_ALLOW;
dh->references = 1;
-#ifndef OPENSSL_NO_ENGINE
- if (engine != NULL) {
- if (!ENGINE_init(engine)) {
- DHerror(ERR_R_ENGINE_LIB);
- goto err;
- }
- dh->engine = engine;
- } else
- dh->engine = ENGINE_get_default_DH();
- if (dh->engine != NULL) {
- if ((dh->meth = ENGINE_get_DH(dh->engine)) == NULL) {
- DHerror(ERR_R_ENGINE_LIB);
- goto err;
- }
- dh->flags = dh->meth->flags & ~DH_FLAG_NON_FIPS_ALLOW;
- }
-#endif
-
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DH, dh, &dh->ex_data))
goto err;
if (dh->meth->init != NULL && !dh->meth->init(dh))
@@ -178,9 +152,6 @@ DH_free(DH *r)
if (r->meth != NULL && r->meth->finish != NULL)
r->meth->finish(r);
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_finish(r->engine);
-#endif
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data);
@@ -259,7 +230,7 @@ LCRYPTO_ALIAS(DH_security_bits);
ENGINE *
DH_get0_engine(DH *dh)
{
- return dh->engine;
+ return NULL;
}
LCRYPTO_ALIAS(DH_get0_engine);
diff --git a/crypto/dh/dh_local.h b/crypto/dh/dh_local.h
index 928f2c0c..22e22569 100644
--- a/crypto/dh/dh_local.h
+++ b/crypto/dh/dh_local.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dh_local.h,v 1.3 2022/01/14 08:25:44 tb Exp $ */
+/* $OpenBSD: dh_local.h,v 1.4 2023/11/29 21:35:57 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -100,7 +100,6 @@ struct dh_st {
int references;
CRYPTO_EX_DATA ex_data;
const DH_METHOD *meth;
- ENGINE *engine;
};
/*
diff --git a/crypto/dh/dh_pmeth.c b/crypto/dh/dh_pmeth.c
index 7a598da2..ee90ffe7 100644
--- a/crypto/dh/dh_pmeth.c
+++ b/crypto/dh/dh_pmeth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dh_pmeth.c,v 1.13 2022/11/26 16:08:51 tb Exp $ */
+/* $OpenBSD: dh_pmeth.c,v 1.16 2024/01/01 16:01:48 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -10,7 +10,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -98,7 +98,7 @@ pkey_dh_init(EVP_PKEY_CTX *ctx)
ctx->data = dctx;
ctx->keygen_info = dctx->gentmp;
ctx->keygen_info_count = 2;
-
+
return 1;
}
@@ -109,7 +109,7 @@ pkey_dh_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
if (!pkey_dh_init(dst))
return 0;
- sctx = src->data;
+ sctx = src->data;
dctx = dst->data;
dctx->prime_len = sctx->prime_len;
dctx->generator = sctx->generator;
@@ -149,11 +149,11 @@ pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
return -2;
}
}
-
+
static int
pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value)
{
- long lval;
+ long lval;
char *ep;
int len;
@@ -189,25 +189,28 @@ pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value)
static int
pkey_dh_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
{
- DH *dh = NULL;
+ DH *dh;
DH_PKEY_CTX *dctx = ctx->data;
- BN_GENCB *pcb, cb;
- int ret;
+ BN_GENCB *pcb = NULL;
+ BN_GENCB cb = {0};
+ int ret = 0;
- if (ctx->pkey_gencb) {
+ if ((dh = DH_new()) == NULL)
+ goto err;
+ if (ctx->pkey_gencb != NULL) {
pcb = &cb;
evp_pkey_set_cb_translate(pcb, ctx);
- } else
- pcb = NULL;
- dh = DH_new();
- if (!dh)
- return 0;
- ret = DH_generate_parameters_ex(dh, dctx->prime_len, dctx->generator,
- pcb);
- if (ret)
- EVP_PKEY_assign_DH(pkey, dh);
- else
- DH_free(dh);
+ }
+ if (!DH_generate_parameters_ex(dh, dctx->prime_len, dctx->generator, pcb))
+ goto err;
+ if (!EVP_PKEY_assign_DH(pkey, dh))
+ goto err;
+ dh = NULL;
+
+ ret = 1;
+ err:
+ DH_free(dh);
+
return ret;
}
@@ -215,19 +218,29 @@ static int
pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
{
DH *dh = NULL;
+ int ret = 0;
if (ctx->pkey == NULL) {
DHerror(DH_R_NO_PARAMETERS_SET);
- return 0;
+ goto err;
}
- dh = DH_new();
- if (!dh)
- return 0;
- EVP_PKEY_assign_DH(pkey, dh);
- /* Note: if error return, pkey is freed by parent routine */
+
+ if ((dh = DH_new()) == NULL)
+ goto err;
+ if (!EVP_PKEY_set1_DH(pkey, dh))
+ goto err;
+
if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey))
- return 0;
- return DH_generate_key(pkey->pkey.dh);
+ goto err;
+ if (!DH_generate_key(dh))
+ goto err;
+
+ ret = 1;
+
+ err:
+ DH_free(dh);
+
+ return ret;
}
static int
diff --git a/crypto/dsa/dsa_ameth.c b/crypto/dsa/dsa_ameth.c
index 4c20b45b..f9b6a9e7 100644
--- a/crypto/dsa/dsa_ameth.c
+++ b/crypto/dsa/dsa_ameth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa_ameth.c,v 1.55 2023/08/12 07:59:48 tb Exp $ */
+/* $OpenBSD: dsa_ameth.c,v 1.57 2024/01/04 17:01:26 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -674,64 +674,60 @@ dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
}
}
-/* NB these are sorted in pkey_id order, lowest first */
-
-const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[] = {
- {
- .pkey_id = EVP_PKEY_DSA2,
- .pkey_base_id = EVP_PKEY_DSA,
- .pkey_flags = ASN1_PKEY_ALIAS
- },
-
- {
- .pkey_id = EVP_PKEY_DSA1,
- .pkey_base_id = EVP_PKEY_DSA,
- .pkey_flags = ASN1_PKEY_ALIAS
- },
-
- {
- .pkey_id = EVP_PKEY_DSA4,
- .pkey_base_id = EVP_PKEY_DSA,
- .pkey_flags = ASN1_PKEY_ALIAS
- },
-
- {
- .pkey_id = EVP_PKEY_DSA3,
- .pkey_base_id = EVP_PKEY_DSA,
- .pkey_flags = ASN1_PKEY_ALIAS
- },
-
- {
- .pkey_id = EVP_PKEY_DSA,
- .pkey_base_id = EVP_PKEY_DSA,
-
- .pem_str = "DSA",
- .info = "OpenSSL DSA method",
-
- .pub_decode = dsa_pub_decode,
- .pub_encode = dsa_pub_encode,
- .pub_cmp = dsa_pub_cmp,
- .pub_print = dsa_pub_print,
-
- .priv_decode = dsa_priv_decode,
- .priv_encode = dsa_priv_encode,
- .priv_print = dsa_priv_print,
-
- .pkey_size = dsa_size,
- .pkey_bits = dsa_bits,
- .pkey_security_bits = dsa_security_bits,
-
- .param_decode = dsa_param_decode,
- .param_encode = dsa_param_encode,
- .param_missing = dsa_missing_parameters,
- .param_copy = dsa_copy_parameters,
- .param_cmp = dsa_cmp_parameters,
- .param_print = dsa_param_print,
- .sig_print = dsa_sig_print,
-
- .pkey_free = dsa_free,
- .pkey_ctrl = dsa_pkey_ctrl,
- .old_priv_decode = old_dsa_priv_decode,
- .old_priv_encode = old_dsa_priv_encode
- }
+const EVP_PKEY_ASN1_METHOD dsa_asn1_meth = {
+ .base_method = &dsa_asn1_meth,
+ .pkey_id = EVP_PKEY_DSA,
+
+ .pem_str = "DSA",
+ .info = "OpenSSL DSA method",
+
+ .pub_decode = dsa_pub_decode,
+ .pub_encode = dsa_pub_encode,
+ .pub_cmp = dsa_pub_cmp,
+ .pub_print = dsa_pub_print,
+
+ .priv_decode = dsa_priv_decode,
+ .priv_encode = dsa_priv_encode,
+ .priv_print = dsa_priv_print,
+
+ .pkey_size = dsa_size,
+ .pkey_bits = dsa_bits,
+ .pkey_security_bits = dsa_security_bits,
+
+ .param_decode = dsa_param_decode,
+ .param_encode = dsa_param_encode,
+ .param_missing = dsa_missing_parameters,
+ .param_copy = dsa_copy_parameters,
+ .param_cmp = dsa_cmp_parameters,
+ .param_print = dsa_param_print,
+ .sig_print = dsa_sig_print,
+
+ .pkey_free = dsa_free,
+ .pkey_ctrl = dsa_pkey_ctrl,
+ .old_priv_decode = old_dsa_priv_decode,
+ .old_priv_encode = old_dsa_priv_encode
+};
+
+const EVP_PKEY_ASN1_METHOD dsa1_asn1_meth = {
+ .base_method = &dsa_asn1_meth,
+ .pkey_id = EVP_PKEY_DSA1,
+ .pkey_flags = ASN1_PKEY_ALIAS,
+};
+
+const EVP_PKEY_ASN1_METHOD dsa2_asn1_meth = {
+ .base_method = &dsa_asn1_meth,
+ .pkey_id = EVP_PKEY_DSA2,
+ .pkey_flags = ASN1_PKEY_ALIAS,
+};
+
+const EVP_PKEY_ASN1_METHOD dsa3_asn1_meth = {
+ .base_method = &dsa_asn1_meth,
+ .pkey_id = EVP_PKEY_DSA3,
+ .pkey_flags = ASN1_PKEY_ALIAS,
+};
+
+const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth = {
+ .base_method = &dsa_asn1_meth,
+ .pkey_id = EVP_PKEY_DSA4,
+ .pkey_flags = ASN1_PKEY_ALIAS,
};
diff --git a/crypto/dsa/dsa_gen.c b/crypto/dsa/dsa_gen.c
index 490c7e51..8b966871 100644
--- a/crypto/dsa/dsa_gen.c
+++ b/crypto/dsa/dsa_gen.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa_gen.c,v 1.30 2023/07/08 14:28:15 beck Exp $ */
+/* $OpenBSD: dsa_gen.c,v 1.31 2024/03/02 09:33:14 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -357,25 +357,4 @@ dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd,
return ok;
}
-DSA *
-DSA_generate_parameters(int bits, unsigned char *seed_in, int seed_len,
- int *counter_ret, unsigned long *h_ret, void (*callback)(int, int, void *),
- void *cb_arg)
-{
- BN_GENCB cb;
- DSA *ret;
-
- if ((ret = DSA_new()) == NULL)
- return NULL;
-
- BN_GENCB_set_old(&cb, callback, cb_arg);
-
- if (DSA_generate_parameters_ex(ret, bits, seed_in, seed_len,
- counter_ret, h_ret, &cb))
- return ret;
- DSA_free(ret);
- return NULL;
-}
-LCRYPTO_ALIAS(DSA_generate_parameters);
-
#endif
diff --git a/crypto/dsa/dsa_lib.c b/crypto/dsa/dsa_lib.c
index a9d2179a..65eb6528 100644
--- a/crypto/dsa/dsa_lib.c
+++ b/crypto/dsa/dsa_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa_lib.c,v 1.44 2023/08/12 06:14:36 tb Exp $ */
+/* $OpenBSD: dsa_lib.c,v 1.46 2023/11/29 21:35:57 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -70,9 +70,6 @@
#ifndef OPENSSL_NO_DH
#include
#endif
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
#include "dh_local.h"
#include "dsa_local.h"
@@ -113,10 +110,6 @@ DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
mtmp = dsa->meth;
if (mtmp->finish)
mtmp->finish(dsa);
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_finish(dsa->engine);
- dsa->engine = NULL;
-#endif
dsa->meth = meth;
if (meth->init)
meth->init(dsa);
@@ -138,24 +131,6 @@ DSA_new_method(ENGINE *engine)
dsa->flags = dsa->meth->flags & ~DSA_FLAG_NON_FIPS_ALLOW;
dsa->references = 1;
-#ifndef OPENSSL_NO_ENGINE
- if (engine) {
- if (!ENGINE_init(engine)) {
- DSAerror(ERR_R_ENGINE_LIB);
- goto err;
- }
- dsa->engine = engine;
- } else
- dsa->engine = ENGINE_get_default_DSA();
- if (dsa->engine != NULL) {
- if ((dsa->meth = ENGINE_get_DSA(dsa->engine)) == NULL) {
- DSAerror(ERR_R_ENGINE_LIB);
- goto err;
- }
- dsa->flags = dsa->meth->flags & ~DSA_FLAG_NON_FIPS_ALLOW;
- }
-#endif
-
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DSA, dsa, &dsa->ex_data))
goto err;
if (dsa->meth->init != NULL && !dsa->meth->init(dsa))
@@ -184,9 +159,6 @@ DSA_free(DSA *r)
if (r->meth != NULL && r->meth->finish != NULL)
r->meth->finish(r);
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_finish(r->engine);
-#endif
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DSA, r, &r->ex_data);
@@ -425,7 +397,7 @@ LCRYPTO_ALIAS(DSA_set_flags);
ENGINE *
DSA_get0_engine(DSA *d)
{
- return d->engine;
+ return NULL;
}
LCRYPTO_ALIAS(DSA_get0_engine);
diff --git a/crypto/dsa/dsa_local.h b/crypto/dsa/dsa_local.h
index a413db97..3e688b8c 100644
--- a/crypto/dsa/dsa_local.h
+++ b/crypto/dsa/dsa_local.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa_local.h,v 1.2 2023/03/04 20:54:52 tb Exp $ */
+/* $OpenBSD: dsa_local.h,v 1.3 2023/11/29 21:35:57 tb Exp $ */
/* ====================================================================
* Copyright (c) 2007 The OpenSSL Project. All rights reserved.
*
@@ -106,8 +106,6 @@ struct dsa_st {
int references;
CRYPTO_EX_DATA ex_data;
const DSA_METHOD *meth;
- /* functional reference if 'meth' is ENGINE-provided */
- ENGINE *engine;
} /* DSA */;
int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,
diff --git a/crypto/dsa/dsa_pmeth.c b/crypto/dsa/dsa_pmeth.c
index 9b03a2fc..001bdec2 100644
--- a/crypto/dsa/dsa_pmeth.c
+++ b/crypto/dsa/dsa_pmeth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa_pmeth.c,v 1.17 2023/04/25 15:48:48 tb Exp $ */
+/* $OpenBSD: dsa_pmeth.c,v 1.19 2023/12/28 22:11:26 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -288,25 +288,30 @@ pkey_dsa_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value)
static int
pkey_dsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
{
- DSA *dsa = NULL;
+ DSA *dsa;
DSA_PKEY_CTX *dctx = ctx->data;
- BN_GENCB *pcb, cb;
- int ret;
+ BN_GENCB *pcb = NULL;
+ BN_GENCB cb = {0};
+ int ret = 0;
- if (ctx->pkey_gencb) {
+ if ((dsa = DSA_new()) == NULL)
+ goto err;
+ if (ctx->pkey_gencb != NULL) {
pcb = &cb;
evp_pkey_set_cb_translate(pcb, ctx);
- } else
- pcb = NULL;
- dsa = DSA_new();
- if (!dsa)
- return 0;
- ret = dsa_builtin_paramgen(dsa, dctx->nbits, dctx->qbits, dctx->pmd,
- NULL, 0, NULL, NULL, NULL, pcb);
- if (ret)
- EVP_PKEY_assign_DSA(pkey, dsa);
- else
- DSA_free(dsa);
+ }
+ if (!dsa_builtin_paramgen(dsa, dctx->nbits, dctx->qbits, dctx->pmd,
+ NULL, 0, NULL, NULL, NULL, pcb))
+ goto err;
+ if (!EVP_PKEY_assign_DSA(pkey, dsa))
+ goto err;
+ dsa = NULL;
+
+ ret = 1;
+
+ err:
+ DSA_free(dsa);
+
return ret;
}
@@ -314,19 +319,28 @@ static int
pkey_dsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
{
DSA *dsa = NULL;
+ int ret = 0;
if (ctx->pkey == NULL) {
DSAerror(DSA_R_NO_PARAMETERS_SET);
- return 0;
+ goto err;
}
- dsa = DSA_new();
- if (!dsa)
- return 0;
- EVP_PKEY_assign_DSA(pkey, dsa);
- /* Note: if error return, pkey is freed by parent routine */
+ if ((dsa = DSA_new()) == NULL)
+ goto err;
+ if (!EVP_PKEY_set1_DSA(pkey, dsa))
+ goto err;
+
if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey))
- return 0;
- return DSA_generate_key(pkey->pkey.dsa);
+ goto err;
+ if (!DSA_generate_key(dsa))
+ goto err;
+
+ ret = 1;
+
+ err:
+ DSA_free(dsa);
+
+ return ret;
}
const EVP_PKEY_METHOD dsa_pkey_meth = {
diff --git a/crypto/ec/ec_ameth.c b/crypto/ec/ec_ameth.c
index 32486587..7ca5b180 100644
--- a/crypto/ec/ec_ameth.c
+++ b/crypto/ec/ec_ameth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ec_ameth.c,v 1.45 2023/09/24 08:08:54 tb Exp $ */
+/* $OpenBSD: ec_ameth.c,v 1.51 2024/01/04 17:01:26 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -264,8 +264,8 @@ eckey_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
if (!X509_PUBKEY_get0_param(NULL, &p, &pklen, &palg, pubkey))
goto err;
- X509_ALGOR_get0(NULL, &ptype, &pval, palg);
+ X509_ALGOR_get0(NULL, &ptype, &pval, palg);
if (!eckey_from_params(ptype, pval, &eckey))
goto err;
@@ -301,69 +301,73 @@ eckey_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
return -2;
}
+static int
+eckey_compute_pubkey(EC_KEY *eckey)
+{
+ const BIGNUM *priv_key;
+ const EC_GROUP *group;
+ EC_POINT *pub_key = NULL;
+ int ret = 0;
+
+ if ((priv_key = EC_KEY_get0_private_key(eckey)) == NULL)
+ goto err;
+ if ((group = EC_KEY_get0_group(eckey)) == NULL)
+ goto err;
+ if ((pub_key = EC_POINT_new(group)) == NULL)
+ goto err;
+ if (!EC_POINT_mul(group, pub_key, priv_key, NULL, NULL, NULL))
+ goto err;
+ if (!EC_KEY_set_public_key(eckey, pub_key))
+ goto err;
+ pub_key = NULL;
+
+ ret = 1;
+
+ err:
+ EC_POINT_free(pub_key);
+
+ return ret;
+}
+
static int
eckey_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
{
- const unsigned char *p = NULL;
+ const unsigned char *priv = NULL;
+ int priv_len;
const void *pval;
- int ptype, pklen;
+ int ptype;
EC_KEY *eckey = NULL;
const X509_ALGOR *palg;
+ int ret = 0;
- if (!PKCS8_pkey_get0(NULL, &p, &pklen, &palg, p8))
- return 0;
- X509_ALGOR_get0(NULL, &ptype, &pval, palg);
+ if (!PKCS8_pkey_get0(NULL, &priv, &priv_len, &palg, p8))
+ goto err;
+ X509_ALGOR_get0(NULL, &ptype, &pval, palg);
if (!eckey_from_params(ptype, pval, &eckey))
- goto ecliberr;
+ goto err;
- /* We have parameters now set private key */
- if (!d2i_ECPrivateKey(&eckey, &p, pklen)) {
+ /* Decode private key into eckey. */
+ if (d2i_ECPrivateKey(&eckey, &priv, priv_len) == NULL) {
ECerror(EC_R_DECODE_ERROR);
- goto ecerr;
+ goto err;
}
- /* calculate public key (if necessary) */
+ /* If public key was missing from SEC1 key, compute it. */
if (EC_KEY_get0_public_key(eckey) == NULL) {
- const BIGNUM *priv_key;
- const EC_GROUP *group;
- EC_POINT *pub_key;
- /*
- * the public key was not included in the SEC1 private key =>
- * calculate the public key
- */
- group = EC_KEY_get0_group(eckey);
- pub_key = EC_POINT_new(group);
- if (pub_key == NULL) {
- ECerror(ERR_R_EC_LIB);
- goto ecliberr;
- }
- if (!EC_POINT_copy(pub_key, EC_GROUP_get0_generator(group))) {
- EC_POINT_free(pub_key);
- ECerror(ERR_R_EC_LIB);
- goto ecliberr;
- }
- priv_key = EC_KEY_get0_private_key(eckey);
- if (!EC_POINT_mul(group, pub_key, priv_key, NULL, NULL, NULL)) {
- EC_POINT_free(pub_key);
- ECerror(ERR_R_EC_LIB);
- goto ecliberr;
- }
- if (EC_KEY_set_public_key(eckey, pub_key) == 0) {
- EC_POINT_free(pub_key);
- ECerror(ERR_R_EC_LIB);
- goto ecliberr;
- }
- EC_POINT_free(pub_key);
+ if (!eckey_compute_pubkey(eckey))
+ goto err;
}
- EVP_PKEY_assign_EC_KEY(pkey, eckey);
- return 1;
- ecliberr:
- ECerror(ERR_R_EC_LIB);
- ecerr:
- if (eckey)
- EC_KEY_free(eckey);
- return 0;
+ if (!EVP_PKEY_assign_EC_KEY(pkey, eckey))
+ goto err;
+ eckey = NULL;
+
+ ret = 1;
+
+ err:
+ EC_KEY_free(eckey);
+
+ return ret;
}
static int
@@ -547,63 +551,74 @@ do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, int ktype)
}
static int
-eckey_param_decode(EVP_PKEY *pkey,
- const unsigned char **pder, int derlen)
+eckey_param_decode(EVP_PKEY *pkey, const unsigned char **param, int param_len)
{
EC_KEY *eckey;
- if (!(eckey = d2i_ECParameters(NULL, pder, derlen))) {
- ECerror(ERR_R_EC_LIB);
- return 0;
- }
- EVP_PKEY_assign_EC_KEY(pkey, eckey);
- return 1;
+ int ret = 0;
+
+ if ((eckey = d2i_ECParameters(NULL, param, param_len)) == NULL)
+ goto err;
+ if (!EVP_PKEY_assign_EC_KEY(pkey, eckey))
+ goto err;
+ eckey = NULL;
+
+ ret = 1;
+
+ err:
+ EC_KEY_free(eckey);
+
+ return ret;
}
static int
-eckey_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
+eckey_param_encode(const EVP_PKEY *pkey, unsigned char **param)
{
- return i2d_ECParameters(pkey->pkey.ec, pder);
+ return i2d_ECParameters(pkey->pkey.ec, param);
}
static int
-eckey_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *ctx)
+eckey_param_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx)
{
return do_EC_KEY_print(bp, pkey->pkey.ec, indent, 0);
}
static int
-eckey_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *ctx)
+eckey_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx)
{
return do_EC_KEY_print(bp, pkey->pkey.ec, indent, 1);
}
static int
-eckey_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,
- ASN1_PCTX *ctx)
+eckey_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx)
{
return do_EC_KEY_print(bp, pkey->pkey.ec, indent, 2);
}
static int
-old_ec_priv_decode(EVP_PKEY *pkey,
- const unsigned char **pder, int derlen)
+old_ec_priv_decode(EVP_PKEY *pkey, const unsigned char **priv, int priv_len)
{
- EC_KEY *ec;
- if (!(ec = d2i_ECPrivateKey(NULL, pder, derlen))) {
- ECerror(EC_R_DECODE_ERROR);
- return 0;
- }
- EVP_PKEY_assign_EC_KEY(pkey, ec);
- return 1;
+ EC_KEY *eckey;
+ int ret = 0;
+
+ if ((eckey = d2i_ECPrivateKey(NULL, priv, priv_len)) == NULL)
+ goto err;
+ if (!EVP_PKEY_assign_EC_KEY(pkey, eckey))
+ goto err;
+ eckey = NULL;
+
+ ret = 1;
+
+ err:
+ EC_KEY_free(eckey);
+
+ return ret;
}
static int
-old_ec_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
+old_ec_priv_encode(const EVP_PKEY *pkey, unsigned char **priv)
{
- return i2d_ECPrivateKey(pkey->pkey.ec, pder);
+ return i2d_ECPrivateKey(pkey->pkey.ec, priv);
}
static int
@@ -1034,8 +1049,8 @@ ecdh_cms_encrypt(CMS_RecipientInfo *ri)
#endif
const EVP_PKEY_ASN1_METHOD eckey_asn1_meth = {
+ .base_method = &eckey_asn1_meth,
.pkey_id = EVP_PKEY_EC,
- .pkey_base_id = EVP_PKEY_EC,
.pem_str = "EC",
.info = "OpenSSL EC algorithm",
diff --git a/crypto/ec/ec_key.c b/crypto/ec/ec_key.c
index d9ddd5d7..dd976898 100644
--- a/crypto/ec/ec_key.c
+++ b/crypto/ec/ec_key.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ec_key.c,v 1.37 2023/08/03 18:53:56 tb Exp $ */
+/* $OpenBSD: ec_key.c,v 1.39 2023/11/29 21:35:57 tb Exp $ */
/*
* Written by Nils Larsch for the OpenSSL project.
*/
@@ -65,9 +65,6 @@
#include
-#ifndef OPENSSL_NO_ENGINE
-#include
-#endif
#include
#include "bn_local.h"
@@ -115,9 +112,6 @@ EC_KEY_free(EC_KEY *r)
if (r->meth != NULL && r->meth->finish != NULL)
r->meth->finish(r);
-#ifndef OPENSSL_NO_ENGINE
- ENGINE_finish(r->engine);
-#endif
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, r, &r->ex_data);
EC_GROUP_free(r->group);
@@ -138,11 +132,6 @@ EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
if (src->meth != dest->meth) {
if (dest->meth != NULL && dest->meth->finish != NULL)
dest->meth->finish(dest);
-#ifndef OPENSSL_NO_ENGINE
- if (ENGINE_finish(dest->engine) == 0)
- return 0;
- dest->engine = NULL;
-#endif
}
/* copy the parameters */
if (src->group) {
@@ -186,11 +175,6 @@ EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
return NULL;
if (src->meth != dest->meth) {
-#ifndef OPENSSL_NO_ENGINE
- if (src->engine != NULL && ENGINE_init(src->engine) == 0)
- return 0;
- dest->engine = src->engine;
-#endif
dest->meth = src->meth;
}
@@ -207,7 +191,7 @@ EC_KEY_dup(const EC_KEY *ec_key)
{
EC_KEY *ret;
- if ((ret = EC_KEY_new_method(ec_key->engine)) == NULL)
+ if ((ret = EC_KEY_new_method(NULL)) == NULL)
return NULL;
if (EC_KEY_copy(ret, ec_key) == NULL) {
EC_KEY_free(ret);
diff --git a/crypto/ec/ec_kmeth.c b/crypto/ec/ec_kmeth.c
index 38aca002..856afc89 100644
--- a/crypto/ec/ec_kmeth.c
+++ b/crypto/ec/ec_kmeth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ec_kmeth.c,v 1.12 2023/07/28 09:28:37 tb Exp $ */
+/* $OpenBSD: ec_kmeth.c,v 1.13 2023/11/19 15:46:09 tb Exp $ */
/*
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
@@ -53,9 +53,6 @@
*/
#include
-#ifndef OPENSSL_NO_ENGINE
-#include