Merge remote-tracking branch 'development' into psa_crypto_config-in-full
Conflicts: * `include/psa/crypto_sizes.h`: the addition of the `u` suffix in this branch conflicts with the rework of the calculation of `PSA_HASH_MAX_SIZE` and `PSA_HMAC_MAX_HASH_BLOCK_SIZE` in `development`. Use the new definitions from `development`, and add the `u` suffix to the relevant constants.
This commit is contained in:
commit
03e9dea30b
121 changed files with 3699 additions and 1307 deletions
36
.travis.yml
36
.travis.yml
|
@ -32,6 +32,10 @@ jobs:
|
||||||
packages:
|
packages:
|
||||||
- clang-10
|
- clang-10
|
||||||
- gnutls-bin
|
- gnutls-bin
|
||||||
|
env:
|
||||||
|
# Platform tests have an allocation that returns null
|
||||||
|
- ASAN_OPTIONS="allocator_may_return_null=1"
|
||||||
|
- MSAN_OPTIONS="allocator_may_return_null=1"
|
||||||
script:
|
script:
|
||||||
# Do a manual build+test sequence rather than using all.sh,
|
# Do a manual build+test sequence rather than using all.sh,
|
||||||
# because there's no all.sh component that does what we want,
|
# because there's no all.sh component that does what we want,
|
||||||
|
@ -89,6 +93,10 @@ jobs:
|
||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- gcc
|
- gcc
|
||||||
|
env:
|
||||||
|
# Platform tests have an allocation that returns null
|
||||||
|
- ASAN_OPTIONS="allocator_may_return_null=1"
|
||||||
|
- MSAN_OPTIONS="allocator_may_return_null=1"
|
||||||
script:
|
script:
|
||||||
# Do a manual build+test sequence rather than using all.sh.
|
# Do a manual build+test sequence rather than using all.sh.
|
||||||
#
|
#
|
||||||
|
@ -115,6 +123,10 @@ jobs:
|
||||||
packages:
|
packages:
|
||||||
- clang
|
- clang
|
||||||
- gnutls-bin
|
- gnutls-bin
|
||||||
|
env:
|
||||||
|
# Platform tests have an allocation that returns null
|
||||||
|
- ASAN_OPTIONS="allocator_may_return_null=1"
|
||||||
|
- MSAN_OPTIONS="allocator_may_return_null=1"
|
||||||
script:
|
script:
|
||||||
# Do a manual build+test sequence rather than using all.sh.
|
# Do a manual build+test sequence rather than using all.sh.
|
||||||
#
|
#
|
||||||
|
@ -129,6 +141,30 @@ jobs:
|
||||||
- tests/scripts/travis-log-failure.sh
|
- tests/scripts/travis-log-failure.sh
|
||||||
- tests/context-info.sh
|
- tests/context-info.sh
|
||||||
|
|
||||||
|
- name: Arm64 accelerators tests on arm64 host
|
||||||
|
os: linux
|
||||||
|
dist: focal
|
||||||
|
arch: arm64
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- gcc
|
||||||
|
script:
|
||||||
|
# Do a manual build+test sequence rather than using all.sh.
|
||||||
|
#
|
||||||
|
# This is arm64 host only test for no runtime detection case. Internal
|
||||||
|
# and Open CI do not include Arm64 host, and they check if components
|
||||||
|
# are be tested. As result, it will always fail on `pre-test-check` in
|
||||||
|
# them.
|
||||||
|
- scripts/config.py unset MBEDTLS_AESNI_C
|
||||||
|
- scripts/config.py unset MBEDTLS_PADLOCK_C
|
||||||
|
- scripts/config.py set MBEDTLS_AESCE_C
|
||||||
|
- scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||||
|
- make generated_files
|
||||||
|
- make
|
||||||
|
- programs/test/selftest aes | grep "using AESCE"
|
||||||
|
- tests/context-info.sh
|
||||||
|
|
||||||
after_failure:
|
after_failure:
|
||||||
- tests/scripts/travis-log-failure.sh
|
- tests/scripts/travis-log-failure.sh
|
||||||
|
|
||||||
|
|
4
3rdparty/p256-m/p256-m/p256-m.c
vendored
4
3rdparty/p256-m/p256-m/p256-m.c
vendored
|
@ -199,10 +199,12 @@ static uint64_t u32_muladd64(uint32_t x, uint32_t y, uint32_t z, uint32_t t);
|
||||||
* Currently assembly optimisations are only supported with GCC/Clang for
|
* Currently assembly optimisations are only supported with GCC/Clang for
|
||||||
* Arm's Cortex-A and Cortex-M lines of CPUs, which start with the v6-M and
|
* Arm's Cortex-A and Cortex-M lines of CPUs, which start with the v6-M and
|
||||||
* v7-M architectures. __ARM_ARCH_PROFILE is not defined for v6 and earlier.
|
* v7-M architectures. __ARM_ARCH_PROFILE is not defined for v6 and earlier.
|
||||||
|
* Thumb and 32-bit assembly is supported; aarch64 is not supported.
|
||||||
*/
|
*/
|
||||||
#if defined(__GNUC__) &&\
|
#if defined(__GNUC__) &&\
|
||||||
defined(__ARM_ARCH) && __ARM_ARCH >= 6 && defined(__ARM_ARCH_PROFILE) && \
|
defined(__ARM_ARCH) && __ARM_ARCH >= 6 && defined(__ARM_ARCH_PROFILE) && \
|
||||||
( __ARM_ARCH_PROFILE == 77 || __ARM_ARCH_PROFILE == 65 ) /* 'M' or 'A' */
|
( __ARM_ARCH_PROFILE == 77 || __ARM_ARCH_PROFILE == 65 ) /* 'M' or 'A' */ && \
|
||||||
|
!defined(__aarch64__)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This set of CPUs is conveniently partitioned as follows:
|
* This set of CPUs is conveniently partitioned as follows:
|
||||||
|
|
|
@ -226,7 +226,9 @@ if(CMAKE_COMPILER_IS_CLANG)
|
||||||
endif(CMAKE_COMPILER_IS_CLANG)
|
endif(CMAKE_COMPILER_IS_CLANG)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_IAR)
|
if(CMAKE_COMPILER_IS_IAR)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --warn_about_c_style_casts -Ohz")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --warn_about_c_style_casts")
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "-Ohz")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "--debug -On")
|
||||||
endif(CMAKE_COMPILER_IS_IAR)
|
endif(CMAKE_COMPILER_IS_IAR)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_MSVC)
|
if(CMAKE_COMPILER_IS_MSVC)
|
||||||
|
|
|
@ -84,8 +84,14 @@ Mbed TLS is well documented, but if you think documentation is needed, speak out
|
||||||
License and Copyright
|
License and Copyright
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
All new files should include the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) standard license header where possible. For licensing details, please see the [License section of the README](README.md#License).
|
Unless specifically indicated otherwise in a file, Mbed TLS files are provided under the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) license. See the [LICENSE](LICENSE) file for the full text of this license.
|
||||||
|
|
||||||
|
Contributors must accept that their contributions are made under both the Apache-2.0 AND [GPL-2.0-or-later](https://spdx.org/licenses/GPL-2.0-or-later.html) licenses. This enables LTS (Long Term Support) branches of the software to be provided under either the Apache-2.0 or GPL-2.0-or-later licenses.
|
||||||
|
|
||||||
|
All new files should include the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) standard license header where possible.
|
||||||
|
|
||||||
The copyright on contributions is retained by the original authors of the code. Where possible for new files, this should be noted in a comment at the top of the file in the form: "Copyright The Mbed TLS Contributors".
|
The copyright on contributions is retained by the original authors of the code. Where possible for new files, this should be noted in a comment at the top of the file in the form: "Copyright The Mbed TLS Contributors".
|
||||||
|
|
||||||
When contributing code to us, the committer and all authors are required to make the submission under the terms of the [Developer Certificate of Origin](dco.txt), confirming that the code submitted can (legally) become part of the project, and be subject to the same Apache 2.0 license. This is done by including the standard Git `Signed-off-by:` line in every commit message. If more than one person contributed to the commit, they should also add their own `Signed-off-by:` line.
|
When contributing code to us, the committer and all authors are required to make the submission under the terms of the [Developer Certificate of Origin](dco.txt), confirming that the code submitted can (legally) become part of the project, and is submitted under both the Apache-2.0 AND GPL-2.0-or-later licenses.
|
||||||
|
|
||||||
|
This is done by including the standard Git `Signed-off-by:` line in every commit message. If more than one person contributed to the commit, they should also add their own `Signed-off-by:` line.
|
||||||
|
|
6
ChangeLog.d/add-aes-hardware-only-option.txt
Normal file
6
ChangeLog.d/add-aes-hardware-only-option.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Features
|
||||||
|
* New configuration option MBEDTLS_AES_USE_HARDWARE_ONLY introduced. When
|
||||||
|
using CPU-accelerated AES (e.g., Arm Crypto Extensions), this option
|
||||||
|
disables the plain C implementation and the run-time detection for the
|
||||||
|
CPU feature, which reduces code size and avoids the vulnerability of the
|
||||||
|
plain C implementation.
|
3
ChangeLog.d/fix-a-few-unchecked-return.txt
Normal file
3
ChangeLog.d/fix-a-few-unchecked-return.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Bugfix
|
||||||
|
* Fix some cases where mbedtls_mpi_mod_exp, RSA key construction or ECDSA
|
||||||
|
signature can silently return an incorrect result in low memory conditions.
|
2
ChangeLog.d/fix-iar-compiler-warnings.txt
Normal file
2
ChangeLog.d/fix-iar-compiler-warnings.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Bugfix
|
||||||
|
* Fix IAR compiler warnings.
|
3
ChangeLog.d/psa_crypto_user_config_file.txt
Normal file
3
ChangeLog.d/psa_crypto_user_config_file.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Bugfix
|
||||||
|
* Don't try to include MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE when
|
||||||
|
MBEDTLS_PSA_CRYPTO_CONFIG is disabled.
|
|
@ -307,13 +307,14 @@ When using drivers, you will generally want to enable two compilation options (s
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Unless specifically indicated otherwise in a file, Mbed TLS files are provided under the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) license. See the [LICENSE](LICENSE) file for the full text of this license. Contributors must accept that their contributions are made under both the Apache-2.0 AND [GPL-2.0-or-later](https://spdx.org/licenses/GPL-2.0-or-later.html) licenses. This enables LTS (Long Term Support) branches of the software to be provided under either the Apache-2.0 OR GPL-2.0-or-later licenses.
|
Unless specifically indicated otherwise in a file, Mbed TLS files are provided under the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) license. See the [LICENSE](LICENSE) file for the full text of this license, and [the 'License and Copyright' section in the contributing guidelines](CONTRIBUTING.md#License-and-Copyright) for more information.
|
||||||
|
|
||||||
### Third-party code included in Mbed TLS
|
### Third-party code included in Mbed TLS
|
||||||
|
|
||||||
This project contains code from other projects. This code is located within the `3rdparty/` directory. The original license text is included within project subdirectories, and in source files. The projects are listed below:
|
This project contains code from other projects. This code is located within the `3rdparty/` directory. The original license text is included within project subdirectories, and in source files. The projects are listed below:
|
||||||
|
|
||||||
* `3rdparty/everest/`: Files stem from [Project Everest](https://project-everest.github.io/) and are distributed under the Apache 2.0 license.
|
* `3rdparty/everest/`: Files stem from [Project Everest](https://project-everest.github.io/) and are distributed under the Apache 2.0 license.
|
||||||
* `3rdparty/p256-m/p256-m/`: Files have been taken from the [p256-m](https://github.com/mpg/p256-m) repository. The code in the original repository is distributed under the Apache 2.0 license. It is also used by the project under the Apache 2.0 license. We do not plan to regularly update these files, so they may not contain fixes and improvements present in the upstream project.
|
* `3rdparty/p256-m/p256-m/`: Files have been taken from the [p256-m](https://github.com/mpg/p256-m) repository. The code in the original repository is distributed under the Apache 2.0 license. It is also used by Mbed TLS under the Apache 2.0 license. We do not plan to regularly update these files, so they may not contain fixes and improvements present in the upstream project.
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -51,4 +51,5 @@ PREDEFINED = "MBEDTLS_CHECK_RETURN_CRITICAL=" \
|
||||||
"MBEDTLS_CHECK_RETURN_TYPICAL=" \
|
"MBEDTLS_CHECK_RETURN_TYPICAL=" \
|
||||||
"MBEDTLS_CHECK_RETURN_OPTIONAL=" \
|
"MBEDTLS_CHECK_RETURN_OPTIONAL=" \
|
||||||
"MBEDTLS_PRINTF_ATTRIBUTE(a,b)=" \
|
"MBEDTLS_PRINTF_ATTRIBUTE(a,b)=" \
|
||||||
|
"__DOXYGEN__" \
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
#define inline __inline
|
#define inline __inline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* X.509, TLS and non-PSA crypto configuration */
|
||||||
#if !defined(MBEDTLS_CONFIG_FILE)
|
#if !defined(MBEDTLS_CONFIG_FILE)
|
||||||
#include "mbedtls/mbedtls_config.h"
|
#include "mbedtls/mbedtls_config.h"
|
||||||
#else
|
#else
|
||||||
|
@ -80,6 +81,18 @@
|
||||||
#include MBEDTLS_USER_CONFIG_FILE
|
#include MBEDTLS_USER_CONFIG_FILE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* PSA crypto configuration */
|
||||||
|
#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
|
||||||
|
#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE)
|
||||||
|
#include MBEDTLS_PSA_CRYPTO_CONFIG_FILE
|
||||||
|
#else
|
||||||
|
#include "psa/crypto_config.h"
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE)
|
||||||
|
#include MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
|
||||||
|
#endif
|
||||||
|
#endif /* defined(MBEDTLS_PSA_CRYPTO_CONFIG) */
|
||||||
|
|
||||||
/* Auto-enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY if
|
/* Auto-enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY if
|
||||||
* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH and MBEDTLS_CTR_DRBG_C defined
|
* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH and MBEDTLS_CTR_DRBG_C defined
|
||||||
* to ensure a 128-bit key size in CTR_DRBG.
|
* to ensure a 128-bit key size in CTR_DRBG.
|
||||||
|
|
|
@ -412,10 +412,6 @@
|
||||||
#error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequisites"
|
#error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequisites"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM)
|
|
||||||
#error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
|
#if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
|
||||||
#error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
|
#error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,24 +30,8 @@
|
||||||
#ifndef MBEDTLS_CONFIG_PSA_H
|
#ifndef MBEDTLS_CONFIG_PSA_H
|
||||||
#define MBEDTLS_CONFIG_PSA_H
|
#define MBEDTLS_CONFIG_PSA_H
|
||||||
|
|
||||||
#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
|
|
||||||
#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE)
|
|
||||||
#include MBEDTLS_PSA_CRYPTO_CONFIG_FILE
|
|
||||||
#else
|
|
||||||
#include "psa/crypto_config.h"
|
|
||||||
#endif
|
|
||||||
#endif /* defined(MBEDTLS_PSA_CRYPTO_CONFIG) */
|
|
||||||
|
|
||||||
#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE)
|
|
||||||
#include MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "psa/crypto_legacy.h"
|
#include "psa/crypto_legacy.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
|
@ -113,6 +97,13 @@ extern "C" {
|
||||||
#define PSA_WANT_ALG_SHA_512 1
|
#define PSA_WANT_ALG_SHA_512 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_SHA3_C)
|
||||||
|
#define PSA_WANT_ALG_SHA3_224 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_256 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_384 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_512 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
/* Require built-in implementations based on PSA requirements */
|
/* Require built-in implementations based on PSA requirements */
|
||||||
|
@ -270,6 +261,26 @@ extern "C" {
|
||||||
#define MBEDTLS_SHA512_C
|
#define MBEDTLS_SHA512_C
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_SHA3_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
|
||||||
|
#define MBEDTLS_SHA3_C
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_SHA3_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
|
||||||
|
#define MBEDTLS_SHA3_C
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_SHA3_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
|
||||||
|
#define MBEDTLS_SHA3_C
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_SHA3_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
|
||||||
|
#define MBEDTLS_SHA3_C
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(PSA_WANT_ALG_PBKDF2_HMAC)
|
#if defined(PSA_WANT_ALG_PBKDF2_HMAC)
|
||||||
#if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC)
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC)
|
||||||
#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_HMAC 1
|
#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_HMAC 1
|
||||||
|
@ -888,6 +899,17 @@ extern "C" {
|
||||||
#define PSA_WANT_ALG_SHA_512 1
|
#define PSA_WANT_ALG_SHA_512 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_SHA3_C)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_224 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_256 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_384 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_512 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AES_C)
|
#if defined(MBEDTLS_AES_C)
|
||||||
#define PSA_WANT_KEY_TYPE_AES 1
|
#define PSA_WANT_KEY_TYPE_AES 1
|
||||||
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
|
||||||
|
@ -1074,8 +1096,4 @@ extern "C" {
|
||||||
#define PSA_WANT_KEY_TYPE_PASSWORD_HASH 1
|
#define PSA_WANT_KEY_TYPE_PASSWORD_HASH 1
|
||||||
#define PSA_WANT_KEY_TYPE_RAW_DATA 1
|
#define PSA_WANT_KEY_TYPE_RAW_DATA 1
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* MBEDTLS_CONFIG_PSA_H */
|
#endif /* MBEDTLS_CONFIG_PSA_H */
|
||||||
|
|
|
@ -172,15 +172,47 @@
|
||||||
* This allows different allocators (self-implemented or provided) to be
|
* This allows different allocators (self-implemented or provided) to be
|
||||||
* provided to the platform abstraction layer.
|
* provided to the platform abstraction layer.
|
||||||
*
|
*
|
||||||
* Enabling MBEDTLS_PLATFORM_MEMORY without the
|
* Enabling #MBEDTLS_PLATFORM_MEMORY without the
|
||||||
* MBEDTLS_PLATFORM_{FREE,CALLOC}_MACROs will provide
|
* MBEDTLS_PLATFORM_{FREE,CALLOC}_MACROs will provide
|
||||||
* "mbedtls_platform_set_calloc_free()" allowing you to set an alternative calloc() and
|
* "mbedtls_platform_set_calloc_free()" allowing you to set an alternative calloc() and
|
||||||
* free() function pointer at runtime.
|
* free() function pointer at runtime.
|
||||||
*
|
*
|
||||||
* Enabling MBEDTLS_PLATFORM_MEMORY and specifying
|
* Enabling #MBEDTLS_PLATFORM_MEMORY and specifying
|
||||||
* MBEDTLS_PLATFORM_{CALLOC,FREE}_MACROs will allow you to specify the
|
* MBEDTLS_PLATFORM_{CALLOC,FREE}_MACROs will allow you to specify the
|
||||||
* alternate function at compile time.
|
* alternate function at compile time.
|
||||||
*
|
*
|
||||||
|
* An overview of how the value of mbedtls_calloc is determined:
|
||||||
|
*
|
||||||
|
* - if !MBEDTLS_PLATFORM_MEMORY
|
||||||
|
* - mbedtls_calloc = calloc
|
||||||
|
* - if MBEDTLS_PLATFORM_MEMORY
|
||||||
|
* - if (MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO):
|
||||||
|
* - mbedtls_calloc = MBEDTLS_PLATFORM_CALLOC_MACRO
|
||||||
|
* - if !(MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO):
|
||||||
|
* - Dynamic setup via mbedtls_platform_set_calloc_free is now possible with a default value MBEDTLS_PLATFORM_STD_CALLOC.
|
||||||
|
* - How is MBEDTLS_PLATFORM_STD_CALLOC handled?
|
||||||
|
* - if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:
|
||||||
|
* - MBEDTLS_PLATFORM_STD_CALLOC is not set to anything;
|
||||||
|
* - MBEDTLS_PLATFORM_STD_MEM_HDR can be included if present;
|
||||||
|
* - if !MBEDTLS_PLATFORM_NO_STD_FUNCTIONS:
|
||||||
|
* - if MBEDTLS_PLATFORM_STD_CALLOC is present:
|
||||||
|
* - User-defined MBEDTLS_PLATFORM_STD_CALLOC is respected;
|
||||||
|
* - if !MBEDTLS_PLATFORM_STD_CALLOC:
|
||||||
|
* - MBEDTLS_PLATFORM_STD_CALLOC = calloc
|
||||||
|
*
|
||||||
|
* - At this point the presence of MBEDTLS_PLATFORM_STD_CALLOC is checked.
|
||||||
|
* - if !MBEDTLS_PLATFORM_STD_CALLOC
|
||||||
|
* - MBEDTLS_PLATFORM_STD_CALLOC = uninitialized_calloc
|
||||||
|
*
|
||||||
|
* - mbedtls_calloc = MBEDTLS_PLATFORM_STD_CALLOC.
|
||||||
|
*
|
||||||
|
* Defining MBEDTLS_PLATFORM_CALLOC_MACRO and #MBEDTLS_PLATFORM_STD_CALLOC at the same time is not possible.
|
||||||
|
* MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_FREE_MACRO must both be defined or undefined at the same time.
|
||||||
|
* #MBEDTLS_PLATFORM_STD_CALLOC and #MBEDTLS_PLATFORM_STD_FREE do not have to be defined at the same time, as, if they are used,
|
||||||
|
* dynamic setup of these functions is possible. See the tree above to see how are they handled in all cases.
|
||||||
|
* An uninitialized #MBEDTLS_PLATFORM_STD_CALLOC always fails, returning a null pointer.
|
||||||
|
* An uninitialized #MBEDTLS_PLATFORM_STD_FREE does not do anything.
|
||||||
|
*
|
||||||
* Requires: MBEDTLS_PLATFORM_C
|
* Requires: MBEDTLS_PLATFORM_C
|
||||||
*
|
*
|
||||||
* Enable this layer to allow use of alternative memory allocators.
|
* Enable this layer to allow use of alternative memory allocators.
|
||||||
|
@ -3708,8 +3740,29 @@
|
||||||
|
|
||||||
/* Platform options */
|
/* Platform options */
|
||||||
//#define MBEDTLS_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
|
//#define MBEDTLS_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
|
||||||
//#define MBEDTLS_PLATFORM_STD_CALLOC calloc /**< Default allocator to use, can be undefined */
|
|
||||||
//#define MBEDTLS_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */
|
/** \def MBEDTLS_PLATFORM_STD_CALLOC
|
||||||
|
*
|
||||||
|
* Default allocator to use, can be undefined.
|
||||||
|
* It must initialize the allocated buffer memory to zeroes.
|
||||||
|
* The size of the buffer is the product of the two parameters.
|
||||||
|
* The calloc function returns either a null pointer or a pointer to the allocated space.
|
||||||
|
* If the product is 0, the function may either return NULL or a valid pointer to an array of size 0 which is a valid input to the deallocation function.
|
||||||
|
* An uninitialized #MBEDTLS_PLATFORM_STD_CALLOC always fails, returning a null pointer.
|
||||||
|
* See the description of #MBEDTLS_PLATFORM_MEMORY for more details.
|
||||||
|
* The corresponding deallocation function is #MBEDTLS_PLATFORM_STD_FREE.
|
||||||
|
*/
|
||||||
|
//#define MBEDTLS_PLATFORM_STD_CALLOC calloc
|
||||||
|
|
||||||
|
/** \def MBEDTLS_PLATFORM_STD_FREE
|
||||||
|
*
|
||||||
|
* Default free to use, can be undefined.
|
||||||
|
* NULL is a valid parameter, and the function must do nothing.
|
||||||
|
* A non-null parameter will always be a pointer previously returned by #MBEDTLS_PLATFORM_STD_CALLOC and not yet freed.
|
||||||
|
* An uninitialized #MBEDTLS_PLATFORM_STD_FREE does not do anything.
|
||||||
|
* See the description of #MBEDTLS_PLATFORM_MEMORY for more details (same principles as for MBEDTLS_PLATFORM_STD_CALLOC apply).
|
||||||
|
*/
|
||||||
|
//#define MBEDTLS_PLATFORM_STD_FREE free
|
||||||
//#define MBEDTLS_PLATFORM_STD_SETBUF setbuf /**< Default setbuf to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_STD_SETBUF setbuf /**< Default setbuf to use, can be undefined */
|
||||||
//#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */
|
||||||
//#define MBEDTLS_PLATFORM_STD_TIME time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
|
//#define MBEDTLS_PLATFORM_STD_TIME time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
|
||||||
|
@ -3723,10 +3776,10 @@
|
||||||
//#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
|
||||||
//#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" /**< Seed file to read/write with default implementation */
|
//#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" /**< Seed file to read/write with default implementation */
|
||||||
|
|
||||||
/* To Use Function Macros MBEDTLS_PLATFORM_C must be enabled */
|
/* To use the following function macros, MBEDTLS_PLATFORM_C must be enabled. */
|
||||||
/* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
|
/* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
|
||||||
//#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined. See MBEDTLS_PLATFORM_STD_CALLOC for requirements. */
|
||||||
//#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined. See MBEDTLS_PLATFORM_STD_FREE for requirements. */
|
||||||
//#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */
|
||||||
//#define MBEDTLS_PLATFORM_SETBUF_MACRO setbuf /**< Default setbuf macro to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_SETBUF_MACRO setbuf /**< Default setbuf macro to use, can be undefined */
|
||||||
//#define MBEDTLS_PLATFORM_TIME_MACRO time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
|
//#define MBEDTLS_PLATFORM_TIME_MACRO time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
|
||||||
|
@ -4016,4 +4069,18 @@
|
||||||
*/
|
*/
|
||||||
//#define MBEDTLS_ECP_WITH_MPI_UINT
|
//#define MBEDTLS_ECP_WITH_MPI_UINT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable plain C implementation for AES.
|
||||||
|
*
|
||||||
|
* When the plain C implementation is enabled, and an implementation using a
|
||||||
|
* special CPU feature (such as MBEDTLS_AESCE_C) is also enabled, runtime
|
||||||
|
* detection will be used to select between them.
|
||||||
|
*
|
||||||
|
* If only one implementation is present, runtime detection will not be used.
|
||||||
|
* This configuration will crash at runtime if running on a CPU without the
|
||||||
|
* necessary features. It will not build unless at least one of MBEDTLS_AESCE_C
|
||||||
|
* and/or MBEDTLS_AESNI_C is enabled & present in the build.
|
||||||
|
*/
|
||||||
|
//#define MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||||
|
|
||||||
/** \} name SECTION: Module configuration options */
|
/** \} name SECTION: Module configuration options */
|
||||||
|
|
|
@ -85,6 +85,26 @@
|
||||||
#define MBEDTLS_MD_RIPEMD160_VIA_PSA
|
#define MBEDTLS_MD_RIPEMD160_VIA_PSA
|
||||||
#define MBEDTLS_MD_SOME_PSA
|
#define MBEDTLS_MD_SOME_PSA
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
|
||||||
|
#define MBEDTLS_MD_CAN_SHA3_224
|
||||||
|
#define MBEDTLS_MD_SHA3_224_VIA_PSA
|
||||||
|
#define MBEDTLS_MD_SOME_PSA
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
|
||||||
|
#define MBEDTLS_MD_CAN_SHA3_256
|
||||||
|
#define MBEDTLS_MD_SHA3_256_VIA_PSA
|
||||||
|
#define MBEDTLS_MD_SOME_PSA
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
|
||||||
|
#define MBEDTLS_MD_CAN_SHA3_384
|
||||||
|
#define MBEDTLS_MD_SHA3_384_VIA_PSA
|
||||||
|
#define MBEDTLS_MD_SOME_PSA
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
|
||||||
|
#define MBEDTLS_MD_CAN_SHA3_512
|
||||||
|
#define MBEDTLS_MD_SHA3_512_VIA_PSA
|
||||||
|
#define MBEDTLS_MD_SOME_PSA
|
||||||
|
#endif
|
||||||
#endif /* MBEDTLS_PSA_CRYPTO_C */
|
#endif /* MBEDTLS_PSA_CRYPTO_C */
|
||||||
|
|
||||||
/* Built-in implementations */
|
/* Built-in implementations */
|
||||||
|
@ -117,6 +137,7 @@
|
||||||
#define MBEDTLS_MD_CAN_SHA3_256
|
#define MBEDTLS_MD_CAN_SHA3_256
|
||||||
#define MBEDTLS_MD_CAN_SHA3_384
|
#define MBEDTLS_MD_CAN_SHA3_384
|
||||||
#define MBEDTLS_MD_CAN_SHA3_512
|
#define MBEDTLS_MD_CAN_SHA3_512
|
||||||
|
#define MBEDTLS_MD_SOME_LEGACY
|
||||||
#endif
|
#endif
|
||||||
#if defined(MBEDTLS_RIPEMD160_C)
|
#if defined(MBEDTLS_RIPEMD160_C)
|
||||||
#define MBEDTLS_MD_CAN_RIPEMD160
|
#define MBEDTLS_MD_CAN_RIPEMD160
|
||||||
|
|
|
@ -286,6 +286,10 @@ int mbedtls_net_recv_timeout(void *ctx, unsigned char *buf, size_t len,
|
||||||
* \brief Closes down the connection and free associated data
|
* \brief Closes down the connection and free associated data
|
||||||
*
|
*
|
||||||
* \param ctx The context to close
|
* \param ctx The context to close
|
||||||
|
*
|
||||||
|
* \note This function frees and clears data associated with the
|
||||||
|
* context but does not free the memory pointed to by \p ctx.
|
||||||
|
* This memory is the responsibility of the caller.
|
||||||
*/
|
*/
|
||||||
void mbedtls_net_close(mbedtls_net_context *ctx);
|
void mbedtls_net_close(mbedtls_net_context *ctx);
|
||||||
|
|
||||||
|
@ -293,6 +297,10 @@ void mbedtls_net_close(mbedtls_net_context *ctx);
|
||||||
* \brief Gracefully shutdown the connection and free associated data
|
* \brief Gracefully shutdown the connection and free associated data
|
||||||
*
|
*
|
||||||
* \param ctx The context to free
|
* \param ctx The context to free
|
||||||
|
*
|
||||||
|
* \note This function frees and clears data associated with the
|
||||||
|
* context but does not free the memory pointed to by \p ctx.
|
||||||
|
* This memory is the responsibility of the caller.
|
||||||
*/
|
*/
|
||||||
void mbedtls_net_free(mbedtls_net_context *ctx);
|
void mbedtls_net_free(mbedtls_net_context *ctx);
|
||||||
|
|
||||||
|
|
|
@ -270,6 +270,15 @@
|
||||||
|
|
||||||
#define MBEDTLS_OID_DIGEST_ALG_RIPEMD160 MBEDTLS_OID_TELETRUST "\x03\x02\x01" /**< id-ripemd160 OBJECT IDENTIFIER :: { iso(1) identified-organization(3) teletrust(36) algorithm(3) hashAlgorithm(2) ripemd160(1) } */
|
#define MBEDTLS_OID_DIGEST_ALG_RIPEMD160 MBEDTLS_OID_TELETRUST "\x03\x02\x01" /**< id-ripemd160 OBJECT IDENTIFIER :: { iso(1) identified-organization(3) teletrust(36) algorithm(3) hashAlgorithm(2) ripemd160(1) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_DIGEST_ALG_SHA3_224 MBEDTLS_OID_NIST_ALG "\x02\x07" /**< id-sha3-224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-224(7) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_DIGEST_ALG_SHA3_256 MBEDTLS_OID_NIST_ALG "\x02\x08" /**< id-sha3-256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-256(8) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_DIGEST_ALG_SHA3_384 MBEDTLS_OID_NIST_ALG "\x02\x09" /**< id-sha3-384 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-384(9) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_DIGEST_ALG_SHA3_512 MBEDTLS_OID_NIST_ALG "\x02\x0a" /**< id-sha3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) sha3-512(10) } */
|
||||||
|
|
||||||
|
|
||||||
#define MBEDTLS_OID_HMAC_SHA1 MBEDTLS_OID_RSA_COMPANY "\x02\x07" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 7 } */
|
#define MBEDTLS_OID_HMAC_SHA1 MBEDTLS_OID_RSA_COMPANY "\x02\x07" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 7 } */
|
||||||
|
|
||||||
#define MBEDTLS_OID_HMAC_SHA224 MBEDTLS_OID_RSA_COMPANY "\x02\x08" /**< id-hmacWithSHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 8 } */
|
#define MBEDTLS_OID_HMAC_SHA224 MBEDTLS_OID_RSA_COMPANY "\x02\x08" /**< id-hmacWithSHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 8 } */
|
||||||
|
@ -280,6 +289,16 @@
|
||||||
|
|
||||||
#define MBEDTLS_OID_HMAC_SHA512 MBEDTLS_OID_RSA_COMPANY "\x02\x0B" /**< id-hmacWithSHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 11 } */
|
#define MBEDTLS_OID_HMAC_SHA512 MBEDTLS_OID_RSA_COMPANY "\x02\x0B" /**< id-hmacWithSHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 11 } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_HMAC_SHA3_224 MBEDTLS_OID_NIST_ALG "\x02\x0d" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-224(13) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_HMAC_SHA3_256 MBEDTLS_OID_NIST_ALG "\x02\x0e" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-256(14) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_HMAC_SHA3_384 MBEDTLS_OID_NIST_ALG "\x02\x0f" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-384(15) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_HMAC_SHA3_512 MBEDTLS_OID_NIST_ALG "\x02\x10" /**< id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashalgs(2) hmacWithSHA3-512(16) } */
|
||||||
|
|
||||||
|
#define MBEDTLS_OID_HMAC_RIPEMD160 MBEDTLS_OID_INTERNET "\x05\x05\x08\x01\x04" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= {iso(1) iso-identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) ipsec(8) isakmpOakley(1) hmacRIPEMD160(4)} */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Encryption algorithms
|
* Encryption algorithms
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -130,11 +130,22 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */
|
#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */
|
||||||
|
|
||||||
|
/* Enable certain documented defines only when generating doxygen to avoid
|
||||||
|
* an "unrecognized define" error. */
|
||||||
|
#if defined(__DOXYGEN__) && !defined(MBEDTLS_PLATFORM_STD_CALLOC)
|
||||||
|
#define MBEDTLS_PLATFORM_STD_CALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__DOXYGEN__) && !defined(MBEDTLS_PLATFORM_STD_FREE)
|
||||||
|
#define MBEDTLS_PLATFORM_STD_FREE
|
||||||
|
#endif
|
||||||
|
|
||||||
/** \} name SECTION: Module settings */
|
/** \} name SECTION: Module settings */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The function pointers for calloc and free.
|
* The function pointers for calloc and free.
|
||||||
|
* Please see MBEDTLS_PLATFORM_STD_CALLOC and MBEDTLS_PLATFORM_STD_FREE
|
||||||
|
* in mbedtls_config.h for more information about behaviour and requirements.
|
||||||
*/
|
*/
|
||||||
#if defined(MBEDTLS_PLATFORM_MEMORY)
|
#if defined(MBEDTLS_PLATFORM_MEMORY)
|
||||||
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \
|
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include "mbedtls/sha1.h"
|
#include "mbedtls/sha1.h"
|
||||||
#include "mbedtls/sha256.h"
|
#include "mbedtls/sha256.h"
|
||||||
#include "mbedtls/sha512.h"
|
#include "mbedtls/sha512.h"
|
||||||
|
#include "mbedtls/sha3.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) || \
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) || \
|
||||||
defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) || \
|
defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) || \
|
||||||
|
@ -52,7 +53,11 @@
|
||||||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) || \
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) || \
|
||||||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) || \
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) || \
|
||||||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) || \
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) || \
|
||||||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512)
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
#define MBEDTLS_PSA_BUILTIN_HASH
|
#define MBEDTLS_PSA_BUILTIN_HASH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -76,6 +81,12 @@ typedef struct {
|
||||||
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) || \
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) || \
|
||||||
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
|
||||||
mbedtls_sha512_context sha512;
|
mbedtls_sha512_context sha512;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
mbedtls_sha3_context sha3;
|
||||||
#endif
|
#endif
|
||||||
} MBEDTLS_PRIVATE(ctx);
|
} MBEDTLS_PRIVATE(ctx);
|
||||||
} mbedtls_psa_hash_operation_t;
|
} mbedtls_psa_hash_operation_t;
|
||||||
|
|
|
@ -87,12 +87,17 @@
|
||||||
#define PSA_WANT_ALG_SHA_256 1
|
#define PSA_WANT_ALG_SHA_256 1
|
||||||
#define PSA_WANT_ALG_SHA_384 1
|
#define PSA_WANT_ALG_SHA_384 1
|
||||||
#define PSA_WANT_ALG_SHA_512 1
|
#define PSA_WANT_ALG_SHA_512 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_224 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_256 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_384 1
|
||||||
|
#define PSA_WANT_ALG_SHA3_512 1
|
||||||
#define PSA_WANT_ALG_STREAM_CIPHER 1
|
#define PSA_WANT_ALG_STREAM_CIPHER 1
|
||||||
#define PSA_WANT_ALG_TLS12_PRF 1
|
#define PSA_WANT_ALG_TLS12_PRF 1
|
||||||
#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
|
#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
|
||||||
#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1
|
#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1
|
||||||
|
|
||||||
/* Note: when adding support, also adjust include/mbedtls/config_psa.h */
|
/* XTS is not yet supported via the PSA API in Mbed TLS.
|
||||||
|
* Note: when adding support, also adjust include/mbedtls/config_psa.h */
|
||||||
//#define PSA_WANT_ALG_XTS 1
|
//#define PSA_WANT_ALG_XTS 1
|
||||||
|
|
||||||
#define PSA_WANT_ECC_BRAINPOOL_P_R1_256 1
|
#define PSA_WANT_ECC_BRAINPOOL_P_R1_256 1
|
||||||
|
|
|
@ -125,28 +125,43 @@
|
||||||
* This macro expands to a compile-time constant integer. This value
|
* This macro expands to a compile-time constant integer. This value
|
||||||
* is the maximum size of a hash in bytes.
|
* is the maximum size of a hash in bytes.
|
||||||
*/
|
*/
|
||||||
/* Note: for HMAC-SHA-3, the block size is 144 bytes for HMAC-SHA3-226,
|
/* Note: for HMAC-SHA-3, the block size is 144 bytes for HMAC-SHA3-224,
|
||||||
* 136 bytes for HMAC-SHA3-256, 104 bytes for SHA3-384, 72 bytes for
|
* 136 bytes for HMAC-SHA3-256, 104 bytes for SHA3-384, 72 bytes for
|
||||||
* HMAC-SHA3-512. */
|
* HMAC-SHA3-512. */
|
||||||
/* Note: PSA_HASH_MAX_SIZE should be kept in sync with MBEDTLS_MD_MAX_SIZE,
|
/* Note: PSA_HASH_MAX_SIZE should be kept in sync with MBEDTLS_MD_MAX_SIZE,
|
||||||
* see the note on MBEDTLS_MD_MAX_SIZE for details. */
|
* see the note on MBEDTLS_MD_MAX_SIZE for details. */
|
||||||
#if defined(PSA_WANT_ALG_SHA_512)
|
#if defined(PSA_WANT_ALG_SHA3_224)
|
||||||
#define PSA_HASH_MAX_SIZE 64u
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 144u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA3_256)
|
||||||
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 136u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA_512)
|
||||||
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 128u
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 128u
|
||||||
#elif defined(PSA_WANT_ALG_SHA_384)
|
#elif defined(PSA_WANT_ALG_SHA_384)
|
||||||
#define PSA_HASH_MAX_SIZE 48u
|
|
||||||
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 128u
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 128u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA3_384)
|
||||||
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 104u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA3_512)
|
||||||
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 72u
|
||||||
#elif defined(PSA_WANT_ALG_SHA_256)
|
#elif defined(PSA_WANT_ALG_SHA_256)
|
||||||
#define PSA_HASH_MAX_SIZE 32u
|
|
||||||
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 64u
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 64u
|
||||||
#elif defined(PSA_WANT_ALG_SHA_224)
|
#elif defined(PSA_WANT_ALG_SHA_224)
|
||||||
#define PSA_HASH_MAX_SIZE 28u
|
|
||||||
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 64u
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 64u
|
||||||
#else /* SHA-1 or smaller */
|
#else /* SHA-1 or smaller */
|
||||||
#define PSA_HASH_MAX_SIZE 20u
|
|
||||||
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 64u
|
#define PSA_HMAC_MAX_HASH_BLOCK_SIZE 64u
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_SHA_512) || defined(PSA_WANT_ALG_SHA3_512)
|
||||||
|
#define PSA_HASH_MAX_SIZE 64u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA_384) || defined(PSA_WANT_ALG_SHA3_384)
|
||||||
|
#define PSA_HASH_MAX_SIZE 48u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA3_256)
|
||||||
|
#define PSA_HASH_MAX_SIZE 32u
|
||||||
|
#elif defined(PSA_WANT_ALG_SHA_224) || defined(PSA_WANT_ALG_SHA3_224)
|
||||||
|
#define PSA_HASH_MAX_SIZE 28u
|
||||||
|
#else /* SHA-1 or smaller */
|
||||||
|
#define PSA_HASH_MAX_SIZE 20u
|
||||||
|
#endif
|
||||||
|
|
||||||
/** \def PSA_MAC_MAX_SIZE
|
/** \def PSA_MAC_MAX_SIZE
|
||||||
*
|
*
|
||||||
* Maximum size of a MAC.
|
* Maximum size of a MAC.
|
||||||
|
|
|
@ -33,6 +33,36 @@
|
||||||
#include "mbedtls/platform.h"
|
#include "mbedtls/platform.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
#include "mbedtls/error.h"
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
|
#if defined(__aarch64__)
|
||||||
|
#if !defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
#error "MBEDTLS_AES_USE_HARDWARE_ONLY defined, but not all prerequisites"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__amd64__) || defined(__x86_64__) || \
|
||||||
|
((defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC))
|
||||||
|
#if !defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
#error "MBEDTLS_AES_USE_HARDWARE_ONLY defined, but not all prerequisites"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__i386__) || defined(_M_IX86)
|
||||||
|
#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY) && !defined(MBEDTLS_AESNI_C)
|
||||||
|
#error "MBEDTLS_AES_USE_HARDWARE_ONLY defined, but not all prerequisites"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_PADLOCK_C)
|
||||||
|
#if !defined(MBEDTLS_HAVE_ASM)
|
||||||
|
#error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
#error "MBEDTLS_AES_USE_HARDWARE_ONLY cannot be defined when " \
|
||||||
|
"MBEDTLS_PADLOCK_C is set"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_PADLOCK_C)
|
#if defined(MBEDTLS_PADLOCK_C)
|
||||||
#include "padlock.h"
|
#include "padlock.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -47,7 +77,7 @@
|
||||||
|
|
||||||
#if !defined(MBEDTLS_AES_ALT)
|
#if !defined(MBEDTLS_AES_ALT)
|
||||||
|
|
||||||
#if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86)
|
#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
|
||||||
static int aes_padlock_ace = -1;
|
static int aes_padlock_ace = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -542,7 +572,7 @@ void mbedtls_aes_xts_free(mbedtls_aes_xts_context *ctx)
|
||||||
* Note that the offset is in units of elements of buf, i.e. 32-bit words,
|
* Note that the offset is in units of elements of buf, i.e. 32-bit words,
|
||||||
* i.e. an offset of 1 means 4 bytes and so on.
|
* i.e. an offset of 1 means 4 bytes and so on.
|
||||||
*/
|
*/
|
||||||
#if (defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86)) || \
|
#if (defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)) || \
|
||||||
(defined(MBEDTLS_AESNI_C) && MBEDTLS_AESNI_HAVE_CODE == 2)
|
(defined(MBEDTLS_AESNI_C) && MBEDTLS_AESNI_HAVE_CODE == 2)
|
||||||
#define MAY_NEED_TO_ALIGN
|
#define MAY_NEED_TO_ALIGN
|
||||||
#endif
|
#endif
|
||||||
|
@ -554,7 +584,7 @@ static unsigned mbedtls_aes_rk_offset(uint32_t *buf)
|
||||||
#if defined(MAY_NEED_TO_ALIGN)
|
#if defined(MAY_NEED_TO_ALIGN)
|
||||||
int align_16_bytes = 0;
|
int align_16_bytes = 0;
|
||||||
|
|
||||||
#if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86)
|
#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
|
||||||
if (aes_padlock_ace == -1) {
|
if (aes_padlock_ace == -1) {
|
||||||
aes_padlock_ace = mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE);
|
aes_padlock_ace = mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE);
|
||||||
}
|
}
|
||||||
|
@ -595,7 +625,6 @@ static unsigned mbedtls_aes_rk_offset(uint32_t *buf)
|
||||||
int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
unsigned int keybits)
|
unsigned int keybits)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
|
||||||
uint32_t *RK;
|
uint32_t *RK;
|
||||||
|
|
||||||
switch (keybits) {
|
switch (keybits) {
|
||||||
|
@ -624,19 +653,20 @@ int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
if (mbedtls_aesce_has_support()) {
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
return mbedtls_aesce_setkey_enc((unsigned char *) RK, key, keybits);
|
return mbedtls_aesce_setkey_enc((unsigned char *) RK, key, keybits);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < (keybits >> 5); i++) {
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
for (unsigned int i = 0; i < (keybits >> 5); i++) {
|
||||||
RK[i] = MBEDTLS_GET_UINT32_LE(key, i << 2);
|
RK[i] = MBEDTLS_GET_UINT32_LE(key, i << 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (ctx->nr) {
|
switch (ctx->nr) {
|
||||||
case 10:
|
case 10:
|
||||||
|
|
||||||
for (i = 0; i < 10; i++, RK += 4) {
|
for (unsigned int i = 0; i < 10; i++, RK += 4) {
|
||||||
RK[4] = RK[0] ^ RCON[i] ^
|
RK[4] = RK[0] ^ RCON[i] ^
|
||||||
((uint32_t) FSb[MBEDTLS_BYTE_1(RK[3])]) ^
|
((uint32_t) FSb[MBEDTLS_BYTE_1(RK[3])]) ^
|
||||||
((uint32_t) FSb[MBEDTLS_BYTE_2(RK[3])] << 8) ^
|
((uint32_t) FSb[MBEDTLS_BYTE_2(RK[3])] << 8) ^
|
||||||
|
@ -652,7 +682,7 @@ int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
|
#if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
|
||||||
case 12:
|
case 12:
|
||||||
|
|
||||||
for (i = 0; i < 8; i++, RK += 6) {
|
for (unsigned int i = 0; i < 8; i++, RK += 6) {
|
||||||
RK[6] = RK[0] ^ RCON[i] ^
|
RK[6] = RK[0] ^ RCON[i] ^
|
||||||
((uint32_t) FSb[MBEDTLS_BYTE_1(RK[5])]) ^
|
((uint32_t) FSb[MBEDTLS_BYTE_1(RK[5])]) ^
|
||||||
((uint32_t) FSb[MBEDTLS_BYTE_2(RK[5])] << 8) ^
|
((uint32_t) FSb[MBEDTLS_BYTE_2(RK[5])] << 8) ^
|
||||||
|
@ -669,7 +699,7 @@ int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
|
|
||||||
for (i = 0; i < 7; i++, RK += 8) {
|
for (unsigned int i = 0; i < 7; i++, RK += 8) {
|
||||||
RK[8] = RK[0] ^ RCON[i] ^
|
RK[8] = RK[0] ^ RCON[i] ^
|
||||||
((uint32_t) FSb[MBEDTLS_BYTE_1(RK[7])]) ^
|
((uint32_t) FSb[MBEDTLS_BYTE_1(RK[7])]) ^
|
||||||
((uint32_t) FSb[MBEDTLS_BYTE_2(RK[7])] << 8) ^
|
((uint32_t) FSb[MBEDTLS_BYTE_2(RK[7])] << 8) ^
|
||||||
|
@ -695,6 +725,7 @@ int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
#endif /* !MBEDTLS_AES_USE_HARDWARE_ONLY */
|
||||||
}
|
}
|
||||||
#endif /* !MBEDTLS_AES_SETKEY_ENC_ALT */
|
#endif /* !MBEDTLS_AES_SETKEY_ENC_ALT */
|
||||||
|
|
||||||
|
@ -705,10 +736,13 @@ int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key,
|
int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
unsigned int keybits)
|
unsigned int keybits)
|
||||||
{
|
{
|
||||||
int i, j, ret;
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
uint32_t *SK;
|
||||||
|
#endif
|
||||||
|
int ret;
|
||||||
mbedtls_aes_context cty;
|
mbedtls_aes_context cty;
|
||||||
uint32_t *RK;
|
uint32_t *RK;
|
||||||
uint32_t *SK;
|
|
||||||
|
|
||||||
mbedtls_aes_init(&cty);
|
mbedtls_aes_init(&cty);
|
||||||
|
|
||||||
|
@ -731,7 +765,7 @@ int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
if (mbedtls_aesce_has_support()) {
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
mbedtls_aesce_inverse_key(
|
mbedtls_aesce_inverse_key(
|
||||||
(unsigned char *) RK,
|
(unsigned char *) RK,
|
||||||
(const unsigned char *) (cty.buf + cty.rk_offset),
|
(const unsigned char *) (cty.buf + cty.rk_offset),
|
||||||
|
@ -740,15 +774,16 @@ int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
SK = cty.buf + cty.rk_offset + cty.nr * 4;
|
SK = cty.buf + cty.rk_offset + cty.nr * 4;
|
||||||
|
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
|
SK -= 8;
|
||||||
for (i = ctx->nr - 1, SK -= 8; i > 0; i--, SK -= 8) {
|
for (int i = ctx->nr - 1; i > 0; i--, SK -= 8) {
|
||||||
for (j = 0; j < 4; j++, SK++) {
|
for (int j = 0; j < 4; j++, SK++) {
|
||||||
*RK++ = AES_RT0(FSb[MBEDTLS_BYTE_0(*SK)]) ^
|
*RK++ = AES_RT0(FSb[MBEDTLS_BYTE_0(*SK)]) ^
|
||||||
AES_RT1(FSb[MBEDTLS_BYTE_1(*SK)]) ^
|
AES_RT1(FSb[MBEDTLS_BYTE_1(*SK)]) ^
|
||||||
AES_RT2(FSb[MBEDTLS_BYTE_2(*SK)]) ^
|
AES_RT2(FSb[MBEDTLS_BYTE_2(*SK)]) ^
|
||||||
|
@ -760,7 +795,7 @@ int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key,
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
*RK++ = *SK++;
|
*RK++ = *SK++;
|
||||||
|
#endif /* !MBEDTLS_AES_USE_HARDWARE_ONLY */
|
||||||
exit:
|
exit:
|
||||||
mbedtls_aes_free(&cty);
|
mbedtls_aes_free(&cty);
|
||||||
|
|
||||||
|
@ -1057,22 +1092,25 @@ int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
if (mbedtls_aesce_has_support()) {
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
return mbedtls_aesce_crypt_ecb(ctx, mode, input, output);
|
return mbedtls_aesce_crypt_ecb(ctx, mode, input, output);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86)
|
#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
|
||||||
if (aes_padlock_ace > 0) {
|
if (aes_padlock_ace > 0) {
|
||||||
return mbedtls_padlock_xcryptecb(ctx, mode, input, output);
|
return mbedtls_padlock_xcryptecb(ctx, mode, input, output);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
if (mode == MBEDTLS_AES_ENCRYPT) {
|
if (mode == MBEDTLS_AES_ENCRYPT) {
|
||||||
return mbedtls_internal_aes_encrypt(ctx, input, output);
|
return mbedtls_internal_aes_encrypt(ctx, input, output);
|
||||||
} else {
|
} else {
|
||||||
return mbedtls_internal_aes_decrypt(ctx, input, output);
|
return mbedtls_internal_aes_decrypt(ctx, input, output);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
||||||
|
@ -1103,7 +1141,7 @@ int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx,
|
||||||
return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
|
return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86)
|
#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
|
||||||
if (aes_padlock_ace > 0) {
|
if (aes_padlock_ace > 0) {
|
||||||
if (mbedtls_padlock_xcryptcbc(ctx, mode, length, iv, input, output) == 0) {
|
if (mbedtls_padlock_xcryptcbc(ctx, mode, length, iv, input, output) == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1855,29 +1893,33 @@ int mbedtls_aes_self_test(int verbose)
|
||||||
#if defined(MBEDTLS_AES_ALT)
|
#if defined(MBEDTLS_AES_ALT)
|
||||||
mbedtls_printf(" AES note: alternative implementation.\n");
|
mbedtls_printf(" AES note: alternative implementation.\n");
|
||||||
#else /* MBEDTLS_AES_ALT */
|
#else /* MBEDTLS_AES_ALT */
|
||||||
#if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86)
|
|
||||||
if (mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE)) {
|
|
||||||
mbedtls_printf(" AES note: using VIA Padlock.\n");
|
|
||||||
} else
|
|
||||||
#endif
|
|
||||||
#if defined(MBEDTLS_AESNI_HAVE_CODE)
|
#if defined(MBEDTLS_AESNI_HAVE_CODE)
|
||||||
#if MBEDTLS_AESNI_HAVE_CODE == 1
|
#if MBEDTLS_AESNI_HAVE_CODE == 1
|
||||||
mbedtls_printf(" AES note: AESNI code present (assembly implementation).\n");
|
mbedtls_printf(" AES note: AESNI code present (assembly implementation).\n");
|
||||||
#elif MBEDTLS_AESNI_HAVE_CODE == 2
|
#elif MBEDTLS_AESNI_HAVE_CODE == 2
|
||||||
mbedtls_printf(" AES note: AESNI code present (intrinsics implementation).\n");
|
mbedtls_printf(" AES note: AESNI code present (intrinsics implementation).\n");
|
||||||
#else
|
#else
|
||||||
#error Unrecognised value for MBEDTLS_AESNI_HAVE_CODE
|
#error "Unrecognised value for MBEDTLS_AESNI_HAVE_CODE"
|
||||||
#endif
|
#endif
|
||||||
if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) {
|
if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) {
|
||||||
mbedtls_printf(" AES note: using AESNI.\n");
|
mbedtls_printf(" AES note: using AESNI.\n");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MBEDTLS_VIA_PADLOCK_HAVE_CODE)
|
||||||
|
if (mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE)) {
|
||||||
|
mbedtls_printf(" AES note: using VIA Padlock.\n");
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
if (mbedtls_aesce_has_support()) {
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
mbedtls_printf(" AES note: using AESCE.\n");
|
mbedtls_printf(" AES note: using AESCE.\n");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
mbedtls_printf(" AES note: built-in implementation.\n");
|
{
|
||||||
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
mbedtls_printf(" AES note: built-in implementation.\n");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
#endif /* MBEDTLS_AES_ALT */
|
#endif /* MBEDTLS_AES_ALT */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,25 +94,39 @@
|
||||||
#endif /* !(__ARM_FEATURE_CRYPTO || __ARM_FEATURE_AES) ||
|
#endif /* !(__ARM_FEATURE_CRYPTO || __ARM_FEATURE_AES) ||
|
||||||
MBEDTLS_ENABLE_ARM_CRYPTO_EXTENSIONS_COMPILER_FLAG */
|
MBEDTLS_ENABLE_ARM_CRYPTO_EXTENSIONS_COMPILER_FLAG */
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
|
||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <sys/auxv.h>
|
#include <sys/auxv.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
|
signed char mbedtls_aesce_has_support_result = -1;
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
/*
|
/*
|
||||||
* AES instruction support detection routine
|
* AES instruction support detection routine
|
||||||
*/
|
*/
|
||||||
int mbedtls_aesce_has_support(void)
|
int mbedtls_aesce_has_support_impl(void)
|
||||||
{
|
{
|
||||||
#if defined(__linux__)
|
/* To avoid many calls to getauxval, cache the result. This is
|
||||||
unsigned long auxval = getauxval(AT_HWCAP);
|
* thread-safe, because we store the result in a char so cannot
|
||||||
return (auxval & (HWCAP_ASIMD | HWCAP_AES)) ==
|
* be vulnerable to non-atomic updates.
|
||||||
(HWCAP_ASIMD | HWCAP_AES);
|
* It is possible that we could end up setting result more than
|
||||||
#else
|
* once, but that is harmless.
|
||||||
/* Assume AES instructions are supported. */
|
*/
|
||||||
return 1;
|
if (mbedtls_aesce_has_support_result == -1) {
|
||||||
#endif
|
unsigned long auxval = getauxval(AT_HWCAP);
|
||||||
|
if ((auxval & (HWCAP_ASIMD | HWCAP_AES)) ==
|
||||||
|
(HWCAP_ASIMD | HWCAP_AES)) {
|
||||||
|
mbedtls_aesce_has_support_result = 1;
|
||||||
|
} else {
|
||||||
|
mbedtls_aesce_has_support_result = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mbedtls_aesce_has_support_result;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY) */
|
||||||
|
|
||||||
/* Single round of AESCE encryption */
|
/* Single round of AESCE encryption */
|
||||||
#define AESCE_ENCRYPT_ROUND \
|
#define AESCE_ENCRYPT_ROUND \
|
||||||
|
|
|
@ -42,12 +42,29 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
|
|
||||||
|
extern signed char mbedtls_aesce_has_support_result;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Internal function to detect the crypto extension in CPUs.
|
* \brief Internal function to detect the crypto extension in CPUs.
|
||||||
*
|
*
|
||||||
* \return 1 if CPU has support for the feature, 0 otherwise
|
* \return 1 if CPU has support for the feature, 0 otherwise
|
||||||
*/
|
*/
|
||||||
int mbedtls_aesce_has_support(void);
|
int mbedtls_aesce_has_support_impl(void);
|
||||||
|
|
||||||
|
#define MBEDTLS_AESCE_HAS_SUPPORT() (mbedtls_aesce_has_support_result == -1 ? \
|
||||||
|
mbedtls_aesce_has_support_impl() : \
|
||||||
|
mbedtls_aesce_has_support_result)
|
||||||
|
|
||||||
|
#else /* defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY) */
|
||||||
|
|
||||||
|
/* If we are not on Linux, we can't detect support so assume that it's supported.
|
||||||
|
* Similarly, assume support if MBEDTLS_AES_USE_HARDWARE_ONLY is set.
|
||||||
|
*/
|
||||||
|
#define MBEDTLS_AESCE_HAS_SUPPORT() 1
|
||||||
|
|
||||||
|
#endif /* defined(__linux__) && !defined(MBEDTLS_AES_USE_HARDWARE_ONLY) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Internal AES-ECB block encryption and decryption
|
* \brief Internal AES-ECB block encryption and decryption
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
/*
|
/*
|
||||||
* AES-NI support detection routine
|
* AES-NI support detection routine
|
||||||
*/
|
*/
|
||||||
|
@ -70,6 +71,7 @@ int mbedtls_aesni_has_support(unsigned int what)
|
||||||
|
|
||||||
return (c & what) != 0;
|
return (c & what) != 0;
|
||||||
}
|
}
|
||||||
|
#endif /* !MBEDTLS_AES_USE_HARDWARE_ONLY */
|
||||||
|
|
||||||
#if MBEDTLS_AESNI_HAVE_CODE == 2
|
#if MBEDTLS_AESNI_HAVE_CODE == 2
|
||||||
|
|
||||||
|
|
|
@ -35,13 +35,20 @@
|
||||||
/* Can we do AESNI with inline assembly?
|
/* Can we do AESNI with inline assembly?
|
||||||
* (Only implemented with gas syntax, only for 64-bit.)
|
* (Only implemented with gas syntax, only for 64-bit.)
|
||||||
*/
|
*/
|
||||||
#if defined(MBEDTLS_HAVE_ASM) && defined(__GNUC__) && \
|
#if !defined(MBEDTLS_HAVE_X86_64) && \
|
||||||
(defined(__amd64__) || defined(__x86_64__)) && \
|
(defined(__amd64__) || defined(__x86_64__) || \
|
||||||
!defined(MBEDTLS_HAVE_X86_64)
|
defined(_M_X64) || defined(_M_AMD64)) && \
|
||||||
|
!defined(_M_ARM64EC)
|
||||||
#define MBEDTLS_HAVE_X86_64
|
#define MBEDTLS_HAVE_X86_64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESNI_C)
|
#if !defined(MBEDTLS_HAVE_X86) && \
|
||||||
|
(defined(__i386__) || defined(_M_IX86))
|
||||||
|
#define MBEDTLS_HAVE_X86
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_AESNI_C) && \
|
||||||
|
(defined(MBEDTLS_HAVE_X86_64) || defined(MBEDTLS_HAVE_X86))
|
||||||
|
|
||||||
/* Can we do AESNI with intrinsics?
|
/* Can we do AESNI with intrinsics?
|
||||||
* (Only implemented with certain compilers, only for certain targets.)
|
* (Only implemented with certain compilers, only for certain targets.)
|
||||||
|
@ -67,8 +74,13 @@
|
||||||
* In the long run, we will likely remove the assembly implementation. */
|
* In the long run, we will likely remove the assembly implementation. */
|
||||||
#if defined(MBEDTLS_AESNI_HAVE_INTRINSICS)
|
#if defined(MBEDTLS_AESNI_HAVE_INTRINSICS)
|
||||||
#define MBEDTLS_AESNI_HAVE_CODE 2 // via intrinsics
|
#define MBEDTLS_AESNI_HAVE_CODE 2 // via intrinsics
|
||||||
#elif defined(MBEDTLS_HAVE_X86_64)
|
#elif defined(MBEDTLS_HAVE_ASM) && \
|
||||||
|
defined(__GNUC__) && defined(MBEDTLS_HAVE_X86_64)
|
||||||
#define MBEDTLS_AESNI_HAVE_CODE 1 // via assembly
|
#define MBEDTLS_AESNI_HAVE_CODE 1 // via assembly
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
# error "Must use `-mpclmul -msse2 -maes` for MBEDTLS_AESNI_C"
|
||||||
|
#else
|
||||||
|
#error "MBEDTLS_AESNI_C defined, but neither intrinsics nor assembly available"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESNI_HAVE_CODE)
|
#if defined(MBEDTLS_AESNI_HAVE_CODE)
|
||||||
|
@ -88,7 +100,11 @@ extern "C" {
|
||||||
*
|
*
|
||||||
* \return 1 if CPU has support for the feature, 0 otherwise
|
* \return 1 if CPU has support for the feature, 0 otherwise
|
||||||
*/
|
*/
|
||||||
|
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
||||||
int mbedtls_aesni_has_support(unsigned int what);
|
int mbedtls_aesni_has_support(unsigned int what);
|
||||||
|
#else
|
||||||
|
#define mbedtls_aesni_has_support(what) 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Internal AES-NI AES-ECB block encryption and decryption
|
* \brief Internal AES-NI AES-ECB block encryption and decryption
|
||||||
|
|
|
@ -1826,8 +1826,9 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
|
||||||
* and squarings. Firstly, when multiplying by an element of the window
|
* and squarings. Firstly, when multiplying by an element of the window
|
||||||
* W[i], we do a constant-trace table lookup to obfuscate i. This leaves
|
* W[i], we do a constant-trace table lookup to obfuscate i. This leaves
|
||||||
* squarings as having a different memory access patterns from other
|
* squarings as having a different memory access patterns from other
|
||||||
* multiplications. So secondly, we put the accumulator X in the table as
|
* multiplications. So secondly, we put the accumulator in the table as
|
||||||
* well, and also do a constant-trace table lookup to multiply by X.
|
* well, and also do a constant-trace table lookup to multiply by the
|
||||||
|
* accumulator which is W[x_index].
|
||||||
*
|
*
|
||||||
* This way, all multiplications take the form of a lookup-and-multiply.
|
* This way, all multiplications take the form of a lookup-and-multiply.
|
||||||
* The number of lookup-and-multiply operations inside each iteration of
|
* The number of lookup-and-multiply operations inside each iteration of
|
||||||
|
@ -1840,19 +1841,16 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
|
||||||
* observe both memory accesses and branches. However, branch prediction
|
* observe both memory accesses and branches. However, branch prediction
|
||||||
* exploitation typically requires many traces of execution over the same
|
* exploitation typically requires many traces of execution over the same
|
||||||
* data, which is defeated by randomized blinding.
|
* data, which is defeated by randomized blinding.
|
||||||
*
|
|
||||||
* To achieve this, we make a copy of X and we use the table entry in each
|
|
||||||
* calculation from this point on.
|
|
||||||
*/
|
*/
|
||||||
const size_t x_index = 0;
|
const size_t x_index = 0;
|
||||||
mbedtls_mpi_init(&W[x_index]);
|
mbedtls_mpi_init(&W[x_index]);
|
||||||
mbedtls_mpi_copy(&W[x_index], X);
|
|
||||||
|
|
||||||
j = N->n + 1;
|
j = N->n + 1;
|
||||||
/* All W[i] and X must have at least N->n limbs for the mpi_montmul()
|
/* All W[i] including the accumulator must have at least N->n limbs for
|
||||||
* and mpi_montred() calls later. Here we ensure that W[1] and X are
|
* the mpi_montmul() and mpi_montred() calls later. Here we ensure that
|
||||||
* large enough, and later we'll grow other W[i] to the same length.
|
* W[1] and the accumulator W[x_index] are large enough. later we'll grow
|
||||||
* They must not be shrunk midway through this function!
|
* other W[i] to the same length. They must not be shrunk midway through
|
||||||
|
* this function!
|
||||||
*/
|
*/
|
||||||
MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[x_index], j));
|
MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[x_index], j));
|
||||||
MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[1], j));
|
MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[1], j));
|
||||||
|
@ -2033,7 +2031,7 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
|
||||||
/*
|
/*
|
||||||
* Load the result in the output variable.
|
* Load the result in the output variable.
|
||||||
*/
|
*/
|
||||||
mbedtls_mpi_copy(X, &W[x_index]);
|
MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, &W[x_index]));
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
|
||||||
|
@ -2311,29 +2309,30 @@ cleanup:
|
||||||
|
|
||||||
#if defined(MBEDTLS_GENPRIME)
|
#if defined(MBEDTLS_GENPRIME)
|
||||||
|
|
||||||
static const int small_prime[] =
|
/* Gaps between primes, starting at 3. https://oeis.org/A001223 */
|
||||||
{
|
static const unsigned char small_prime_gaps[] = {
|
||||||
3, 5, 7, 11, 13, 17, 19, 23,
|
2, 2, 4, 2, 4, 2, 4, 6,
|
||||||
29, 31, 37, 41, 43, 47, 53, 59,
|
2, 6, 4, 2, 4, 6, 6, 2,
|
||||||
61, 67, 71, 73, 79, 83, 89, 97,
|
6, 4, 2, 6, 4, 6, 8, 4,
|
||||||
101, 103, 107, 109, 113, 127, 131, 137,
|
2, 4, 2, 4, 14, 4, 6, 2,
|
||||||
139, 149, 151, 157, 163, 167, 173, 179,
|
10, 2, 6, 6, 4, 6, 6, 2,
|
||||||
181, 191, 193, 197, 199, 211, 223, 227,
|
10, 2, 4, 2, 12, 12, 4, 2,
|
||||||
229, 233, 239, 241, 251, 257, 263, 269,
|
4, 6, 2, 10, 6, 6, 6, 2,
|
||||||
271, 277, 281, 283, 293, 307, 311, 313,
|
6, 4, 2, 10, 14, 4, 2, 4,
|
||||||
317, 331, 337, 347, 349, 353, 359, 367,
|
14, 6, 10, 2, 4, 6, 8, 6,
|
||||||
373, 379, 383, 389, 397, 401, 409, 419,
|
6, 4, 6, 8, 4, 8, 10, 2,
|
||||||
421, 431, 433, 439, 443, 449, 457, 461,
|
10, 2, 6, 4, 6, 8, 4, 2,
|
||||||
463, 467, 479, 487, 491, 499, 503, 509,
|
4, 12, 8, 4, 8, 4, 6, 12,
|
||||||
521, 523, 541, 547, 557, 563, 569, 571,
|
2, 18, 6, 10, 6, 6, 2, 6,
|
||||||
577, 587, 593, 599, 601, 607, 613, 617,
|
10, 6, 6, 2, 6, 6, 4, 2,
|
||||||
619, 631, 641, 643, 647, 653, 659, 661,
|
12, 10, 2, 4, 6, 6, 2, 12,
|
||||||
673, 677, 683, 691, 701, 709, 719, 727,
|
4, 6, 8, 10, 8, 10, 8, 6,
|
||||||
733, 739, 743, 751, 757, 761, 769, 773,
|
6, 4, 8, 6, 4, 8, 4, 14,
|
||||||
787, 797, 809, 811, 821, 823, 827, 829,
|
10, 12, 2, 10, 2, 4, 2, 10,
|
||||||
839, 853, 857, 859, 863, 877, 881, 883,
|
14, 4, 2, 4, 14, 4, 2, 4,
|
||||||
887, 907, 911, 919, 929, 937, 941, 947,
|
20, 4, 8, 10, 8, 4, 6, 6,
|
||||||
953, 967, 971, 977, 983, 991, 997, -103
|
14, 4, 6, 6, 8, 6, /*reaches 997*/
|
||||||
|
0 /* the last entry is effectively unused */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2350,20 +2349,20 @@ static int mpi_check_small_factors(const mbedtls_mpi *X)
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_mpi_uint r;
|
mbedtls_mpi_uint r;
|
||||||
|
unsigned p = 3; /* The first odd prime */
|
||||||
|
|
||||||
if ((X->p[0] & 1) == 0) {
|
if ((X->p[0] & 1) == 0) {
|
||||||
return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
|
return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; small_prime[i] > 0; i++) {
|
for (i = 0; i < sizeof(small_prime_gaps); p += small_prime_gaps[i], i++) {
|
||||||
if (mbedtls_mpi_cmp_int(X, small_prime[i]) <= 0) {
|
MBEDTLS_MPI_CHK(mbedtls_mpi_mod_int(&r, X, p));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
MBEDTLS_MPI_CHK(mbedtls_mpi_mod_int(&r, X, small_prime[i]));
|
|
||||||
|
|
||||||
if (r == 0) {
|
if (r == 0) {
|
||||||
return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
|
if (mbedtls_mpi_cmp_int(X, p) == 0) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_BIGNUM_C)
|
#if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ECP_WITH_MPI_UINT)
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -403,4 +403,4 @@ cleanup:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* MBEDTLS_BIGNUM_C */
|
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ECP_WITH_MPI_UINT */
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_BIGNUM_C)
|
#if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ECP_WITH_MPI_UINT)
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -285,4 +285,4 @@ void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X,
|
||||||
(void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) borrow);
|
(void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) borrow);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* MBEDTLS_BIGNUM_C */
|
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ECP_WITH_MPI_UINT */
|
||||||
|
|
|
@ -288,7 +288,7 @@ static inline void mbedtls_xor_no_simd(unsigned char *r,
|
||||||
/* Normal case (64-bit pointers): use "r" as the constraint for pointer operands to asm */
|
/* Normal case (64-bit pointers): use "r" as the constraint for pointer operands to asm */
|
||||||
#define MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT "r"
|
#define MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT "r"
|
||||||
#else
|
#else
|
||||||
#error Unrecognised pointer size for aarch64
|
#error "Unrecognised pointer size for aarch64"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ static inline uint32_t mbedtls_get_unaligned_volatile_uint32(volatile const unsi
|
||||||
#elif defined(MBEDTLS_CT_AARCH64_ASM)
|
#elif defined(MBEDTLS_CT_AARCH64_ASM)
|
||||||
asm volatile ("ldr %w0, [%1]" : "=r" (r) : MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT(p) :);
|
asm volatile ("ldr %w0, [%1]" : "=r" (r) : MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT(p) :);
|
||||||
#else
|
#else
|
||||||
#error No assembly defined for mbedtls_get_unaligned_volatile_uint32
|
#error "No assembly defined for mbedtls_get_unaligned_volatile_uint32"
|
||||||
#endif
|
#endif
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -150,8 +150,13 @@ void mbedtls_ct_memcpy_if(mbedtls_ct_condition_t condition,
|
||||||
const unsigned char *src2,
|
const unsigned char *src2,
|
||||||
size_t len)
|
size_t len)
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_CT_SIZE_64)
|
||||||
|
const uint64_t mask = (uint64_t) condition;
|
||||||
|
const uint64_t not_mask = (uint64_t) ~mbedtls_ct_compiler_opaque(condition);
|
||||||
|
#else
|
||||||
const uint32_t mask = (uint32_t) condition;
|
const uint32_t mask = (uint32_t) condition;
|
||||||
const uint32_t not_mask = (uint32_t) ~mbedtls_ct_compiler_opaque(condition);
|
const uint32_t not_mask = (uint32_t) ~mbedtls_ct_compiler_opaque(condition);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If src2 is NULL, setup src2 so that we read from the destination address.
|
/* If src2 is NULL, setup src2 so that we read from the destination address.
|
||||||
*
|
*
|
||||||
|
@ -165,11 +170,19 @@ void mbedtls_ct_memcpy_if(mbedtls_ct_condition_t condition,
|
||||||
/* dest[i] = c1 == c2 ? src[i] : dest[i] */
|
/* dest[i] = c1 == c2 ? src[i] : dest[i] */
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)
|
#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)
|
||||||
|
#if defined(MBEDTLS_CT_SIZE_64)
|
||||||
|
for (; (i + 8) <= len; i += 8) {
|
||||||
|
uint64_t a = mbedtls_get_unaligned_uint64(src1 + i) & mask;
|
||||||
|
uint64_t b = mbedtls_get_unaligned_uint64(src2 + i) & not_mask;
|
||||||
|
mbedtls_put_unaligned_uint64(dest + i, a | b);
|
||||||
|
}
|
||||||
|
#else
|
||||||
for (; (i + 4) <= len; i += 4) {
|
for (; (i + 4) <= len; i += 4) {
|
||||||
uint32_t a = mbedtls_get_unaligned_uint32(src1 + i) & mask;
|
uint32_t a = mbedtls_get_unaligned_uint32(src1 + i) & mask;
|
||||||
uint32_t b = mbedtls_get_unaligned_uint32(src2 + i) & not_mask;
|
uint32_t b = mbedtls_get_unaligned_uint32(src2 + i) & not_mask;
|
||||||
mbedtls_put_unaligned_uint32(dest + i, a | b);
|
mbedtls_put_unaligned_uint32(dest + i, a | b);
|
||||||
}
|
}
|
||||||
|
#endif /* defined(MBEDTLS_CT_SIZE_64) */
|
||||||
#endif /* MBEDTLS_EFFICIENT_UNALIGNED_ACCESS */
|
#endif /* MBEDTLS_EFFICIENT_UNALIGNED_ACCESS */
|
||||||
for (; i < len; i++) {
|
for (; i < len; i++) {
|
||||||
dest[i] = (src1[i] & mask) | (src2[i] & not_mask);
|
dest[i] = (src1[i] & mask) | (src2[i] & not_mask);
|
||||||
|
|
|
@ -48,8 +48,14 @@
|
||||||
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Disable asm under Memsan because it confuses Memsan and generates false errors */
|
/* Disable asm under Memsan because it confuses Memsan and generates false errors.
|
||||||
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN)
|
*
|
||||||
|
* We also disable under Valgrind by default, because it's more useful
|
||||||
|
* for Valgrind to test the plain C implementation. MBEDTLS_TEST_CONSTANT_FLOW_ASM //no-check-names
|
||||||
|
* may be set to permit building asm under Valgrind.
|
||||||
|
*/
|
||||||
|
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) || \
|
||||||
|
(defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) && !defined(MBEDTLS_TEST_CONSTANT_FLOW_ASM)) //no-check-names
|
||||||
#define MBEDTLS_CT_NO_ASM
|
#define MBEDTLS_CT_NO_ASM
|
||||||
#elif defined(__has_feature)
|
#elif defined(__has_feature)
|
||||||
#if __has_feature(memory_sanitizer)
|
#if __has_feature(memory_sanitizer)
|
||||||
|
@ -109,6 +115,28 @@ static inline mbedtls_ct_uint_t mbedtls_ct_compiler_opaque(mbedtls_ct_uint_t x)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Selecting unified syntax is needed for gcc, and harmless on clang.
|
||||||
|
*
|
||||||
|
* This is needed because on Thumb 1, condition flags are always set, so
|
||||||
|
* e.g. "negs" is supported but "neg" is not (on Thumb 2, both exist).
|
||||||
|
*
|
||||||
|
* Under Thumb 1 unified syntax, only the "negs" form is accepted, and
|
||||||
|
* under divided syntax, only the "neg" form is accepted. clang only
|
||||||
|
* supports unified syntax.
|
||||||
|
*
|
||||||
|
* On Thumb 2 and Arm, both compilers are happy with the "s" suffix,
|
||||||
|
* although we don't actually care about setting the flags.
|
||||||
|
*
|
||||||
|
* For gcc, restore divided syntax afterwards - otherwise old versions of gcc
|
||||||
|
* seem to apply unified syntax globally, which breaks other asm code.
|
||||||
|
*/
|
||||||
|
#if !defined(__clang__)
|
||||||
|
#define RESTORE_ASM_SYNTAX ".syntax divided \n\t"
|
||||||
|
#else
|
||||||
|
#define RESTORE_ASM_SYNTAX
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Convert a number into a condition in constant time. */
|
/* Convert a number into a condition in constant time. */
|
||||||
static inline mbedtls_ct_condition_t mbedtls_ct_bool(mbedtls_ct_uint_t x)
|
static inline mbedtls_ct_condition_t mbedtls_ct_bool(mbedtls_ct_uint_t x)
|
||||||
{
|
{
|
||||||
|
@ -120,6 +148,34 @@ static inline mbedtls_ct_condition_t mbedtls_ct_bool(mbedtls_ct_uint_t x)
|
||||||
* Otherwise, we define a plain C fallback which (in May 2023) does not get optimised into
|
* Otherwise, we define a plain C fallback which (in May 2023) does not get optimised into
|
||||||
* conditional instructions or branches by trunk clang, gcc, or MSVC v19.
|
* conditional instructions or branches by trunk clang, gcc, or MSVC v19.
|
||||||
*/
|
*/
|
||||||
|
#if defined(MBEDTLS_CT_AARCH64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
|
||||||
|
mbedtls_ct_uint_t s;
|
||||||
|
asm volatile ("neg %x[s], %x[x] \n\t"
|
||||||
|
"orr %x[x], %x[s], %x[x] \n\t"
|
||||||
|
"asr %x[x], %x[x], 63"
|
||||||
|
:
|
||||||
|
[s] "=&r" (s),
|
||||||
|
[x] "+&r" (x)
|
||||||
|
:
|
||||||
|
:
|
||||||
|
);
|
||||||
|
return (mbedtls_ct_condition_t) x;
|
||||||
|
#elif defined(MBEDTLS_CT_ARM_ASM) && defined(MBEDTLS_CT_SIZE_32)
|
||||||
|
uint32_t s;
|
||||||
|
asm volatile (".syntax unified \n\t"
|
||||||
|
"negs %[s], %[x] \n\t"
|
||||||
|
"orrs %[x], %[x], %[s] \n\t"
|
||||||
|
"asrs %[x], %[x], #31 \n\t"
|
||||||
|
RESTORE_ASM_SYNTAX
|
||||||
|
:
|
||||||
|
[s] "=&l" (s),
|
||||||
|
[x] "+&l" (x)
|
||||||
|
:
|
||||||
|
:
|
||||||
|
"cc" /* clobbers flag bits */
|
||||||
|
);
|
||||||
|
return (mbedtls_ct_condition_t) x;
|
||||||
|
#else
|
||||||
const mbedtls_ct_uint_t xo = mbedtls_ct_compiler_opaque(x);
|
const mbedtls_ct_uint_t xo = mbedtls_ct_compiler_opaque(x);
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
/* MSVC has a warning about unary minus on unsigned, but this is
|
/* MSVC has a warning about unary minus on unsigned, but this is
|
||||||
|
@ -127,24 +183,98 @@ static inline mbedtls_ct_condition_t mbedtls_ct_bool(mbedtls_ct_uint_t x)
|
||||||
#pragma warning( push )
|
#pragma warning( push )
|
||||||
#pragma warning( disable : 4146 )
|
#pragma warning( disable : 4146 )
|
||||||
#endif
|
#endif
|
||||||
return (mbedtls_ct_condition_t) (((mbedtls_ct_int_t) ((-xo) | -(xo >> 1))) >>
|
// y is negative (i.e., top bit set) iff x is non-zero
|
||||||
(MBEDTLS_CT_SIZE - 1));
|
mbedtls_ct_int_t y = (-xo) | -(xo >> 1);
|
||||||
|
|
||||||
|
// extract only the sign bit of y so that y == 1 (if x is non-zero) or 0 (if x is zero)
|
||||||
|
y = (((mbedtls_ct_uint_t) y) >> (MBEDTLS_CT_SIZE - 1));
|
||||||
|
|
||||||
|
// -y has all bits set (if x is non-zero), or all bits clear (if x is zero)
|
||||||
|
return (mbedtls_ct_condition_t) (-y);
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#pragma warning( pop )
|
#pragma warning( pop )
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline mbedtls_ct_uint_t mbedtls_ct_if(mbedtls_ct_condition_t condition,
|
static inline mbedtls_ct_uint_t mbedtls_ct_if(mbedtls_ct_condition_t condition,
|
||||||
mbedtls_ct_uint_t if1,
|
mbedtls_ct_uint_t if1,
|
||||||
mbedtls_ct_uint_t if0)
|
mbedtls_ct_uint_t if0)
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_CT_AARCH64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
|
||||||
|
asm volatile ("and %x[if1], %x[if1], %x[condition] \n\t"
|
||||||
|
"mvn %x[condition], %x[condition] \n\t"
|
||||||
|
"and %x[condition], %x[condition], %x[if0] \n\t"
|
||||||
|
"orr %x[condition], %x[if1], %x[condition]"
|
||||||
|
:
|
||||||
|
[condition] "+&r" (condition),
|
||||||
|
[if1] "+&r" (if1)
|
||||||
|
:
|
||||||
|
[if0] "r" (if0)
|
||||||
|
:
|
||||||
|
);
|
||||||
|
return (mbedtls_ct_uint_t) condition;
|
||||||
|
#elif defined(MBEDTLS_CT_ARM_ASM) && defined(MBEDTLS_CT_SIZE_32)
|
||||||
|
asm volatile (".syntax unified \n\t"
|
||||||
|
"ands %[if1], %[if1], %[condition] \n\t"
|
||||||
|
"mvns %[condition], %[condition] \n\t"
|
||||||
|
"ands %[condition], %[condition], %[if0] \n\t"
|
||||||
|
"orrs %[condition], %[if1], %[condition] \n\t"
|
||||||
|
RESTORE_ASM_SYNTAX
|
||||||
|
:
|
||||||
|
[condition] "+&l" (condition),
|
||||||
|
[if1] "+&l" (if1)
|
||||||
|
:
|
||||||
|
[if0] "l" (if0)
|
||||||
|
:
|
||||||
|
"cc"
|
||||||
|
);
|
||||||
|
return (mbedtls_ct_uint_t) condition;
|
||||||
|
#else
|
||||||
mbedtls_ct_condition_t not_cond =
|
mbedtls_ct_condition_t not_cond =
|
||||||
(mbedtls_ct_condition_t) (~mbedtls_ct_compiler_opaque(condition));
|
(mbedtls_ct_condition_t) (~mbedtls_ct_compiler_opaque(condition));
|
||||||
return (mbedtls_ct_uint_t) ((condition & if1) | (not_cond & if0));
|
return (mbedtls_ct_uint_t) ((condition & if1) | (not_cond & if0));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline mbedtls_ct_condition_t mbedtls_ct_uint_lt(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)
|
static inline mbedtls_ct_condition_t mbedtls_ct_uint_lt(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_CT_AARCH64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
|
||||||
|
uint64_t s1;
|
||||||
|
asm volatile ("eor %x[s1], %x[y], %x[x] \n\t"
|
||||||
|
"sub %x[x], %x[x], %x[y] \n\t"
|
||||||
|
"bic %x[x], %x[x], %x[s1] \n\t"
|
||||||
|
"and %x[s1], %x[s1], %x[y] \n\t"
|
||||||
|
"orr %x[s1], %x[x], %x[s1] \n\t"
|
||||||
|
"asr %x[x], %x[s1], 63"
|
||||||
|
: [s1] "=&r" (s1), [x] "+&r" (x)
|
||||||
|
: [y] "r" (y)
|
||||||
|
:
|
||||||
|
);
|
||||||
|
return (mbedtls_ct_condition_t) x;
|
||||||
|
#elif defined(MBEDTLS_CT_ARM_ASM) && defined(MBEDTLS_CT_SIZE_32)
|
||||||
|
uint32_t s1;
|
||||||
|
asm volatile (
|
||||||
|
".syntax unified \n\t"
|
||||||
|
#if defined(__thumb__) && !defined(__thumb2__)
|
||||||
|
"movs %[s1], %[x] \n\t"
|
||||||
|
"eors %[s1], %[s1], %[y] \n\t"
|
||||||
|
#else
|
||||||
|
"eors %[s1], %[x], %[y] \n\t"
|
||||||
|
#endif
|
||||||
|
"subs %[x], %[x], %[y] \n\t"
|
||||||
|
"bics %[x], %[x], %[s1] \n\t"
|
||||||
|
"ands %[y], %[s1], %[y] \n\t"
|
||||||
|
"orrs %[x], %[x], %[y] \n\t"
|
||||||
|
"asrs %[x], %[x], #31 \n\t"
|
||||||
|
RESTORE_ASM_SYNTAX
|
||||||
|
: [s1] "=&l" (s1), [x] "+&l" (x), [y] "+&l" (y)
|
||||||
|
:
|
||||||
|
:
|
||||||
|
"cc"
|
||||||
|
);
|
||||||
|
return (mbedtls_ct_condition_t) x;
|
||||||
|
#else
|
||||||
/* Ensure that the compiler cannot optimise the following operations over x and y,
|
/* Ensure that the compiler cannot optimise the following operations over x and y,
|
||||||
* even if it knows the value of x and y.
|
* even if it knows the value of x and y.
|
||||||
*/
|
*/
|
||||||
|
@ -173,6 +303,7 @@ static inline mbedtls_ct_condition_t mbedtls_ct_uint_lt(mbedtls_ct_uint_t x, mbe
|
||||||
|
|
||||||
// Convert to a condition (i.e., all bits set iff non-zero)
|
// Convert to a condition (i.e., all bits set iff non-zero)
|
||||||
return mbedtls_ct_bool(ret);
|
return mbedtls_ct_bool(ret);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline mbedtls_ct_condition_t mbedtls_ct_uint_ne(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)
|
static inline mbedtls_ct_condition_t mbedtls_ct_uint_ne(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)
|
||||||
|
@ -189,8 +320,8 @@ static inline unsigned char mbedtls_ct_uchar_in_range_if(unsigned char low,
|
||||||
unsigned char c,
|
unsigned char c,
|
||||||
unsigned char t)
|
unsigned char t)
|
||||||
{
|
{
|
||||||
const unsigned char co = (const unsigned char) mbedtls_ct_compiler_opaque(c);
|
const unsigned char co = (unsigned char) mbedtls_ct_compiler_opaque(c);
|
||||||
const unsigned char to = (const unsigned char) mbedtls_ct_compiler_opaque(t);
|
const unsigned char to = (unsigned char) mbedtls_ct_compiler_opaque(t);
|
||||||
|
|
||||||
/* low_mask is: 0 if low <= c, 0x...ff if low > c */
|
/* low_mask is: 0 if low <= c, 0x...ff if low > c */
|
||||||
unsigned low_mask = ((unsigned) co - low) >> 8;
|
unsigned low_mask = ((unsigned) co - low) >> 8;
|
||||||
|
|
|
@ -85,12 +85,14 @@ typedef ptrdiff_t mbedtls_ct_int_t;
|
||||||
typedef uint64_t mbedtls_ct_condition_t;
|
typedef uint64_t mbedtls_ct_condition_t;
|
||||||
typedef uint64_t mbedtls_ct_uint_t;
|
typedef uint64_t mbedtls_ct_uint_t;
|
||||||
typedef int64_t mbedtls_ct_int_t;
|
typedef int64_t mbedtls_ct_int_t;
|
||||||
|
#define MBEDTLS_CT_SIZE_64
|
||||||
#define MBEDTLS_CT_TRUE ((mbedtls_ct_condition_t) mbedtls_ct_compiler_opaque(UINT64_MAX))
|
#define MBEDTLS_CT_TRUE ((mbedtls_ct_condition_t) mbedtls_ct_compiler_opaque(UINT64_MAX))
|
||||||
#else
|
#else
|
||||||
/* Pointer size <= 32-bit, and no 64-bit MPIs */
|
/* Pointer size <= 32-bit, and no 64-bit MPIs */
|
||||||
typedef uint32_t mbedtls_ct_condition_t;
|
typedef uint32_t mbedtls_ct_condition_t;
|
||||||
typedef uint32_t mbedtls_ct_uint_t;
|
typedef uint32_t mbedtls_ct_uint_t;
|
||||||
typedef int32_t mbedtls_ct_int_t;
|
typedef int32_t mbedtls_ct_int_t;
|
||||||
|
#define MBEDTLS_CT_SIZE_32
|
||||||
#define MBEDTLS_CT_TRUE ((mbedtls_ct_condition_t) mbedtls_ct_compiler_opaque(UINT32_MAX))
|
#define MBEDTLS_CT_TRUE ((mbedtls_ct_condition_t) mbedtls_ct_compiler_opaque(UINT32_MAX))
|
||||||
#endif
|
#endif
|
||||||
#define MBEDTLS_CT_FALSE ((mbedtls_ct_condition_t) mbedtls_ct_compiler_opaque(0))
|
#define MBEDTLS_CT_FALSE ((mbedtls_ct_condition_t) mbedtls_ct_compiler_opaque(0))
|
||||||
|
|
|
@ -373,7 +373,7 @@ modn:
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
if (rs_ctx != NULL && rs_ctx->sig != NULL) {
|
if (rs_ctx != NULL && rs_ctx->sig != NULL) {
|
||||||
mbedtls_mpi_copy(r, pr);
|
MBEDTLS_MPI_CHK(mbedtls_mpi_copy(r, pr));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -447,7 +447,7 @@ int mbedtls_ecdsa_sign_det_restartable(mbedtls_ecp_group *grp,
|
||||||
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(d, data, grp_len));
|
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(d, data, grp_len));
|
||||||
MBEDTLS_MPI_CHK(derive_mpi(grp, &h, buf, blen));
|
MBEDTLS_MPI_CHK(derive_mpi(grp, &h, buf, blen));
|
||||||
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&h, data + grp_len, grp_len));
|
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&h, data + grp_len, grp_len));
|
||||||
mbedtls_hmac_drbg_seed_buf(p_rng, md_info, data, 2 * grp_len);
|
MBEDTLS_MPI_CHK(mbedtls_hmac_drbg_seed_buf(p_rng, md_info, data, 2 * grp_len));
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
if (rs_ctx != NULL && rs_ctx->det != NULL) {
|
if (rs_ctx != NULL && rs_ctx->det != NULL) {
|
||||||
|
|
|
@ -75,7 +75,7 @@ int mbedtls_platform_entropy_poll(void *data, unsigned char *output, size_t len,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else /* !_WIN32_WINNT_WINXP */
|
#else /* !_WIN32_WINNT_WINXP */
|
||||||
#error Entropy not available before Windows XP, use MBEDTLS_NO_PLATFORM_ENTROPY
|
#error "Entropy not available before Windows XP, use MBEDTLS_NO_PLATFORM_ENTROPY"
|
||||||
#endif /* !_WIN32_WINNT_WINXP */
|
#endif /* !_WIN32_WINNT_WINXP */
|
||||||
#else /* _WIN32 && !EFIX64 && !EFI32 */
|
#else /* _WIN32 && !EFIX64 && !EFI32 */
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ static int gcm_gen_table(mbedtls_gcm_context *ctx)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
if (mbedtls_aesce_has_support()) {
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -209,7 +209,7 @@ static void gcm_mult(mbedtls_gcm_context *ctx, const unsigned char x[16],
|
||||||
#endif /* MBEDTLS_AESNI_HAVE_CODE */
|
#endif /* MBEDTLS_AESNI_HAVE_CODE */
|
||||||
|
|
||||||
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
if (mbedtls_aesce_has_support()) {
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
unsigned char h[16];
|
unsigned char h[16];
|
||||||
|
|
||||||
/* mbedtls_aesce_gcm_mult needs big-endian input */
|
/* mbedtls_aesce_gcm_mult needs big-endian input */
|
||||||
|
@ -884,6 +884,13 @@ int mbedtls_gcm_self_test(int verbose)
|
||||||
mbedtls_printf(" GCM note: using AESNI.\n");
|
mbedtls_printf(" GCM note: using AESNI.\n");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_AESCE_C) && defined(MBEDTLS_HAVE_ARM64)
|
||||||
|
if (MBEDTLS_AESCE_HAS_SUPPORT()) {
|
||||||
|
mbedtls_printf(" GCM note: using AESCE.\n");
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
|
||||||
mbedtls_printf(" GCM note: built-in implementation.\n");
|
mbedtls_printf(" GCM note: built-in implementation.\n");
|
||||||
#endif /* MBEDTLS_GCM_ALT */
|
#endif /* MBEDTLS_GCM_ALT */
|
||||||
}
|
}
|
||||||
|
|
16
library/md.c
16
library/md.c
|
@ -231,6 +231,22 @@ static psa_algorithm_t psa_alg_of_md(const mbedtls_md_info_t *info)
|
||||||
#if defined(MBEDTLS_MD_SHA512_VIA_PSA)
|
#if defined(MBEDTLS_MD_SHA512_VIA_PSA)
|
||||||
case MBEDTLS_MD_SHA512:
|
case MBEDTLS_MD_SHA512:
|
||||||
return PSA_ALG_SHA_512;
|
return PSA_ALG_SHA_512;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_SHA3_224_VIA_PSA)
|
||||||
|
case MBEDTLS_MD_SHA3_224:
|
||||||
|
return PSA_ALG_SHA3_224;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_SHA3_256_VIA_PSA)
|
||||||
|
case MBEDTLS_MD_SHA3_256:
|
||||||
|
return PSA_ALG_SHA3_256;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_SHA3_384_VIA_PSA)
|
||||||
|
case MBEDTLS_MD_SHA3_384:
|
||||||
|
return PSA_ALG_SHA3_384;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_SHA3_512_VIA_PSA)
|
||||||
|
case MBEDTLS_MD_SHA3_512:
|
||||||
|
return PSA_ALG_SHA3_512;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return PSA_ALG_NONE;
|
return PSA_ALG_NONE;
|
||||||
|
|
|
@ -760,6 +760,30 @@ static const oid_md_alg_t oid_md_alg[] =
|
||||||
OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"),
|
OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"),
|
||||||
MBEDTLS_MD_RIPEMD160,
|
MBEDTLS_MD_RIPEMD160,
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_224)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_224, "id-sha3-224", "SHA-3-224"),
|
||||||
|
MBEDTLS_MD_SHA3_224,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_256)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_256, "id-sha3-256", "SHA-3-256"),
|
||||||
|
MBEDTLS_MD_SHA3_256,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_384)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_384, "id-sha3-384", "SHA-3-384"),
|
||||||
|
MBEDTLS_MD_SHA3_384,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_512)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_512, "id-sha3-512", "SHA-3-512"),
|
||||||
|
MBEDTLS_MD_SHA3_512,
|
||||||
|
},
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
NULL_OID_DESCRIPTOR,
|
NULL_OID_DESCRIPTOR,
|
||||||
|
@ -796,7 +820,7 @@ static const oid_md_hmac_t oid_md_hmac[] =
|
||||||
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA224, "hmacSHA224", "HMAC-SHA-224"),
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA224, "hmacSHA224", "HMAC-SHA-224"),
|
||||||
MBEDTLS_MD_SHA224,
|
MBEDTLS_MD_SHA224,
|
||||||
},
|
},
|
||||||
#endif
|
#endif /* MBEDTLS_MD_CAN_SHA224 */
|
||||||
#if defined(MBEDTLS_MD_CAN_SHA256)
|
#if defined(MBEDTLS_MD_CAN_SHA256)
|
||||||
{
|
{
|
||||||
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA256, "hmacSHA256", "HMAC-SHA-256"),
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA256, "hmacSHA256", "HMAC-SHA-256"),
|
||||||
|
@ -815,6 +839,36 @@ static const oid_md_hmac_t oid_md_hmac[] =
|
||||||
MBEDTLS_MD_SHA512,
|
MBEDTLS_MD_SHA512,
|
||||||
},
|
},
|
||||||
#endif /* MBEDTLS_MD_CAN_SHA512 */
|
#endif /* MBEDTLS_MD_CAN_SHA512 */
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_224)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_224, "hmacSHA3-224", "HMAC-SHA3-224"),
|
||||||
|
MBEDTLS_MD_SHA3_224,
|
||||||
|
},
|
||||||
|
#endif /* MBEDTLS_MD_CAN_SHA3_224 */
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_256)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_256, "hmacSHA3-256", "HMAC-SHA3-256"),
|
||||||
|
MBEDTLS_MD_SHA3_256,
|
||||||
|
},
|
||||||
|
#endif /* MBEDTLS_MD_CAN_SHA3_256 */
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_384)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_384, "hmacSHA3-384", "HMAC-SHA3-384"),
|
||||||
|
MBEDTLS_MD_SHA3_384,
|
||||||
|
},
|
||||||
|
#endif /* MBEDTLS_MD_CAN_SHA3_384 */
|
||||||
|
#if defined(MBEDTLS_MD_CAN_SHA3_512)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_512, "hmacSHA3-512", "HMAC-SHA3-512"),
|
||||||
|
MBEDTLS_MD_SHA3_512,
|
||||||
|
},
|
||||||
|
#endif /* MBEDTLS_MD_CAN_SHA3_512 */
|
||||||
|
#if defined(MBEDTLS_MD_CAN_RIPEMD160)
|
||||||
|
{
|
||||||
|
OID_DESCRIPTOR(MBEDTLS_OID_HMAC_RIPEMD160, "hmacRIPEMD160", "HMAC-RIPEMD160"),
|
||||||
|
MBEDTLS_MD_RIPEMD160,
|
||||||
|
},
|
||||||
|
#endif /* MBEDTLS_MD_CAN_RIPEMD160 */
|
||||||
{
|
{
|
||||||
NULL_OID_DESCRIPTOR,
|
NULL_OID_DESCRIPTOR,
|
||||||
MBEDTLS_MD_NONE,
|
MBEDTLS_MD_NONE,
|
||||||
|
|
|
@ -42,6 +42,8 @@
|
||||||
#if defined(MBEDTLS_HAVE_ASM) && defined(__GNUC__) && defined(__i386__) && \
|
#if defined(MBEDTLS_HAVE_ASM) && defined(__GNUC__) && defined(__i386__) && \
|
||||||
!defined(MBEDTLS_HAVE_ASAN)
|
!defined(MBEDTLS_HAVE_ASAN)
|
||||||
|
|
||||||
|
#define MBEDTLS_VIA_PADLOCK_HAVE_CODE
|
||||||
|
|
||||||
#ifndef MBEDTLS_HAVE_X86
|
#ifndef MBEDTLS_HAVE_X86
|
||||||
#define MBEDTLS_HAVE_X86
|
#define MBEDTLS_HAVE_X86
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -73,6 +73,25 @@ psa_status_t mbedtls_psa_hash_abort(
|
||||||
case PSA_ALG_SHA_512:
|
case PSA_ALG_SHA_512:
|
||||||
mbedtls_sha512_free(&operation->ctx.sha512);
|
mbedtls_sha512_free(&operation->ctx.sha512);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
|
||||||
|
case PSA_ALG_SHA3_224:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
|
||||||
|
case PSA_ALG_SHA3_256:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
|
||||||
|
case PSA_ALG_SHA3_384:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
case PSA_ALG_SHA3_512:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
mbedtls_sha3_free(&operation->ctx.sha3);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return PSA_ERROR_BAD_STATE;
|
return PSA_ERROR_BAD_STATE;
|
||||||
|
@ -134,6 +153,30 @@ psa_status_t mbedtls_psa_hash_setup(
|
||||||
mbedtls_sha512_init(&operation->ctx.sha512);
|
mbedtls_sha512_init(&operation->ctx.sha512);
|
||||||
ret = mbedtls_sha512_starts(&operation->ctx.sha512, 0);
|
ret = mbedtls_sha512_starts(&operation->ctx.sha512, 0);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
|
||||||
|
case PSA_ALG_SHA3_224:
|
||||||
|
mbedtls_sha3_init(&operation->ctx.sha3);
|
||||||
|
ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_224);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
|
||||||
|
case PSA_ALG_SHA3_256:
|
||||||
|
mbedtls_sha3_init(&operation->ctx.sha3);
|
||||||
|
ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_256);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
|
||||||
|
case PSA_ALG_SHA3_384:
|
||||||
|
mbedtls_sha3_init(&operation->ctx.sha3);
|
||||||
|
ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_384);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
case PSA_ALG_SHA3_512:
|
||||||
|
mbedtls_sha3_init(&operation->ctx.sha3);
|
||||||
|
ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_512);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return PSA_ALG_IS_HASH(alg) ?
|
return PSA_ALG_IS_HASH(alg) ?
|
||||||
|
@ -196,6 +239,26 @@ psa_status_t mbedtls_psa_hash_clone(
|
||||||
mbedtls_sha512_clone(&target_operation->ctx.sha512,
|
mbedtls_sha512_clone(&target_operation->ctx.sha512,
|
||||||
&source_operation->ctx.sha512);
|
&source_operation->ctx.sha512);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
|
||||||
|
case PSA_ALG_SHA3_224:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
|
||||||
|
case PSA_ALG_SHA3_256:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
|
||||||
|
case PSA_ALG_SHA3_384:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
case PSA_ALG_SHA3_512:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
mbedtls_sha3_clone(&target_operation->ctx.sha3,
|
||||||
|
&source_operation->ctx.sha3);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
(void) source_operation;
|
(void) source_operation;
|
||||||
|
@ -256,6 +319,26 @@ psa_status_t mbedtls_psa_hash_update(
|
||||||
ret = mbedtls_sha512_update(&operation->ctx.sha512,
|
ret = mbedtls_sha512_update(&operation->ctx.sha512,
|
||||||
input, input_length);
|
input, input_length);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
|
||||||
|
case PSA_ALG_SHA3_224:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
|
||||||
|
case PSA_ALG_SHA3_256:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
|
||||||
|
case PSA_ALG_SHA3_384:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
case PSA_ALG_SHA3_512:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
ret = mbedtls_sha3_update(&operation->ctx.sha3,
|
||||||
|
input, input_length);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
(void) input;
|
(void) input;
|
||||||
|
@ -326,6 +409,25 @@ psa_status_t mbedtls_psa_hash_finish(
|
||||||
case PSA_ALG_SHA_512:
|
case PSA_ALG_SHA_512:
|
||||||
ret = mbedtls_sha512_finish(&operation->ctx.sha512, hash);
|
ret = mbedtls_sha512_finish(&operation->ctx.sha512, hash);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
|
||||||
|
case PSA_ALG_SHA3_224:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
|
||||||
|
case PSA_ALG_SHA3_256:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
|
||||||
|
case PSA_ALG_SHA3_384:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
case PSA_ALG_SHA3_512:
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
|
||||||
|
ret = mbedtls_sha3_finish(&operation->ctx.sha3, hash, hash_size);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
(void) hash;
|
(void) hash;
|
||||||
|
|
|
@ -178,12 +178,12 @@ psa_status_t mbedtls_psa_pake_setup(mbedtls_psa_pake_operation_t *operation,
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
psa_crypto_driver_pake_get_user_len(inputs, &user_len);
|
status = psa_crypto_driver_pake_get_user_len(inputs, &user_len);
|
||||||
if (status != PSA_SUCCESS) {
|
if (status != PSA_SUCCESS) {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
psa_crypto_driver_pake_get_peer_len(inputs, &peer_len);
|
status = psa_crypto_driver_pake_get_peer_len(inputs, &peer_len);
|
||||||
if (status != PSA_SUCCESS) {
|
if (status != PSA_SUCCESS) {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ extern "C" {
|
||||||
/* Sanity check: a file size must fit in 32 bits. Allow a generous
|
/* Sanity check: a file size must fit in 32 bits. Allow a generous
|
||||||
* 64kB of metadata. */
|
* 64kB of metadata. */
|
||||||
#if PSA_CRYPTO_MAX_STORAGE_SIZE > 0xffff0000
|
#if PSA_CRYPTO_MAX_STORAGE_SIZE > 0xffff0000
|
||||||
#error PSA_CRYPTO_MAX_STORAGE_SIZE > 0xffff0000
|
#error "PSA_CRYPTO_MAX_STORAGE_SIZE > 0xffff0000"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** The maximum permitted persistent slot number.
|
/** The maximum permitted persistent slot number.
|
||||||
|
|
|
@ -126,7 +126,7 @@ int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; attempt < num_primes; ++attempt) {
|
for (; attempt < num_primes; ++attempt) {
|
||||||
mbedtls_mpi_lset(&K, primes[attempt]);
|
MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&K, primes[attempt]));
|
||||||
|
|
||||||
/* Check if gcd(K,N) = 1 */
|
/* Check if gcd(K,N) = 1 */
|
||||||
MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N));
|
MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N));
|
||||||
|
|
|
@ -1599,7 +1599,7 @@ int mbedtls_x509_crt_parse_path(mbedtls_x509_crt *chain, const char *path)
|
||||||
cleanup:
|
cleanup:
|
||||||
FindClose(hFind);
|
FindClose(hFind);
|
||||||
#else /* !_WIN32_WINNT_XP */
|
#else /* !_WIN32_WINNT_XP */
|
||||||
#error mbedtls_x509_crt_parse_path not available before Windows XP
|
#error "mbedtls_x509_crt_parse_path not available before Windows XP"
|
||||||
#endif /* !_WIN32_WINNT_XP */
|
#endif /* !_WIN32_WINNT_XP */
|
||||||
#else /* _WIN32 */
|
#else /* _WIN32 */
|
||||||
int t_ret;
|
int t_ret;
|
||||||
|
|
|
@ -63,6 +63,7 @@ EOF
|
||||||
for header in include/mbedtls/*.h include/psa/*.h; do
|
for header in include/mbedtls/*.h include/psa/*.h; do
|
||||||
case ${header#include/} in
|
case ${header#include/} in
|
||||||
mbedtls/mbedtls_config.h) :;; # not meant for direct inclusion
|
mbedtls/mbedtls_config.h) :;; # not meant for direct inclusion
|
||||||
|
mbedtls/config_*.h) :;; # not meant for direct inclusion
|
||||||
psa/crypto_config.h) :;; # not meant for direct inclusion
|
psa/crypto_config.h) :;; # not meant for direct inclusion
|
||||||
# Some of the psa/crypto_*.h headers are not meant to be included
|
# Some of the psa/crypto_*.h headers are not meant to be included
|
||||||
# directly. They do have include guards that make them no-ops if
|
# directly. They do have include guards that make them no-ops if
|
||||||
|
|
|
@ -73,23 +73,51 @@ static int calloc_self_test(int verbose)
|
||||||
void *empty2 = mbedtls_calloc(0, 1);
|
void *empty2 = mbedtls_calloc(0, 1);
|
||||||
void *buffer1 = mbedtls_calloc(1, 1);
|
void *buffer1 = mbedtls_calloc(1, 1);
|
||||||
void *buffer2 = mbedtls_calloc(1, 1);
|
void *buffer2 = mbedtls_calloc(1, 1);
|
||||||
|
unsigned int buffer_3_size = 256;
|
||||||
|
unsigned int buffer_4_size = 4097; /* Allocate more than the usual page size */
|
||||||
|
unsigned char *buffer3 = mbedtls_calloc(buffer_3_size, 1);
|
||||||
|
unsigned char *buffer4 = mbedtls_calloc(buffer_4_size, 1);
|
||||||
|
|
||||||
if (empty1 == NULL && empty2 == NULL) {
|
if (empty1 == NULL && empty2 == NULL) {
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
mbedtls_printf(" CALLOC(0): passed (NULL)\n");
|
mbedtls_printf(" CALLOC(0,1): passed (NULL)\n");
|
||||||
}
|
}
|
||||||
} else if (empty1 == NULL || empty2 == NULL) {
|
} else if (empty1 == NULL || empty2 == NULL) {
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
mbedtls_printf(" CALLOC(0): failed (mix of NULL and non-NULL)\n");
|
mbedtls_printf(" CALLOC(0,1): failed (mix of NULL and non-NULL)\n");
|
||||||
}
|
}
|
||||||
++failures;
|
++failures;
|
||||||
} else if (empty1 == empty2) {
|
} else if (empty1 == empty2) {
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
mbedtls_printf(" CALLOC(0): passed (same non-null)\n");
|
mbedtls_printf(" CALLOC(0,1): passed (same non-null)\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
mbedtls_printf(" CALLOC(0): passed (distinct non-null)\n");
|
mbedtls_printf(" CALLOC(0,1): passed (distinct non-null)\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mbedtls_free(empty1);
|
||||||
|
mbedtls_free(empty2);
|
||||||
|
|
||||||
|
empty1 = mbedtls_calloc(1, 0);
|
||||||
|
empty2 = mbedtls_calloc(1, 0);
|
||||||
|
if (empty1 == NULL && empty2 == NULL) {
|
||||||
|
if (verbose) {
|
||||||
|
mbedtls_printf(" CALLOC(1,0): passed (NULL)\n");
|
||||||
|
}
|
||||||
|
} else if (empty1 == NULL || empty2 == NULL) {
|
||||||
|
if (verbose) {
|
||||||
|
mbedtls_printf(" CALLOC(1,0): failed (mix of NULL and non-NULL)\n");
|
||||||
|
}
|
||||||
|
++failures;
|
||||||
|
} else if (empty1 == empty2) {
|
||||||
|
if (verbose) {
|
||||||
|
mbedtls_printf(" CALLOC(1,0): passed (same non-null)\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (verbose) {
|
||||||
|
mbedtls_printf(" CALLOC(1,0): passed (distinct non-null)\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +150,28 @@ static int calloc_self_test(int verbose)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < buffer_3_size; i++) {
|
||||||
|
if (buffer3[i] != 0) {
|
||||||
|
++failures;
|
||||||
|
if (verbose) {
|
||||||
|
mbedtls_printf(" CALLOC(%u): failed (memory not initialized to 0)\n",
|
||||||
|
buffer_3_size);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < buffer_4_size; i++) {
|
||||||
|
if (buffer4[i] != 0) {
|
||||||
|
++failures;
|
||||||
|
if (verbose) {
|
||||||
|
mbedtls_printf(" CALLOC(%u): failed (memory not initialized to 0)\n",
|
||||||
|
buffer_4_size);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
mbedtls_printf("\n");
|
mbedtls_printf("\n");
|
||||||
}
|
}
|
||||||
|
@ -129,6 +179,8 @@ static int calloc_self_test(int verbose)
|
||||||
mbedtls_free(empty2);
|
mbedtls_free(empty2);
|
||||||
mbedtls_free(buffer1);
|
mbedtls_free(buffer1);
|
||||||
mbedtls_free(buffer2);
|
mbedtls_free(buffer2);
|
||||||
|
mbedtls_free(buffer3);
|
||||||
|
mbedtls_free(buffer4);
|
||||||
return failures;
|
return failures;
|
||||||
}
|
}
|
||||||
#endif /* MBEDTLS_SELF_TEST */
|
#endif /* MBEDTLS_SELF_TEST */
|
||||||
|
|
|
@ -530,6 +530,8 @@ usage:
|
||||||
SET_OID(ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING);
|
SET_OID(ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING);
|
||||||
} else if (strcmp(q, "OCSPSigning") == 0) {
|
} else if (strcmp(q, "OCSPSigning") == 0) {
|
||||||
SET_OID(ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING);
|
SET_OID(ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING);
|
||||||
|
} else if (strcmp(q, "any") == 0) {
|
||||||
|
SET_OID(ext_key_usage->buf, MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE);
|
||||||
} else {
|
} else {
|
||||||
mbedtls_printf("Invalid argument for option %s\n", p);
|
mbedtls_printf("Invalid argument for option %s\n", p);
|
||||||
goto usage;
|
goto usage;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
123
scripts/mbedtls_dev/crypto_data_tests.py
Normal file
123
scripts/mbedtls_dev/crypto_data_tests.py
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
"""Generate test data for cryptographic mechanisms.
|
||||||
|
|
||||||
|
This module is a work in progress, only implementing a few cases for now.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Copyright The Mbed TLS Contributors
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import hashlib
|
||||||
|
from typing import Callable, Dict, Iterator, List, Optional #pylint: disable=unused-import
|
||||||
|
|
||||||
|
from . import crypto_knowledge
|
||||||
|
from . import psa_information
|
||||||
|
from . import test_case
|
||||||
|
|
||||||
|
|
||||||
|
def psa_low_level_dependencies(*expressions: str) -> List[str]:
|
||||||
|
"""Infer dependencies of a PSA low-level test case by looking for PSA_xxx symbols.
|
||||||
|
|
||||||
|
This function generates MBEDTLS_PSA_BUILTIN_xxx symbols.
|
||||||
|
"""
|
||||||
|
high_level = psa_information.automatic_dependencies(*expressions)
|
||||||
|
for dep in high_level:
|
||||||
|
assert dep.startswith('PSA_WANT_')
|
||||||
|
return ['MBEDTLS_PSA_BUILTIN_' + dep[9:] for dep in high_level]
|
||||||
|
|
||||||
|
|
||||||
|
class HashPSALowLevel:
|
||||||
|
"""Generate test cases for the PSA low-level hash interface."""
|
||||||
|
|
||||||
|
def __init__(self, info: psa_information.Information) -> None:
|
||||||
|
self.info = info
|
||||||
|
base_algorithms = sorted(info.constructors.algorithms)
|
||||||
|
all_algorithms = \
|
||||||
|
[crypto_knowledge.Algorithm(expr)
|
||||||
|
for expr in info.constructors.generate_expressions(base_algorithms)]
|
||||||
|
self.algorithms = \
|
||||||
|
[alg
|
||||||
|
for alg in all_algorithms
|
||||||
|
if (not alg.is_wildcard and
|
||||||
|
alg.can_do(crypto_knowledge.AlgorithmCategory.HASH))]
|
||||||
|
|
||||||
|
# CALCULATE[alg] = function to return the hash of its argument in hex
|
||||||
|
# TO-DO: implement the None entries with a third-party library, because
|
||||||
|
# hashlib might not have everything, depending on the Python version and
|
||||||
|
# the underlying OpenSSL. On Ubuntu 16.04, truncated sha512 and sha3/shake
|
||||||
|
# are not available. On Ubuntu 22.04, md2, md4 and ripemd160 are not
|
||||||
|
# available.
|
||||||
|
CALCULATE = {
|
||||||
|
'PSA_ALG_MD5': lambda data: hashlib.md5(data).hexdigest(),
|
||||||
|
'PSA_ALG_RIPEMD160': None, #lambda data: hashlib.new('ripdemd160').hexdigest()
|
||||||
|
'PSA_ALG_SHA_1': lambda data: hashlib.sha1(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA_224': lambda data: hashlib.sha224(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA_256': lambda data: hashlib.sha256(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA_384': lambda data: hashlib.sha384(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA_512': lambda data: hashlib.sha512(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA_512_224': None, #lambda data: hashlib.new('sha512_224').hexdigest()
|
||||||
|
'PSA_ALG_SHA_512_256': None, #lambda data: hashlib.new('sha512_256').hexdigest()
|
||||||
|
'PSA_ALG_SHA3_224': None, #lambda data: hashlib.sha3_224(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA3_256': None, #lambda data: hashlib.sha3_256(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA3_384': None, #lambda data: hashlib.sha3_384(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHA3_512': None, #lambda data: hashlib.sha3_512(data).hexdigest(),
|
||||||
|
'PSA_ALG_SHAKE256_512': None, #lambda data: hashlib.shake_256(data).hexdigest(64),
|
||||||
|
} #type: Dict[str, Optional[Callable[[bytes], str]]]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def one_test_case(alg: crypto_knowledge.Algorithm,
|
||||||
|
function: str, note: str,
|
||||||
|
arguments: List[str]) -> test_case.TestCase:
|
||||||
|
"""Construct one test case involving a hash."""
|
||||||
|
tc = test_case.TestCase()
|
||||||
|
tc.set_description('{}{} {}'
|
||||||
|
.format(function,
|
||||||
|
' ' + note if note else '',
|
||||||
|
alg.short_expression()))
|
||||||
|
tc.set_dependencies(psa_low_level_dependencies(alg.expression))
|
||||||
|
tc.set_function(function)
|
||||||
|
tc.set_arguments([alg.expression] +
|
||||||
|
['"{}"'.format(arg) for arg in arguments])
|
||||||
|
return tc
|
||||||
|
|
||||||
|
def test_cases_for_hash(self,
|
||||||
|
alg: crypto_knowledge.Algorithm
|
||||||
|
) -> Iterator[test_case.TestCase]:
|
||||||
|
"""Enumerate all test cases for one hash algorithm."""
|
||||||
|
calc = self.CALCULATE[alg.expression]
|
||||||
|
if calc is None:
|
||||||
|
return # not implemented yet
|
||||||
|
|
||||||
|
short = b'abc'
|
||||||
|
hash_short = calc(short)
|
||||||
|
long = (b'Hello, world. Here are 16 unprintable bytes: ['
|
||||||
|
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a'
|
||||||
|
b'\x80\x81\x82\x83\xfe\xff]. '
|
||||||
|
b' This message was brought to you by a natural intelligence. '
|
||||||
|
b' If you can read this, good luck with your debugging!')
|
||||||
|
hash_long = calc(long)
|
||||||
|
|
||||||
|
yield self.one_test_case(alg, 'hash_empty', '', [calc(b'')])
|
||||||
|
yield self.one_test_case(alg, 'hash_valid_one_shot', '',
|
||||||
|
[short.hex(), hash_short])
|
||||||
|
for n in [0, 1, 64, len(long) - 1, len(long)]:
|
||||||
|
yield self.one_test_case(alg, 'hash_valid_multipart',
|
||||||
|
'{} + {}'.format(n, len(long) - n),
|
||||||
|
[long[:n].hex(), calc(long[:n]),
|
||||||
|
long[n:].hex(), hash_long])
|
||||||
|
|
||||||
|
def all_test_cases(self) -> Iterator[test_case.TestCase]:
|
||||||
|
"""Enumerate all test cases for all hash algorithms."""
|
||||||
|
for alg in self.algorithms:
|
||||||
|
yield from self.test_cases_for_hash(alg)
|
57
scripts/mbedtls_dev/logging_util.py
Normal file
57
scripts/mbedtls_dev/logging_util.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
"""Auxiliary functions used for logging module.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Copyright The Mbed TLS Contributors
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def configure_logger(
|
||||||
|
logger: logging.Logger,
|
||||||
|
log_format="[%(levelname)s]: %(message)s",
|
||||||
|
split_level=logging.WARNING
|
||||||
|
) -> None:
|
||||||
|
"""
|
||||||
|
Configure the logging.Logger instance so that:
|
||||||
|
- Format is set to any log_format.
|
||||||
|
Default: "[%(levelname)s]: %(message)s"
|
||||||
|
- loglevel >= split_level are printed to stderr.
|
||||||
|
- loglevel < split_level are printed to stdout.
|
||||||
|
Default: logging.WARNING
|
||||||
|
"""
|
||||||
|
class MaxLevelFilter(logging.Filter):
|
||||||
|
# pylint: disable=too-few-public-methods
|
||||||
|
def __init__(self, max_level, name=''):
|
||||||
|
super().__init__(name)
|
||||||
|
self.max_level = max_level
|
||||||
|
|
||||||
|
def filter(self, record: logging.LogRecord) -> bool:
|
||||||
|
return record.levelno <= self.max_level
|
||||||
|
|
||||||
|
log_formatter = logging.Formatter(log_format)
|
||||||
|
|
||||||
|
# set loglevel >= split_level to be printed to stderr
|
||||||
|
stderr_hdlr = logging.StreamHandler(sys.stderr)
|
||||||
|
stderr_hdlr.setLevel(split_level)
|
||||||
|
stderr_hdlr.setFormatter(log_formatter)
|
||||||
|
|
||||||
|
# set loglevel < split_level to be printed to stdout
|
||||||
|
stdout_hdlr = logging.StreamHandler(sys.stdout)
|
||||||
|
stdout_hdlr.addFilter(MaxLevelFilter(split_level - 1))
|
||||||
|
stdout_hdlr.setFormatter(log_formatter)
|
||||||
|
|
||||||
|
logger.addHandler(stderr_hdlr)
|
||||||
|
logger.addHandler(stdout_hdlr)
|
162
scripts/mbedtls_dev/psa_information.py
Normal file
162
scripts/mbedtls_dev/psa_information.py
Normal file
|
@ -0,0 +1,162 @@
|
||||||
|
"""Collect information about PSA cryptographic mechanisms.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Copyright The Mbed TLS Contributors
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import re
|
||||||
|
from typing import Dict, FrozenSet, List, Optional
|
||||||
|
|
||||||
|
from . import macro_collector
|
||||||
|
|
||||||
|
|
||||||
|
class Information:
|
||||||
|
"""Gather information about PSA constructors."""
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.constructors = self.read_psa_interface()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_unwanted_macros(
|
||||||
|
constructors: macro_collector.PSAMacroEnumerator
|
||||||
|
) -> None:
|
||||||
|
# Mbed TLS does not support finite-field DSA.
|
||||||
|
# Don't attempt to generate any related test case.
|
||||||
|
constructors.key_types.discard('PSA_KEY_TYPE_DSA_KEY_PAIR')
|
||||||
|
constructors.key_types.discard('PSA_KEY_TYPE_DSA_PUBLIC_KEY')
|
||||||
|
|
||||||
|
def read_psa_interface(self) -> macro_collector.PSAMacroEnumerator:
|
||||||
|
"""Return the list of known key types, algorithms, etc."""
|
||||||
|
constructors = macro_collector.InputsForTest()
|
||||||
|
header_file_names = ['include/psa/crypto_values.h',
|
||||||
|
'include/psa/crypto_extra.h']
|
||||||
|
test_suites = ['tests/suites/test_suite_psa_crypto_metadata.data']
|
||||||
|
for header_file_name in header_file_names:
|
||||||
|
constructors.parse_header(header_file_name)
|
||||||
|
for test_cases in test_suites:
|
||||||
|
constructors.parse_test_cases(test_cases)
|
||||||
|
self.remove_unwanted_macros(constructors)
|
||||||
|
constructors.gather_arguments()
|
||||||
|
return constructors
|
||||||
|
|
||||||
|
|
||||||
|
def psa_want_symbol(name: str) -> str:
|
||||||
|
"""Return the PSA_WANT_xxx symbol associated with a PSA crypto feature."""
|
||||||
|
if name.startswith('PSA_'):
|
||||||
|
return name[:4] + 'WANT_' + name[4:]
|
||||||
|
else:
|
||||||
|
raise ValueError('Unable to determine the PSA_WANT_ symbol for ' + name)
|
||||||
|
|
||||||
|
def finish_family_dependency(dep: str, bits: int) -> str:
|
||||||
|
"""Finish dep if it's a family dependency symbol prefix.
|
||||||
|
|
||||||
|
A family dependency symbol prefix is a PSA_WANT_ symbol that needs to be
|
||||||
|
qualified by the key size. If dep is such a symbol, finish it by adjusting
|
||||||
|
the prefix and appending the key size. Other symbols are left unchanged.
|
||||||
|
"""
|
||||||
|
return re.sub(r'_FAMILY_(.*)', r'_\1_' + str(bits), dep)
|
||||||
|
|
||||||
|
def finish_family_dependencies(dependencies: List[str], bits: int) -> List[str]:
|
||||||
|
"""Finish any family dependency symbol prefixes.
|
||||||
|
|
||||||
|
Apply `finish_family_dependency` to each element of `dependencies`.
|
||||||
|
"""
|
||||||
|
return [finish_family_dependency(dep, bits) for dep in dependencies]
|
||||||
|
|
||||||
|
SYMBOLS_WITHOUT_DEPENDENCY = frozenset([
|
||||||
|
'PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG', # modifier, only in policies
|
||||||
|
'PSA_ALG_AEAD_WITH_SHORTENED_TAG', # modifier
|
||||||
|
'PSA_ALG_ANY_HASH', # only in policies
|
||||||
|
'PSA_ALG_AT_LEAST_THIS_LENGTH_MAC', # modifier, only in policies
|
||||||
|
'PSA_ALG_KEY_AGREEMENT', # chaining
|
||||||
|
'PSA_ALG_TRUNCATED_MAC', # modifier
|
||||||
|
])
|
||||||
|
def automatic_dependencies(*expressions: str) -> List[str]:
|
||||||
|
"""Infer dependencies of a test case by looking for PSA_xxx symbols.
|
||||||
|
|
||||||
|
The arguments are strings which should be C expressions. Do not use
|
||||||
|
string literals or comments as this function is not smart enough to
|
||||||
|
skip them.
|
||||||
|
"""
|
||||||
|
used = set()
|
||||||
|
for expr in expressions:
|
||||||
|
used.update(re.findall(r'PSA_(?:ALG|ECC_FAMILY|KEY_TYPE)_\w+', expr))
|
||||||
|
used.difference_update(SYMBOLS_WITHOUT_DEPENDENCY)
|
||||||
|
return sorted(psa_want_symbol(name) for name in used)
|
||||||
|
|
||||||
|
# Define set of regular expressions and dependencies to optionally append
|
||||||
|
# extra dependencies for test case.
|
||||||
|
AES_128BIT_ONLY_DEP_REGEX = r'AES\s(192|256)'
|
||||||
|
AES_128BIT_ONLY_DEP = ["!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH"]
|
||||||
|
|
||||||
|
DEPENDENCY_FROM_KEY = {
|
||||||
|
AES_128BIT_ONLY_DEP_REGEX: AES_128BIT_ONLY_DEP
|
||||||
|
}#type: Dict[str, List[str]]
|
||||||
|
def generate_key_dependencies(description: str) -> List[str]:
|
||||||
|
"""Return additional dependencies based on pairs of REGEX and dependencies.
|
||||||
|
"""
|
||||||
|
deps = []
|
||||||
|
for regex, dep in DEPENDENCY_FROM_KEY.items():
|
||||||
|
if re.search(regex, description):
|
||||||
|
deps += dep
|
||||||
|
|
||||||
|
return deps
|
||||||
|
|
||||||
|
# A temporary hack: at the time of writing, not all dependency symbols
|
||||||
|
# are implemented yet. Skip test cases for which the dependency symbols are
|
||||||
|
# not available. Once all dependency symbols are available, this hack must
|
||||||
|
# be removed so that a bug in the dependency symbols properly leads to a test
|
||||||
|
# failure.
|
||||||
|
def read_implemented_dependencies(filename: str) -> FrozenSet[str]:
|
||||||
|
return frozenset(symbol
|
||||||
|
for line in open(filename)
|
||||||
|
for symbol in re.findall(r'\bPSA_WANT_\w+\b', line))
|
||||||
|
_implemented_dependencies = None #type: Optional[FrozenSet[str]] #pylint: disable=invalid-name
|
||||||
|
def hack_dependencies_not_implemented(dependencies: List[str]) -> None:
|
||||||
|
global _implemented_dependencies #pylint: disable=global-statement,invalid-name
|
||||||
|
if _implemented_dependencies is None:
|
||||||
|
_implemented_dependencies = \
|
||||||
|
read_implemented_dependencies('include/psa/crypto_config.h')
|
||||||
|
if not all((dep.lstrip('!') in _implemented_dependencies or
|
||||||
|
not dep.lstrip('!').startswith('PSA_WANT'))
|
||||||
|
for dep in dependencies):
|
||||||
|
dependencies.append('DEPENDENCY_NOT_IMPLEMENTED_YET')
|
||||||
|
|
||||||
|
def tweak_key_pair_dependency(dep: str, usage: str):
|
||||||
|
"""
|
||||||
|
This helper function add the proper suffix to PSA_WANT_KEY_TYPE_xxx_KEY_PAIR
|
||||||
|
symbols according to the required usage.
|
||||||
|
"""
|
||||||
|
ret_list = list()
|
||||||
|
if dep.endswith('KEY_PAIR'):
|
||||||
|
if usage == "BASIC":
|
||||||
|
# BASIC automatically includes IMPORT and EXPORT for test purposes (see
|
||||||
|
# config_psa.h).
|
||||||
|
ret_list.append(re.sub(r'KEY_PAIR', r'KEY_PAIR_BASIC', dep))
|
||||||
|
ret_list.append(re.sub(r'KEY_PAIR', r'KEY_PAIR_IMPORT', dep))
|
||||||
|
ret_list.append(re.sub(r'KEY_PAIR', r'KEY_PAIR_EXPORT', dep))
|
||||||
|
elif usage == "GENERATE":
|
||||||
|
ret_list.append(re.sub(r'KEY_PAIR', r'KEY_PAIR_GENERATE', dep))
|
||||||
|
else:
|
||||||
|
# No replacement to do in this case
|
||||||
|
ret_list.append(dep)
|
||||||
|
return ret_list
|
||||||
|
|
||||||
|
def fix_key_pair_dependencies(dep_list: List[str], usage: str):
|
||||||
|
new_list = [new_deps
|
||||||
|
for dep in dep_list
|
||||||
|
for new_deps in tweak_key_pair_dependency(dep, usage)]
|
||||||
|
|
||||||
|
return new_list
|
|
@ -118,8 +118,10 @@ if(GEN_FILES)
|
||||||
--directory ${CMAKE_CURRENT_BINARY_DIR}/suites
|
--directory ${CMAKE_CURRENT_BINARY_DIR}/suites
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py
|
${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/crypto_data_tests.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/crypto_knowledge.py
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/crypto_knowledge.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_information.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py
|
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py
|
||||||
|
|
|
@ -121,8 +121,10 @@ generated_ecp_test_data:
|
||||||
|
|
||||||
$(GENERATED_PSA_DATA_FILES): generated_psa_test_data
|
$(GENERATED_PSA_DATA_FILES): generated_psa_test_data
|
||||||
generated_psa_test_data: scripts/generate_psa_tests.py
|
generated_psa_test_data: scripts/generate_psa_tests.py
|
||||||
|
generated_psa_test_data: ../scripts/mbedtls_dev/crypto_data_tests.py
|
||||||
generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py
|
generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py
|
||||||
generated_psa_test_data: ../scripts/mbedtls_dev/macro_collector.py
|
generated_psa_test_data: ../scripts/mbedtls_dev/macro_collector.py
|
||||||
|
generated_psa_test_data: ../scripts/mbedtls_dev/psa_information.py
|
||||||
generated_psa_test_data: ../scripts/mbedtls_dev/psa_storage.py
|
generated_psa_test_data: ../scripts/mbedtls_dev/psa_storage.py
|
||||||
generated_psa_test_data: ../scripts/mbedtls_dev/test_case.py
|
generated_psa_test_data: ../scripts/mbedtls_dev/test_case.py
|
||||||
generated_psa_test_data: ../scripts/mbedtls_dev/test_data_generation.py
|
generated_psa_test_data: ../scripts/mbedtls_dev/test_data_generation.py
|
||||||
|
|
|
@ -60,6 +60,14 @@ test-ca.key.der: $(test_ca_key_file_rsa)
|
||||||
$(OPENSSL) pkey -in $< -out $@ -inform PEM -outform DER -passin "pass:$(test_ca_pwd_rsa)"
|
$(OPENSSL) pkey -in $< -out $@ -inform PEM -outform DER -passin "pass:$(test_ca_pwd_rsa)"
|
||||||
all_final += test-ca.key.der
|
all_final += test-ca.key.der
|
||||||
|
|
||||||
|
# This is only used for generating cert_example_multi_nocn.crt
|
||||||
|
test-ca_nocn.crt: $(test_ca_key_file_rsa)
|
||||||
|
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=3 selfsign=1 \
|
||||||
|
subject_key=$(test_ca_key_file_rsa) subject_pwd=$(test_ca_pwd_rsa) subject_name="C=NL" \
|
||||||
|
issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) issuer_name="C=NL" \
|
||||||
|
not_before=20190210144400 not_after=20290210144400 md=SHA1 version=3 output_file=$@
|
||||||
|
all_intermediate += test-ca_nocn.crt
|
||||||
|
|
||||||
test-ca-sha1.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
test-ca-sha1.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
||||||
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=3 request_file=test-ca.req.sha256 selfsign=1 issuer_name="C=NL,O=PolarSSL,CN=PolarSSL Test CA" issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) not_before=20190210144400 not_after=20290210144400 md=SHA1 version=3 output_file=$@
|
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=3 request_file=test-ca.req.sha256 selfsign=1 issuer_name="C=NL,O=PolarSSL,CN=PolarSSL Test CA" issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) not_before=20190210144400 not_after=20290210144400 md=SHA1 version=3 output_file=$@
|
||||||
all_final += test-ca-sha1.crt
|
all_final += test-ca-sha1.crt
|
||||||
|
@ -99,6 +107,16 @@ parse_input/cert_example_multi.crt cert_example_multi.crt: cert_example_multi.cs
|
||||||
-passin "pass:$(test_ca_pwd_rsa)" -set_serial 17 -days 3653 -sha256 \
|
-passin "pass:$(test_ca_pwd_rsa)" -set_serial 17 -days 3653 -sha256 \
|
||||||
-in $< > $@
|
-in $< > $@
|
||||||
|
|
||||||
|
cert_example_multi_nocn.csr: rsa_pkcs1_1024_clear.pem
|
||||||
|
$(MBEDTLS_CERT_REQ) filename=$< output_file=$@ subject_name='C=NL'
|
||||||
|
all_intermediate += cert_example_multi_nocn.csr
|
||||||
|
|
||||||
|
parse_input/cert_example_multi_nocn.crt cert_example_multi_nocn.crt: cert_example_multi_nocn.csr test-ca_nocn.crt
|
||||||
|
$(OPENSSL) x509 -req -CA test-ca_nocn.crt -CAkey $(test_ca_key_file_rsa) \
|
||||||
|
-extfile $(test_ca_config_file) -extensions ext_multi_nocn -passin "pass:$(test_ca_pwd_rsa)" \
|
||||||
|
-set_serial 0xf7c67ff8e9a963f9 -days 3653 -sha1 -in $< > $@
|
||||||
|
all_final += cert_example_multi_nocn.crt
|
||||||
|
|
||||||
parse_input/test_csr_v3_keyUsage.csr.der: rsa_pkcs1_1024_clear.pem
|
parse_input/test_csr_v3_keyUsage.csr.der: rsa_pkcs1_1024_clear.pem
|
||||||
$(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_keyUsage
|
$(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_keyUsage
|
||||||
parse_input/test_csr_v3_subjectAltName.csr.der: rsa_pkcs1_1024_clear.pem
|
parse_input/test_csr_v3_subjectAltName.csr.der: rsa_pkcs1_1024_clear.pem
|
||||||
|
@ -168,13 +186,28 @@ test_ca_crt_file_ec = test-ca2.crt
|
||||||
test_ca_key_file_ec = test-ca2.key
|
test_ca_key_file_ec = test-ca2.key
|
||||||
|
|
||||||
test-ca2.req.sha256: $(test_ca_key_file_ec)
|
test-ca2.req.sha256: $(test_ca_key_file_ec)
|
||||||
$(MBEDTLS_CERT_REQ) output_file=$@ filename=$(test_ca_key_file_ec) subject_name="C=NL,O=PolarSSL,CN=Polarssl Test EC CA" md=SHA256
|
$(MBEDTLS_CERT_REQ) output_file=$@ filename=$(test_ca_key_file_ec) \
|
||||||
|
subject_name="C=NL,O=PolarSSL,CN=Polarssl Test EC CA" md=SHA256
|
||||||
all_intermediate += test-ca2.req.sha256
|
all_intermediate += test-ca2.req.sha256
|
||||||
|
|
||||||
test-ca2.crt: $(test_ca_key_file_ec) test-ca2.req.sha256
|
test-ca2.crt: $(test_ca_key_file_ec) test-ca2.req.sha256
|
||||||
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=13926223505202072808 request_file=test-ca2.req.sha256 selfsign=1 issuer_name="C=NL,O=PolarSSL,CN=Polarssl Test EC CA" issuer_key=$(test_ca_key_file_ec) not_before=20190210144400 not_after=20290210144400 md=SHA256 version=3 output_file=$@
|
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=13926223505202072808 selfsign=1 \
|
||||||
|
request_file=test-ca2.req.sha256 \
|
||||||
|
issuer_name="C=NL,O=PolarSSL,CN=Polarssl Test EC CA" \
|
||||||
|
issuer_key=$(test_ca_key_file_ec) \
|
||||||
|
not_before=20190210144400 not_after=20290210144400 \
|
||||||
|
md=SHA256 version=3 output_file=$@
|
||||||
all_final += test-ca2.crt
|
all_final += test-ca2.crt
|
||||||
|
|
||||||
|
test-ca2.ku-%.crt: test-ca2.ku-%.crt.openssl.v3_ext $(test_ca_key_file_ec) test-ca2.req.sha256
|
||||||
|
$(OPENSSL) x509 -req -in test-ca2.req.sha256 -extfile $< \
|
||||||
|
-signkey $(test_ca_key_file_ec) -days 3653 -out $@
|
||||||
|
|
||||||
|
all_final += test-ca2.ku-crl.crt \
|
||||||
|
test-ca2.ku-crt.crt \
|
||||||
|
test-ca2.ku-crt_crl.crt \
|
||||||
|
test-ca2.ku-ds.crt
|
||||||
|
|
||||||
test-ca2-future.crt: $(test_ca_key_file_ec) test-ca2.req.sha256
|
test-ca2-future.crt: $(test_ca_key_file_ec) test-ca2.req.sha256
|
||||||
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=13926223505202072808 request_file=test-ca2.req.sha256 selfsign=1 \
|
$(MBEDTLS_CERT_WRITE) is_ca=1 serial=13926223505202072808 request_file=test-ca2.req.sha256 selfsign=1 \
|
||||||
issuer_name="C=NL,O=PolarSSL,CN=Polarssl Test EC CA" issuer_key=$(test_ca_key_file_ec) \
|
issuer_name="C=NL,O=PolarSSL,CN=Polarssl Test EC CA" issuer_key=$(test_ca_key_file_ec) \
|
||||||
|
@ -199,10 +232,14 @@ $(test_ca_ec_cat):
|
||||||
all_final += $(test_ca_ec_cat)
|
all_final += $(test_ca_ec_cat)
|
||||||
|
|
||||||
parse_input/test-ca-any_policy.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
parse_input/test-ca-any_policy.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
||||||
$(OPENSSL) req -x509 -config $(test_ca_config_file) -extensions v3_any_policy_ca -key $(test_ca_key_file_rsa) -passin "pass:$(test_ca_pwd_rsa)" -set_serial 0 -days 3653 -sha256 -in test-ca.req.sha256 -out $@
|
$(OPENSSL) req -x509 -config $(test_ca_config_file) -extensions v3_any_policy_ca \
|
||||||
|
-key $(test_ca_key_file_rsa) -passin "pass:$(test_ca_pwd_rsa)" \
|
||||||
|
-set_serial 0 -days 3653 -sha256 -in test-ca.req.sha256 -out $@
|
||||||
|
|
||||||
parse_input/test-ca-any_policy_ec.crt: $(test_ca_key_file_ec) test-ca.req_ec.sha256
|
parse_input/test-ca-any_policy_ec.crt: $(test_ca_key_file_ec) test-ca.req_ec.sha256
|
||||||
$(OPENSSL) req -x509 -config $(test_ca_config_file) -extensions v3_any_policy_ca -key $(test_ca_key_file_ec) -set_serial 0 -days 3653 -sha256 -in test-ca.req_ec.sha256 -out $@
|
$(OPENSSL) req -x509 -config $(test_ca_config_file) -extensions v3_any_policy_ca \
|
||||||
|
-key $(test_ca_key_file_ec) -set_serial 0 -days 3653 -sha256 \
|
||||||
|
-in test-ca.req_ec.sha256 -out $@
|
||||||
|
|
||||||
parse_input/test-ca-any_policy_with_qualifier.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
parse_input/test-ca-any_policy_with_qualifier.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
||||||
$(OPENSSL) req -x509 -config $(test_ca_config_file) -extensions v3_any_policy_qualifier_ca -key $(test_ca_key_file_rsa) -passin "pass:$(test_ca_pwd_rsa)" -set_serial 0 -days 3653 -sha256 -in test-ca.req.sha256 -out $@
|
$(OPENSSL) req -x509 -config $(test_ca_config_file) -extensions v3_any_policy_qualifier_ca -key $(test_ca_key_file_rsa) -passin "pass:$(test_ca_pwd_rsa)" -set_serial 0 -days 3653 -sha256 -in test-ca.req.sha256 -out $@
|
||||||
|
@ -414,9 +451,23 @@ all_final += server5-ss-expired.crt
|
||||||
|
|
||||||
# try to forge a copy of test-int-ca3 with different key
|
# try to forge a copy of test-int-ca3 with different key
|
||||||
server5-ss-forgeca.crt: server5.key
|
server5-ss-forgeca.crt: server5.key
|
||||||
$(FAKETIME) '2015-09-01 14:08:43' $(OPENSSL) req -x509 -new -subj "/C=UK/O=mbed TLS/CN=mbed TLS Test intermediate CA 3" -set_serial 77 -config $(test_ca_config_file) -extensions noext_ca -days 3650 -sha256 -key $< -out $@
|
$(OPENSSL) req -x509 -new -subj "/C=UK/O=mbed TLS/CN=mbed TLS Test intermediate CA 3" \
|
||||||
|
-set_serial 77 -config $(test_ca_config_file) -extensions noext_ca \
|
||||||
|
-days 3650 -sha256 -key $< -out $@
|
||||||
all_final += server5-ss-forgeca.crt
|
all_final += server5-ss-forgeca.crt
|
||||||
|
|
||||||
|
server5-selfsigned.crt: server5.key
|
||||||
|
openssl req -x509 -key server5.key \
|
||||||
|
-sha256 -days 3650 -nodes \
|
||||||
|
-addext basicConstraints=critical,CA:FALSE \
|
||||||
|
-addext keyUsage=critical,digitalSignature \
|
||||||
|
-addext subjectKeyIdentifier=hash \
|
||||||
|
-addext authorityKeyIdentifier=none \
|
||||||
|
-set_serial 0x53a2cb4b124ead837da894b2 \
|
||||||
|
-subj "/CN=selfsigned/OU=testing/O=PolarSSL/C=NL" \
|
||||||
|
-out $@
|
||||||
|
all_final += server5-selfsigned.crt
|
||||||
|
|
||||||
parse_input/server5-othername.crt.der: server5.key
|
parse_input/server5-othername.crt.der: server5.key
|
||||||
$(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions othername_san -days 3650 -sha256 -key $< -outform der -out $@
|
$(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions othername_san -days 3650 -sha256 -key $< -outform der -out $@
|
||||||
|
|
||||||
|
@ -486,6 +537,59 @@ test-int-ca3-badsign.crt: test-int-ca3.crt
|
||||||
{ head -n-2 $<; tail -n-2 $< | sed -e '1s/0\(=*\)$$/_\1/' -e '1s/[^_=]\(=*\)$$/0\1/' -e '1s/_/1/'; } > $@
|
{ head -n-2 $<; tail -n-2 $< | sed -e '1s/0\(=*\)$$/_\1/' -e '1s/[^_=]\(=*\)$$/0\1/' -e '1s/_/1/'; } > $@
|
||||||
all_final += test-int-ca3-badsign.crt
|
all_final += test-int-ca3-badsign.crt
|
||||||
|
|
||||||
|
# server9*
|
||||||
|
|
||||||
|
server9.csr: server9.key
|
||||||
|
$(OPENSSL) req -new -subj "/C=NL/O=PolarSSL/CN=localhost" \
|
||||||
|
-key $< -out $@
|
||||||
|
parse_input/server9.crt server9.crt: server9-sha1.crt
|
||||||
|
cp $< $@
|
||||||
|
all_final += server9.crt
|
||||||
|
all_intermediate += server9.csr server9-sha1.crt
|
||||||
|
|
||||||
|
server9-%.crt: server9.csr $(test_ca_crt) $(test_ca_key_file_rsa)
|
||||||
|
$(OPENSSL) x509 -req -extfile $(cli_crt_extensions_file) -extensions cli-rsa \
|
||||||
|
-passin "pass:$(test_ca_pwd_rsa)" -CA $(test_ca_crt) -CAkey $(test_ca_key_file_rsa) \
|
||||||
|
-set_serial $(SERVER9_CRT_SERIAL) -days 3653 \
|
||||||
|
-sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:max \
|
||||||
|
-sigopt rsa_mgf1_md:$(@F:server9-%.crt=%) -$(@F:server9-%.crt=%) \
|
||||||
|
-in $< -out $@
|
||||||
|
server9-sha1.crt: SERVER9_CRT_SERIAL=22
|
||||||
|
parse_input/server9-sha224.crt server9-sha224.crt: SERVER9_CRT_SERIAL=23
|
||||||
|
parse_input/server9-sha256.crt server9-sha256.crt: SERVER9_CRT_SERIAL=24
|
||||||
|
parse_input/server9-sha384.crt server9-sha384.crt: SERVER9_CRT_SERIAL=25
|
||||||
|
parse_input/server9-sha512.crt server9-sha512.crt: SERVER9_CRT_SERIAL=26
|
||||||
|
all_final += server9-sha224.crt server9-sha256.crt server9-sha384.crt server9-sha512.crt
|
||||||
|
|
||||||
|
server9-defaults.crt: server9.csr $(test_ca_crt) $(test_ca_key_file_rsa)
|
||||||
|
$(OPENSSL) x509 -req -extfile $(cli_crt_extensions_file) -extensions cli-rsa \
|
||||||
|
-passin "pass:$(test_ca_pwd_rsa)" -CA $(test_ca_crt) -CAkey $(test_ca_key_file_rsa) \
|
||||||
|
-set_serial 72 -days 3653 \
|
||||||
|
-sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:max -sha1 \
|
||||||
|
-in $< -out $@
|
||||||
|
all_final += server9-defaults.crt
|
||||||
|
|
||||||
|
server9-badsign.crt: server9.crt
|
||||||
|
{ head -n-2 $<; tail -n-2 $< | sed -e '1s/0\(=*\)$$/_\1/' -e '1s/[^_=]\(=*\)$$/0\1/' -e '1s/_/1/'; } > $@
|
||||||
|
all_final += server9-badsign.crt
|
||||||
|
|
||||||
|
server9-with-ca.crt: server9.crt $(test_ca_crt)
|
||||||
|
cat $^ > $@
|
||||||
|
all_final += server9-with-ca.crt
|
||||||
|
|
||||||
|
# FIXME: This file needs special sequence. It should be update manually
|
||||||
|
server9-bad-saltlen.crt: server9.csr $(test_ca_crt) $(test_ca_key_file_rsa)
|
||||||
|
false
|
||||||
|
|
||||||
|
server9-bad-mgfhash.crt: server9.csr $(test_ca_crt) $(test_ca_key_file_rsa)
|
||||||
|
$(OPENSSL) x509 -req -extfile $(cli_crt_extensions_file) -extensions cli-rsa \
|
||||||
|
-passin "pass:$(test_ca_pwd_rsa)" -CA $(test_ca_crt) -CAkey $(test_ca_key_file_rsa) \
|
||||||
|
-set_serial 24 -days 3653 \
|
||||||
|
-sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:max \
|
||||||
|
-sigopt rsa_mgf1_md:sha224 -sha256 \
|
||||||
|
-in $< -out $@
|
||||||
|
all_final += server9-bad-mgfhash.crt
|
||||||
|
|
||||||
# server10*
|
# server10*
|
||||||
|
|
||||||
server10.crt: server10.key test-int-ca3.crt test-int-ca3.key
|
server10.crt: server10.key test-int-ca3.crt test-int-ca3.key
|
||||||
|
@ -1387,6 +1491,32 @@ server5.req.ku.sha1: server5.key
|
||||||
$(OPENSSL) req -key $< -out $@ -new -nodes -subj "/C=NL/O=PolarSSL/CN=PolarSSL Server 1" -sha1 -addext keyUsage=digitalSignature,nonRepudiation
|
$(OPENSSL) req -key $< -out $@ -new -nodes -subj "/C=NL/O=PolarSSL/CN=PolarSSL Server 1" -sha1 -addext keyUsage=digitalSignature,nonRepudiation
|
||||||
all_final += server5.req.ku.sha1
|
all_final += server5.req.ku.sha1
|
||||||
|
|
||||||
|
server5.ku-ds.crt: SERVER5_CRT_SERIAL=45
|
||||||
|
server5.ku-ds.crt: SERVER5_KEY_USAGE=digital_signature
|
||||||
|
server5.ku-ka.crt: SERVER5_CRT_SERIAL=46
|
||||||
|
server5.ku-ka.crt: SERVER5_KEY_USAGE=key_agreement
|
||||||
|
server5.ku-ke.crt: SERVER5_CRT_SERIAL=47
|
||||||
|
server5.ku-ke.crt: SERVER5_KEY_USAGE=key_encipherment
|
||||||
|
server5.eku-cs.crt: SERVER5_CRT_SERIAL=58
|
||||||
|
server5.eku-cs.crt: SERVER5_EXT_KEY_USAGE=codeSigning
|
||||||
|
server5.eku-cs_any.crt: SERVER5_CRT_SERIAL=59
|
||||||
|
server5.eku-cs_any.crt: SERVER5_EXT_KEY_USAGE=codeSigning,any
|
||||||
|
server5.eku-cli.crt: SERVER5_CRT_SERIAL=60
|
||||||
|
server5.eku-cli.crt: SERVER5_EXT_KEY_USAGE=clientAuth
|
||||||
|
server5.eku-srv_cli.crt: SERVER5_CRT_SERIAL=61
|
||||||
|
server5.eku-srv_cli.crt: SERVER5_EXT_KEY_USAGE=serverAuth,clientAuth
|
||||||
|
server5.eku-srv.crt: SERVER5_CRT_SERIAL=62
|
||||||
|
server5.eku-srv.crt: SERVER5_EXT_KEY_USAGE=serverAuth
|
||||||
|
server5.ku-%.crt: SERVER5_EXT_OPTS=key_usage=$(SERVER5_KEY_USAGE)
|
||||||
|
server5.eku-%.crt: SERVER5_EXT_OPTS=ext_key_usage=$(SERVER5_EXT_KEY_USAGE)
|
||||||
|
server5.%.crt: server5.key
|
||||||
|
$(MBEDTLS_CERT_WRITE) \
|
||||||
|
subject_key=$< subject_name="C=NL,O=PolarSSL,CN=localhost" serial=$(SERVER5_CRT_SERIAL) \
|
||||||
|
issuer_crt=$(test_ca_crt_file_ec) issuer_key=$(test_ca_key_file_ec) $(SERVER5_EXT_OPTS) \
|
||||||
|
not_before=20190210144406 not_after=20290210144406 md=SHA256 version=3 output_file=$@
|
||||||
|
all_final += server5.ku-ka.crt server5.ku-ke.crt server5.ku-ds.crt
|
||||||
|
all_final += server5.eku-cs.crt server5.eku-cs_any.crt server5.eku-cli.crt server5.eku-srv_cli.crt server5.eku-srv.crt
|
||||||
|
|
||||||
# server6*
|
# server6*
|
||||||
|
|
||||||
server6.csr: server6.key
|
server6.csr: server6.key
|
||||||
|
@ -1398,6 +1528,18 @@ server6.crt: server6.csr $(test_ca_crt_file_ec) $(test_ca_key_file_ec)
|
||||||
-extfile server5.crt.openssl.v3_ext -set_serial 10 -days 3650 -sha256 -in $< -out $@
|
-extfile server5.crt.openssl.v3_ext -set_serial 10 -days 3650 -sha256 -in $< -out $@
|
||||||
all_final += server6.crt
|
all_final += server6.crt
|
||||||
|
|
||||||
|
server6-ss-child.csr : server6.key
|
||||||
|
$(OPENSSL) req -new -subj "/CN=selfsigned-child/OU=testing/O=PolarSSL/C=NL" \
|
||||||
|
-key $< -out $@
|
||||||
|
all_intermediate += server6-ss-child.csr
|
||||||
|
server6-ss-child.crt: server6-ss-child.csr server5-selfsigned.crt server5.key server6-ss-child.crt.openssl.v3_ext
|
||||||
|
$(OPENSSL) x509 -req -CA server5-selfsigned.crt -CAkey server5.key \
|
||||||
|
-extfile server6-ss-child.crt.openssl.v3_ext \
|
||||||
|
-set_serial 0x53a2cb5822399474a7ec79ec \
|
||||||
|
-days 3650 -sha256 -in $< -out $@
|
||||||
|
all_final += server6-ss-child.crt
|
||||||
|
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
### Generate certificates for CRT write check tests
|
### Generate certificates for CRT write check tests
|
||||||
################################################################
|
################################################################
|
||||||
|
@ -1448,7 +1590,7 @@ server1.der: server1.crt
|
||||||
$(OPENSSL) x509 -inform PEM -in $< -outform DER -out $@
|
$(OPENSSL) x509 -inform PEM -in $< -outform DER -out $@
|
||||||
server1.commas.crt: server1.key parse_input/server1.req.commas.sha256 $(test_ca_crt) $(test_ca_key_file_rsa)
|
server1.commas.crt: server1.key parse_input/server1.req.commas.sha256 $(test_ca_crt) $(test_ca_key_file_rsa)
|
||||||
$(MBEDTLS_CERT_WRITE) request_file=parse_input/server1.req.commas.sha256 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) version=1 not_before=20190210144406 not_after=20290210144406 md=SHA1 version=3 output_file=$@
|
$(MBEDTLS_CERT_WRITE) request_file=parse_input/server1.req.commas.sha256 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) version=1 not_before=20190210144406 not_after=20290210144406 md=SHA1 version=3 output_file=$@
|
||||||
all_final += server1.crt server1.noauthid.crt server1.crt.der server1.commas.crt
|
all_final += server1.crt server1.noauthid.crt parse_input/server1.crt.der server1.commas.crt
|
||||||
|
|
||||||
parse_input/server1.key_usage.crt: parse_input/server1.req.sha256
|
parse_input/server1.key_usage.crt: parse_input/server1.req.sha256
|
||||||
server1.key_usage.crt: server1.req.sha256
|
server1.key_usage.crt: server1.req.sha256
|
||||||
|
@ -1486,6 +1628,16 @@ server1.ca.der: server1.ca.crt
|
||||||
$(OPENSSL) x509 -inform PEM -in $< -outform DER -out $@
|
$(OPENSSL) x509 -inform PEM -in $< -outform DER -out $@
|
||||||
all_final += server1.ca.crt server1.ca_noauthid.crt server1.ca.der
|
all_final += server1.ca.crt server1.ca_noauthid.crt server1.ca.der
|
||||||
|
|
||||||
|
server1-nospace.crt: server1.key test-ca.crt
|
||||||
|
$(MBEDTLS_CERT_WRITE) subject_key=$< serial=31\
|
||||||
|
subject_name="C=NL,O=PolarSSL,CN=polarssl.example" \
|
||||||
|
issuer_crt=test-ca.crt issuer_key=$(test_ca_key_file_rsa) \
|
||||||
|
issuer_pwd=$(test_ca_pwd_rsa) \
|
||||||
|
not_before=20190210144406 not_after=20290210144406 \
|
||||||
|
md=SHA256 version=3 authority_identifier=1 \
|
||||||
|
output_file=$@
|
||||||
|
all_final += server1-nospace.crt
|
||||||
|
|
||||||
server1_ca.crt: server1.crt $(test_ca_crt)
|
server1_ca.crt: server1.crt $(test_ca_crt)
|
||||||
cat server1.crt $(test_ca_crt) > $@
|
cat server1.crt $(test_ca_crt) > $@
|
||||||
all_final += server1_ca.crt
|
all_final += server1_ca.crt
|
||||||
|
@ -1544,8 +1696,13 @@ server1.v1.der.openssl: server1.v1.crt.openssl
|
||||||
crl.pem: $(test_ca_crt) $(test_ca_key_file_rsa) $(test_ca_config_file)
|
crl.pem: $(test_ca_crt) $(test_ca_key_file_rsa) $(test_ca_config_file)
|
||||||
$(OPENSSL) ca -gencrl -batch -cert $(test_ca_crt) -keyfile $(test_ca_key_file_rsa) -key $(test_ca_pwd_rsa) -config $(test_ca_server1_config_file) -md sha1 -crldays 3653 -out $@
|
$(OPENSSL) ca -gencrl -batch -cert $(test_ca_crt) -keyfile $(test_ca_key_file_rsa) -key $(test_ca_pwd_rsa) -config $(test_ca_server1_config_file) -md sha1 -crldays 3653 -out $@
|
||||||
|
|
||||||
crl-futureRevocationDate.pem: $(test_ca_crt) $(test_ca_key_file_rsa) $(test_ca_config_file) test-ca.server1.future-crl.db test-ca.server1.future-crl.opensslconf
|
crl-futureRevocationDate.pem: $(test_ca_crt) $(test_ca_key_file_rsa) \
|
||||||
$(FAKETIME) '2028-12-31' $(OPENSSL) ca -gencrl -config test-ca.server1.future-crl.opensslconf -crldays 365 -passin "pass:$(test_ca_pwd_rsa)" -out $@
|
$(test_ca_config_file) \
|
||||||
|
test-ca.server1.future-crl.db \
|
||||||
|
test-ca.server1.future-crl.opensslconf
|
||||||
|
$(FAKETIME) -f '+10y' $(OPENSSL) ca -gencrl \
|
||||||
|
-config test-ca.server1.future-crl.opensslconf -crldays 365 \
|
||||||
|
-passin "pass:$(test_ca_pwd_rsa)" -out $@
|
||||||
|
|
||||||
server1_all: crl.pem crl-futureRevocationDate.pem server1.crt server1.noauthid.crt server1.crt.openssl server1.v1.crt server1.v1.crt.openssl server1.key_usage.crt server1.key_usage_noauthid.crt server1.key_usage.crt.openssl server1.cert_type.crt server1.cert_type_noauthid.crt server1.cert_type.crt.openssl server1.der server1.der.openssl server1.v1.der server1.v1.der.openssl server1.key_usage.der server1.key_usage.der.openssl server1.cert_type.der server1.cert_type.der.openssl
|
server1_all: crl.pem crl-futureRevocationDate.pem server1.crt server1.noauthid.crt server1.crt.openssl server1.v1.crt server1.v1.crt.openssl server1.key_usage.crt server1.key_usage_noauthid.crt server1.key_usage.crt.openssl server1.cert_type.crt server1.cert_type_noauthid.crt server1.cert_type.crt.openssl server1.der server1.der.openssl server1.v1.der server1.v1.der.openssl server1.key_usage.der server1.key_usage.der.openssl server1.cert_type.der server1.cert_type.der.openssl
|
||||||
|
|
||||||
|
@ -1563,6 +1720,25 @@ server2-sha256.crt: server2.req.sha256
|
||||||
$(MBEDTLS_CERT_WRITE) request_file=server2.req.sha256 serial=2 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) not_before=20190210144406 not_after=20290210144406 md=SHA256 version=3 output_file=$@
|
$(MBEDTLS_CERT_WRITE) request_file=server2.req.sha256 serial=2 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) not_before=20190210144406 not_after=20290210144406 md=SHA256 version=3 output_file=$@
|
||||||
all_final += server2-sha256.crt
|
all_final += server2-sha256.crt
|
||||||
|
|
||||||
|
server2.ku-ka.crt: SERVER2_CRT_SERIAL=42
|
||||||
|
server2.ku-ka.crt: SERVER2_KEY_USAGE=key_agreement
|
||||||
|
server2.ku-ke.crt: SERVER2_CRT_SERIAL=43
|
||||||
|
server2.ku-ke.crt: SERVER2_KEY_USAGE=key_encipherment
|
||||||
|
server2.ku-ds.crt: SERVER2_CRT_SERIAL=44
|
||||||
|
server2.ku-ds.crt: SERVER2_KEY_USAGE=digital_signature
|
||||||
|
server2.ku-ds_ke.crt: SERVER2_CRT_SERIAL=48
|
||||||
|
server2.ku-ds_ke.crt: SERVER2_KEY_USAGE=digital_signature,key_encipherment
|
||||||
|
server2.ku-%.crt: server2.req.sha256
|
||||||
|
$(MBEDTLS_CERT_WRITE) request_file=server2.req.sha256 serial=$(SERVER2_CRT_SERIAL) \
|
||||||
|
issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) \
|
||||||
|
key_usage="$(SERVER2_KEY_USAGE)" \
|
||||||
|
not_before=20190210144406 not_after=20290210144406 md=SHA1 version=3 output_file=$@
|
||||||
|
all_final += server2.ku-ka.crt server2.ku-ke.crt server2.ku-ds.crt server2.ku-ds_ke.crt
|
||||||
|
|
||||||
|
server2-badsign.crt: server2.crt
|
||||||
|
{ head -n-2 $<; tail -n-2 $< | sed -e '1s/0\(=*\)$$/_\1/' -e '1s/[^_=]\(=*\)$$/0\1/' -e '1s/_/1/'; } > $@
|
||||||
|
all_final += server2-badsign.crt
|
||||||
|
|
||||||
# server3*
|
# server3*
|
||||||
|
|
||||||
parse_input/server3.crt server3.crt: server3.key
|
parse_input/server3.crt server3.crt: server3.key
|
||||||
|
@ -1819,6 +1995,41 @@ pkcs7_data_cert_signeddata_sha256.der: pkcs7_data_cert_signed_sha256.der
|
||||||
dd if=pkcs7_data_cert_signed_sha256.der of=$@ skip=19 bs=1
|
dd if=pkcs7_data_cert_signed_sha256.der of=$@ skip=19 bs=1
|
||||||
all_final += pkcs7_data_cert_signeddata_sha256.der
|
all_final += pkcs7_data_cert_signeddata_sha256.der
|
||||||
|
|
||||||
|
# - test-ca-v1.crt: v1 "CA", signs
|
||||||
|
# server1-v1.crt: v1 "intermediate CA", signs
|
||||||
|
# server2-v1*.crt: EE cert (without of with chain in same file)
|
||||||
|
|
||||||
|
test-ca-v1.crt: $(test_ca_key_file_rsa) test-ca.req.sha256
|
||||||
|
$(MBEDTLS_CERT_WRITE) is_ca=1 serial_hex=53a2b68e05400e555c9395e5 \
|
||||||
|
request_file=test-ca.req.sha256 \
|
||||||
|
selfsign=1 issuer_name="CN=PolarSSL Test CA v1,OU=testing,O=PolarSSL,C=NL" \
|
||||||
|
issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) \
|
||||||
|
not_before=20190210144400 not_after=20290210144400 md=SHA256 version=1 \
|
||||||
|
output_file=$@
|
||||||
|
all_final += test-ca-v1.crt
|
||||||
|
|
||||||
|
server1-v1.crt: server1.key test-ca-v1.crt
|
||||||
|
$(MBEDTLS_CERT_WRITE) subject_key=$< serial_hex=53a2b6c704cd4d8ebc800bc1\
|
||||||
|
subject_name="CN=server1/int-ca-v1,OU=testing,O=PolarSSL,C=NL" \
|
||||||
|
issuer_crt=test-ca-v1.crt issuer_key=$(test_ca_key_file_rsa) \
|
||||||
|
issuer_pwd=$(test_ca_pwd_rsa) \
|
||||||
|
not_before=20190210144406 not_after=20290210144406 \
|
||||||
|
md=SHA256 version=1 \
|
||||||
|
output_file=$@
|
||||||
|
all_final += server1-v1.crt
|
||||||
|
|
||||||
|
server2-v1.crt: server2.key server1-v1.crt
|
||||||
|
$(MBEDTLS_CERT_WRITE) subject_key=$< serial_hex=53a2b6d9235dbc4573f9b76c\
|
||||||
|
subject_name="CN=server2,OU=testing,O=PolarSSL,C=NL" \
|
||||||
|
issuer_crt=server1-v1.crt issuer_key=server1.key \
|
||||||
|
not_before=20190210144406 not_after=20290210144406 \
|
||||||
|
md=SHA256 version=1 \
|
||||||
|
output_file=$@
|
||||||
|
all_final += server2-v1.crt
|
||||||
|
|
||||||
|
server2-v1-chain.crt: server2-v1.crt server1-v1.crt
|
||||||
|
cat $^ > $@
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
#### Generate C format test certs header
|
#### Generate C format test certs header
|
||||||
################################################################
|
################################################################
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB/TCCAWagAwIBAgIJAPfGf/jpqWP5MA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNV
|
MIICfjCCAWagAwIBAgIJAPfGf/jpqWP5MA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNV
|
||||||
BAYTAk5MMB4XDTE0MDEyMjEwMDQzM1oXDTI0MDEyMjEwMDQzM1owDTELMAkGA1UE
|
BAYTAk5MMB4XDTIzMDUxODAyMDUwMVoXDTMzMDUxODAyMDUwMVowDTELMAkGA1UE
|
||||||
BhMCTkwwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN0Rip+ZurBoyirqO2pt
|
BhMCTkwwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMc4ksXD9HAQCGv4EzXs
|
||||||
WZftTslU5A3uzqB9oB6q6A7CuxNA24oSjokTJKXF9frY9ZDXyMrLxf6THa/aEiNz
|
8wEciiUPlYI2HqoelhJVGqz4e3UzC3BXM5zZlfFNTEQ3yL7EoD/kZDzT88kCQz3D
|
||||||
UnlGGrqgVyt2FjGzqK/nOJsIi2OZOgol7kXSGFi6uZMa7dRYmmMbN/z3FAifhWVJ
|
fFuOeaoJhK6CEzcKv4VpvSo1Ymyx/uSs4EKyQXx75J0nFJssB2uOQz0/bHY6Rpoc
|
||||||
81kybdHg6G3eUu1mtKkL2kCVAgMBAAGjZTBjMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
cA0lnbwIx0D82AI3Yv996/wtAgMBAAGjZTBjMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
||||||
AgXgMEkGA1UdEQRCMECCHHd3dy5zaG90b2thbi1icmF1bnNjaHdlaWcuZGWCFHd3
|
AgXgMEkGA1UdEQRCMECCHHd3dy5zaG90b2thbi1icmF1bnNjaHdlaWcuZGWCFHd3
|
||||||
dy5tYXNzaW1vLWFiYXRlLmV1hwTAqAEBhwTAqEWQMA0GCSqGSIb3DQEBBQUAA4GB
|
dy5tYXNzaW1vLWFiYXRlLmV1hwTAqAEBhwTAqEWQMA0GCSqGSIb3DQEBBQUAA4IB
|
||||||
ABjx1ytrqCyFC5/0cjWnbLK9vsvLny2ZikDewfRxqJ5zAxGWLqHOr1SmUmu2DrvB
|
AQAuomKlMLwSkP3zvGuA9awDdITM/uCzfd77yi60zMNtFHDMu2YZ2npQSl0czab6
|
||||||
bkT9g5z19+iMhPnzJz1x7Q2m7WTIJTuUPK+hKZJATDLNhZ86h5Nkw8k9YzKcOrPm
|
/8fX9goaU8V3cx4KXSLMx7i9AsP1r559Uo3c/4oTZd3xBsElMAn/TXiuujZ2RwdL
|
||||||
EIqsy55CSgLU0ntljqSBvSb4ifrF1NnIWej2lSfN6r+3
|
RcMOJerlThOE0dtNdniJj7lPaan70CELP/CUn8KgeWgztQJj4ghfUwnLn6RnpLfl
|
||||||
|
YyM/Xq2YbwnQWHXSe3CPTy5RCWalt3SgZf6IDcD6CNq1Q2l14iR78OWnlxGTFmjP
|
||||||
|
ez3OzxNT2BZz0AiP0WvTbUtvfuxw9G3fHHe5ClsAopIA3tD246jHOAlqAnOEBC/x
|
||||||
|
IABbWjY/briP9U4R6x+mg2ck
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
-----BEGIN X509 CRL-----
|
-----BEGIN X509 CRL-----
|
||||||
MIICJDCCAQYCAQEwEwYJKoZIhvcNAQEKMAaiBAICAOowOzELMAkGA1UEBhMCTkwx
|
MIICJDCCAQYCAQEwEwYJKoZIhvcNAQEKMAaiBAICAOowOzELMAkGA1UEBhMCTkwx
|
||||||
ETAPBgNVBAoTCFBvbGFyU1NMMRkwFwYDVQQDExBQb2xhclNTTCBUZXN0IENBFw0x
|
ETAPBgNVBAoMCFBvbGFyU1NMMRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBFw0y
|
||||||
NDAxMjAxMzQ2MzVaFw0yNDAxMTgxMzQ2MzVaMCgwEgIBChcNMTMwOTI0MTYyODM4
|
MzA1MTcwODA3NDlaFw0zMzA1MTcwODA3NDlaMCgwEgIBChcNMjMwNTE3MDgwNzQ5
|
||||||
WjASAgEWFw0xNDAxMjAxMzQzMDVaoGcwZTBjBgNVHSMEXDBagBS0WuSls97SUva5
|
WjASAgEWFw0yMzA1MTcwODA3NDlaoGcwZTBjBgNVHSMEXDBagBS0WuSls97SUva5
|
||||||
1aaVD+s+vMf9/6E/pD0wOzELMAkGA1UEBhMCTkwxETAPBgNVBAoTCFBvbGFyU1NM
|
1aaVD+s+vMf9/6E/pD0wOzELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NM
|
||||||
MRkwFwYDVQQDExBQb2xhclNTTCBUZXN0IENBggEAMBMGCSqGSIb3DQEBCjAGogQC
|
MRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBggEDMBMGCSqGSIb3DQEBCjAGogQC
|
||||||
AgDqA4IBAQB8ZBX0BEgRcx0lfk1ctELRu1AYoJ5BnsmQpq23Ca4YIP2yb2kTN1ZS
|
AgDqA4IBAQCMUepEfAXs1G3hDE7rcIPT/AFv/oLQSVwRE8O2G5r4j0CgzN6CSGNi
|
||||||
4fR4SgYcNctgo2JJiNiUkCu1ZnRUOJUy8UlEio0+aeumTNz6CbeJEDhr5NC3oiV0
|
8qfFVX6f7ds+QM4pxAXk5FH4QJJkev0ZBQxmA/ZDLEFmmCEfPMsA69nG//Xeq+Xz
|
||||||
MzvLn9rJVLPetOT9UrvvIy8iz5Pn1d8mu5rkt9BKQRq9NQx8riKnSIoTc91NLCMo
|
ZOqJpAewmXoP2UUxV5rRpAIr9g9NvDkTT012eQEpoGkJlpxOln1VW+Dk24PCZFWf
|
||||||
mkCCB55DVbazODSWK19e6yQ0JS454RglOsqRtLJ/EDbi6lCsLXotFt3GEGMrob1O
|
Nf8GMUzUsXfXm7ZdCeuc8ZDYNma0nWAMR9Jw6qaEhyH4Fd/scFvXiF/i4cpVp8Rk
|
||||||
7Qck1Z59boaHxGYFEVnx90+4M3/qikVtwZdcBjLEmfuwYvszFw8J2y6Xwmg/HtUa
|
M71wSrCC0pkFzw4/bYMnf0aHle/lNg5e78SAT+/6PA8pXL7Urc0IufOfxCGwqY27
|
||||||
y6li0JzWNHtkKUlCv2+SESZbD3NU8GQY
|
IXSTrZJj4WeQMk289pIccMHj5DUSo4u0
|
||||||
-----END X509 CRL-----
|
-----END X509 CRL-----
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
-----BEGIN X509 CRL-----
|
-----BEGIN X509 CRL-----
|
||||||
MIICJDCCAQYCAQEwEwYJKoZIhvcNAQEKMAaiBAICAOowOzELMAkGA1UEBhMCTkwx
|
MIICJDCCAQYCAQEwEwYJKoZIhvcNAQEKMAaiBAICAOowOzELMAkGA1UEBhMCTkwx
|
||||||
ETAPBgNVBAoTCFBvbGFyU1NMMRkwFwYDVQQDExBQb2xhclNTTCBUZXN0IENBFw0x
|
ETAPBgNVBAoMCFBvbGFyU1NMMRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBFw0y
|
||||||
NDAxMjAxMzQ2MzVaFw0yNDAxMTgxMzQ2MzVaMCgwEgIBChcNMTMwOTI0MTYyODM4
|
MzA1MTcwODA3NDlaFw0zMzA1MTcwODA3NDlaMCgwEgIBChcNMjMwNTE3MDgwNzQ5
|
||||||
WjASAgEWFw0xNDAxMjAxMzQzMDVaoGcwZTBjBgNVHSMEXDBagBS0WuSls97SUva5
|
WjASAgEWFw0yMzA1MTcwODA3NDlaoGcwZTBjBgNVHSMEXDBagBS0WuSls97SUva5
|
||||||
1aaVD+s+vMf9/6E/pD0wOzELMAkGA1UEBhMCTkwxETAPBgNVBAoTCFBvbGFyU1NM
|
1aaVD+s+vMf9/6E/pD0wOzELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NM
|
||||||
MRkwFwYDVQQDExBQb2xhclNTTCBUZXN0IENBggEAMBMGCSqGSIb3DQEBCjAGogQC
|
MRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBggEDMBMGCSqGSIb3DQEBCjAGogQC
|
||||||
AgDqA4IBAQB8ZBX0BEgRcx0lfk1ctELRu1AYoJ5BnsmQpq23Ca4YIP2yb2kTN1ZS
|
AgDqA4IBAQCMUepEfAXs1G3hDE7rcIPT/AFv/oLQSVwRE8O2G5r4j0CgzN6CSGNi
|
||||||
4fR4SgYcNctgo2JJiNiUkCu1ZnRUOJUy8UlEio0+aeumTNz6CbeJEDhr5NC3oiV0
|
8qfFVX6f7ds+QM4pxAXk5FH4QJJkev0ZBQxmA/ZDLEFmmCEfPMsA69nG//Xeq+Xz
|
||||||
MzvLn9rJVLPetOT9UrvvIy8iz5Pn1d8mu5rkt9BKQRq9NQx8riKnSIoTc91NLCMo
|
ZOqJpAewmXoP2UUxV5rRpAIr9g9NvDkTT012eQEpoGkJlpxOln1VW+Dk24PCZFWf
|
||||||
mkCCB55DVbazODSWK19e6yQ0JS454RglOsqRtLJ/EDbi6lCsLXotFt3GEGMrob1O
|
Nf8GMUzUsXfXm7ZdCeuc8ZDYNma0nWAMR9Jw6qaEhyH4Fd/scFvXiF/i4cpVp8Rk
|
||||||
7Qck1Z59boaHxGYFEVnx90+4M3/qikVtwZdcBjLEmfuwYvszFw8J2y6Xwmg/HtUa
|
M71wSrCC0pkFzw4/bYMnf0aHle/lNg5e78SAT+/6PA8pXL7Urc0IufOfxCGwqY27
|
||||||
y6li0JzWNHtkKUlCv2+SESZbD3NU8GQZ
|
IXSTrZJj4WeQMk289pIccMHj5DUSo4uO
|
||||||
-----END X509 CRL-----
|
-----END X509 CRL-----
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
-----BEGIN X509 CRL-----
|
-----BEGIN X509 CRL-----
|
||||||
MIICejCCATECAQEwPgYJKoZIhvcNAQEKMDGgDTALBglghkgBZQMEAgShGjAYBgkq
|
MIICgjCCATUCAQEwQgYJKoZIhvcNAQEKMDWgDzANBglghkgBZQMEAgQFAKEcMBoG
|
||||||
hkiG9w0BAQgwCwYJYIZIAWUDBAIEogQCAgDiMDsxCzAJBgNVBAYTAk5MMREwDwYD
|
CSqGSIb3DQEBCDANBglghkgBZQMEAgQFAKIEAgIA4jA7MQswCQYDVQQGEwJOTDER
|
||||||
VQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVzdCBDQRcNMTQwMTIw
|
MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EXDTIz
|
||||||
MTM1NjA2WhcNMjQwMTE4MTM1NjA2WjAoMBICAQoXDTEzMDkyNDE2MjgzOFowEgIB
|
MDUxNzA4MDc0OVoXDTMzMDUxNzA4MDc0OVowKDASAgEKFw0yMzA1MTcwODA3NDla
|
||||||
FhcNMTQwMTIwMTM0MzA1WqBnMGUwYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/r
|
MBICARYXDTIzMDUxNzA4MDc0OVqgZzBlMGMGA1UdIwRcMFqAFLRa5KWz3tJS9rnV
|
||||||
PrzH/f+hP6Q9MDsxCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcG
|
ppUP6z68x/3/oT+kPTA7MQswCQYDVQQGEwJOTDERMA8GA1UECgwIUG9sYXJTU0wx
|
||||||
A1UEAxMQUG9sYXJTU0wgVGVzdCBDQYIBADA+BgkqhkiG9w0BAQowMaANMAsGCWCG
|
GTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0GCAQMwQgYJKoZIhvcNAQEKMDWgDzAN
|
||||||
SAFlAwQCBKEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgSiBAICAOIDggEBAEJI
|
BglghkgBZQMEAgQFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgQFAKIEAgIA
|
||||||
i9sQOzMvvOTksN48+X+kk/wkLMKRGI222lqU6y6tP1LX3OE/+KN8gPXR+lCC+e0v
|
4gOCAQEANsElK5qMavcgBXsqgysCIIwEPj+dXdBOwXW17HWh2jcSwAssFNRxhiIc
|
||||||
TsRTJkpKEcmHZoP/8kOtZnLb9PdITKGMQnZ+dmn5MFEzZI/zyrYWuJTuK1Q83w0e
|
PoUjj2fNlbOWXLPoxXBitgkJ31UAYCteGSv3j5P3WEuriVwCG889JEoMWn9U4+f9
|
||||||
Mc88cAhu8i4PTk/WnsWDphK1Q2YRupmmwWSUpp1Z2rpR+YSCedC01TVrtSUJUBw9
|
f5jSVNfynyiAOiwpA0TrOhZOAs9SEj742S1pzhsb9yaOXeQXNnDv8HYe3uX9/D9w
|
||||||
NSqKDhyWYJIbS6/bFaERswC8xlMRhyLHUvikjmAK36TbIdhTnEffHOPW75sEOEEB
|
ynot+/EwCYEuvK8XQ6qnV6588NHEAd9x+OcV9pxWrmUE8Muz1KffBwD5+SOW+Taj
|
||||||
f0A3VtlZ7y5yt2/a6vOauJCivxKt/PutdHfBqH43QQmoVLWC2FmT9ADTJwcsZB3D
|
4fKQPcKJoRXOKyLXpOz7yMl/6fCf6h3Qj/H4YI/2gsWI0iduKoXDsuQkMEdPTZvk
|
||||||
a6JSqCIMRCQY2JOUn0A=
|
7P88YK3/4MReaZS3sDyhhUrojELPXw==
|
||||||
-----END X509 CRL-----
|
-----END X509 CRL-----
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
-----BEGIN X509 CRL-----
|
-----BEGIN X509 CRL-----
|
||||||
MIICejCCATECAQEwPgYJKoZIhvcNAQEKMDGgDTALBglghkgBZQMEAgGhGjAYBgkq
|
MIICgjCCATUCAQEwQgYJKoZIhvcNAQEKMDWgDzANBglghkgBZQMEAgEFAKEcMBoG
|
||||||
hkiG9w0BAQgwCwYJYIZIAWUDBAIBogQCAgDeMDsxCzAJBgNVBAYTAk5MMREwDwYD
|
CSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIEAgIA3jA7MQswCQYDVQQGEwJOTDER
|
||||||
VQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVzdCBDQRcNMTQwMTIw
|
MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EXDTIz
|
||||||
MTM1NjE2WhcNMjQwMTE4MTM1NjE2WjAoMBICAQoXDTEzMDkyNDE2MjgzOFowEgIB
|
MDUxNzA4MDc0OVoXDTMzMDUxNzA4MDc0OVowKDASAgEKFw0yMzA1MTcwODA3NDla
|
||||||
FhcNMTQwMTIwMTM0MzA1WqBnMGUwYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/r
|
MBICARYXDTIzMDUxNzA4MDc0OVqgZzBlMGMGA1UdIwRcMFqAFLRa5KWz3tJS9rnV
|
||||||
PrzH/f+hP6Q9MDsxCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcG
|
ppUP6z68x/3/oT+kPTA7MQswCQYDVQQGEwJOTDERMA8GA1UECgwIUG9sYXJTU0wx
|
||||||
A1UEAxMQUG9sYXJTU0wgVGVzdCBDQYIBADA+BgkqhkiG9w0BAQowMaANMAsGCWCG
|
GTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0GCAQMwQgYJKoZIhvcNAQEKMDWgDzAN
|
||||||
SAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiBAICAN4DggEBAEZ4
|
BglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIEAgIA
|
||||||
oqp9i5eXrN6aCSTaU1j07MVTFW/U1jQAq6GseB6bEvoEXFMUHJsgAObqCK9flfEC
|
3gOCAQEAHLzvRF0RVQL48ZGVFnTk1nsOHXVHS0UVMItsILurXJ4XrOgN1I7iTzu2
|
||||||
FEqXqWSo33hhPU7AKKttbDLjUYRNnQAPRUnRIl1/a1+UjqgKchWWD9ityeW8ICxo
|
wYNtgr+T15jwsPdgU+Gg3127vb2Djm0IUX0dCfYpSFRUv8BjaK962ZPjM0rkWhC6
|
||||||
IdATX9reYmPDLIMqTC7zuflYkvrvdEOuBORQP5mn4j8t84MSQF/p4qzaU0XxLo4X
|
JUTWSLMAMy4ScqcoC7e4vuN2h4kPOzlvDBIhzWKA03+taAtuIOWjXZu2/Cyeggxs
|
||||||
ckzZCcHpa45AApCDjJMd9onhFVCYsykiYrF9NQFO8TI4lQ5jv79GoufEzvhY1SPB
|
oXARKI8BEv4b94xwiFJMoMuzcYAkuDIH4MRYANVgOS/zncCRS9D5ZerfoBt70LKX
|
||||||
r1xz4sMpfyaoPaa3SM2/nD65E5jzXell2u2VWNGKv4zAQP0E5yGel+1rklBltadb
|
nzJtT4a0XoxbUJeU8MZ0fR5aAHUQulAPA9CMmBsHkSx7pzAAhCwx/vXbnWPyhA6G
|
||||||
XLdJyyak33CLBKu+nJc=
|
XG6gCKcDR5PZQvQNgi29SLlhRTT5TA==
|
||||||
-----END X509 CRL-----
|
-----END X509 CRL-----
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
-----BEGIN X509 CRL-----
|
-----BEGIN X509 CRL-----
|
||||||
MIICejCCATECAQEwPgYJKoZIhvcNAQEKMDGgDTALBglghkgBZQMEAgKhGjAYBgkq
|
MIICgjCCATUCAQEwQgYJKoZIhvcNAQEKMDWgDzANBglghkgBZQMEAgIFAKEcMBoG
|
||||||
hkiG9w0BAQgwCwYJYIZIAWUDBAICogQCAgDOMDsxCzAJBgNVBAYTAk5MMREwDwYD
|
CSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIEAgIAzjA7MQswCQYDVQQGEwJOTDER
|
||||||
VQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVzdCBDQRcNMTQwMTIw
|
MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EXDTIz
|
||||||
MTM1NjI4WhcNMjQwMTE4MTM1NjI4WjAoMBICAQoXDTEzMDkyNDE2MjgzOFowEgIB
|
MDUxNzA4MDc1MFoXDTMzMDUxNzA4MDc1MFowKDASAgEKFw0yMzA1MTcwODA3NTBa
|
||||||
FhcNMTQwMTIwMTM0MzA1WqBnMGUwYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/r
|
MBICARYXDTIzMDUxNzA4MDc1MFqgZzBlMGMGA1UdIwRcMFqAFLRa5KWz3tJS9rnV
|
||||||
PrzH/f+hP6Q9MDsxCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcG
|
ppUP6z68x/3/oT+kPTA7MQswCQYDVQQGEwJOTDERMA8GA1UECgwIUG9sYXJTU0wx
|
||||||
A1UEAxMQUG9sYXJTU0wgVGVzdCBDQYIBADA+BgkqhkiG9w0BAQowMaANMAsGCWCG
|
GTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0GCAQMwQgYJKoZIhvcNAQEKMDWgDzAN
|
||||||
SAFlAwQCAqEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgKiBAICAM4DggEBAAco
|
BglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIEAgIA
|
||||||
SntUGDLBOAu0IIZaVea5Nt1NMsMcppC0hWPuH1LKAwyUODBqpT+0+AuALK0eIdYR
|
zgOCAQEAnZvMo3nmKXPV+q4m1CdMA7jUtdanJBHDAv2+LZLq4T1QpyN+nmLEB1yX
|
||||||
a7mAB+cv2fFwmwxnQWJ1Fvx4ft/N2AAfB83VRKpSo3xR8bxloHfTWKmyxJHmH9j1
|
ARN8/5Px47zm7XyZw6HI1Il34MjblAKIPBVXoswj4YLRceijwiG1bxkh1Kz3lcV0
|
||||||
EYmLS86rj3Nhjf4m/YlQQ3Im5HwOgSgBOE8glq5D+0Wmsi9LsNEZXEzMw7TMUgbs
|
GCNPNo7tMPii9iATWlVzWBCzx2rLmt/ys0DtNRCMISOYGW1HkyuO28dwA6nUJwSS
|
||||||
y9o/ghYF/shKU4mewK3DeM9gQiTcH5A4ISXR87hBQ08AKJRAG1CLvTyzqWiUUY+k
|
Ddjr3iilavnBdpzddH9AiN5Fm0sfrFBANx79Qyp0/r8hqrv7rT33maeRKj3S4e9G
|
||||||
q8iZDYF17sHrPi2yn8q9c4zdxiaWDGDdL0Lh90wXGTAageoGEq25TMuL5FpX+u1u
|
zpO6uHPAh9Obo93DxpKpXoMwxDiHv+bwHPO4J1YOiryy/KZmHhzUMPfvP09pGg9f
|
||||||
KUH/xf1jEnNzbYNGiZw=
|
zGO/bOyiHGH0Lf4F9JVMxpfitdbtwg==
|
||||||
-----END X509 CRL-----
|
-----END X509 CRL-----
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
-----BEGIN X509 CRL-----
|
-----BEGIN X509 CRL-----
|
||||||
MIICejCCATECAQEwPgYJKoZIhvcNAQEKMDGgDTALBglghkgBZQMEAgOhGjAYBgkq
|
MIICgjCCATUCAQEwQgYJKoZIhvcNAQEKMDWgDzANBglghkgBZQMEAgMFAKEcMBoG
|
||||||
hkiG9w0BAQgwCwYJYIZIAWUDBAIDogQCAgC+MDsxCzAJBgNVBAYTAk5MMREwDwYD
|
CSqGSIb3DQEBCDANBglghkgBZQMEAgMFAKIEAgIAvjA7MQswCQYDVQQGEwJOTDER
|
||||||
VQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVzdCBDQRcNMTQwMTIw
|
MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EXDTIz
|
||||||
MTM1NjM4WhcNMjQwMTE4MTM1NjM4WjAoMBICAQoXDTEzMDkyNDE2MjgzOFowEgIB
|
MDUxNzA4MDc1MFoXDTMzMDUxNzA4MDc1MFowKDASAgEKFw0yMzA1MTcwODA3NTBa
|
||||||
FhcNMTQwMTIwMTM0MzA1WqBnMGUwYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/r
|
MBICARYXDTIzMDUxNzA4MDc1MFqgZzBlMGMGA1UdIwRcMFqAFLRa5KWz3tJS9rnV
|
||||||
PrzH/f+hP6Q9MDsxCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcG
|
ppUP6z68x/3/oT+kPTA7MQswCQYDVQQGEwJOTDERMA8GA1UECgwIUG9sYXJTU0wx
|
||||||
A1UEAxMQUG9sYXJTU0wgVGVzdCBDQYIBADA+BgkqhkiG9w0BAQowMaANMAsGCWCG
|
GTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0GCAQMwQgYJKoZIhvcNAQEKMDWgDzAN
|
||||||
SAFlAwQCA6EaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgOiBAICAL4DggEBAB9F
|
BglghkgBZQMEAgMFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgMFAKIEAgIA
|
||||||
ywBfxOjetxNbCFhOYoPY2jvFCFVdlowMGuxEhX/LktqiBXqRc2r5naQSzuHqO8Iq
|
vgOCAQEAtMPpQMet9BfMRLg0AW9QfL3QkktV7xk++BqYFOYynBiqxjQH4AKu3wU8
|
||||||
1zACtiDLri0CvgSHlravBNeY4c2wj//ueFE89tY5pK9E6vZp7cV+RfMx2YfGPAA2
|
eiGd3+2xNpQd2/sG7UUNo1Vnl9gCHRiT4bje6+CdvvqaZKSgpmsiztbgBAYORriF
|
||||||
t7tWZ2rJWzELg8cZ8hpjSwFH7JmgJzjE5gi2gADhBYO6Vv5S3SOgqNjiN1OM31AU
|
flKOKOOQTxaikqJ4t7vp727JmstADuyizTgOBE0k3V1glas8B0G122YheeHF02S4
|
||||||
p6GHK5Y1jurF5Zwzs+w3wXoXgpOxxwEC4eiS86c9kNSudwTLvDTU0bYEQE1cF+K0
|
+33Nss4hbfbTilR0RccOaqiXzF9bkFsTlD5KgyUFZbFtdy+1zHZLnRUAJA1HmDeP
|
||||||
sB8QWABFJfuO5kjD2w3rWgmAiOKsZoxd1xrda+WD3JhDXnoVq3oVBIVlWVz6YID8
|
r5p2mJxKwXmZzLnw/FPa8fUH665TKYk08AuIpN+VHdPwiBoYHJ2YZJWgM+1qHq1y
|
||||||
enMfMvwScA5AImzu9xA=
|
tlyoAOC6beqsh9OfxcQZaEiWbUI9yQ==
|
||||||
-----END X509 CRL-----
|
-----END X509 CRL-----
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
CnEgazC2RJ3kYg3mP/QhE0US
|
||||||
ZO3yPu5hu3BhAQYavK4Yyfi9IQmubBqxopPwyzjG1HPw2lj+oapH0w==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,38 +1,38 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
o38d1wQHw5+bO+YDqdfIdQXguU5mtS1xAw==
|
VA+fctBdN0CW4jo+qkOif0l/F8Az
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
o38d1wQHw5+bO+YDqdfIdQXguU5mtS1xAw==
|
VA+fctBdN0CW4jo+qkOif0l/F8Az
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
SdLMa+ns3odRhF0IvENDhz/mKZJvwtoz/NBz
|
||||||
ongaQQVQwS6/GJ6A5V8ecaUvFrTby1h9+2sOW8n2NRGiaaG5gkvxVeayemcmOQ==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
ESvXwHI0Fu8s/PJ+leD28CRJQMuAOJIYBMnS
|
||||||
sYDyD/ZyIlavoPSEiD3LTT/Tp6BIpz+zb4WHOHLEvUCsZputqxPVcNoEAi9xuA==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
vXxv47xT9L+pWtiTosBmsy/ewvWprVJIxLh3
|
||||||
qs2nyBW5RBu8MBCBU1DpqOSo6jl0QTpuq3NzQZIouG9fyckqDJS5ibrxQTutPw==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIDijCCAnKgAwIBAgIBKzANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER
|
MIIDRzCCAi+gAwIBAgIBKzANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER
|
||||||
MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN
|
MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN
|
||||||
MTQwNDA5MDg0NDM5WhcNMjQwNDA2MDg0NDM5WjA0MQswCQYDVQQGEwJOTDERMA8G
|
MTkwMjEwMTQ0NDA2WhcNMjkwMjEwMTQ0NDA2WjA0MQswCQYDVQQGEwJOTDERMA8G
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN
|
A1UECgwIUG9sYXJTU0wxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN
|
||||||
AQEBBQADggEPADCCAQoCggEBAMFNo93nzR3RBNdJcriZrA545Do8Ss86ExbQWuTN
|
AQEBBQADggEPADCCAQoCggEBAMFNo93nzR3RBNdJcriZrA545Do8Ss86ExbQWuTN
|
||||||
owCIp+4ea5anUrSQ7y1yej4kmvy2NKwk9XfgJmSMnLAofaHa6ozmyRyWvP7BBFKz
|
owCIp+4ea5anUrSQ7y1yej4kmvy2NKwk9XfgJmSMnLAofaHa6ozmyRyWvP7BBFKz
|
||||||
NtSj+uGxdtiQwWG0ZlI2oiZTqqt0Xgd9GYLbKtgfoNkNHC1JZvdbJXNG6AuKT2kM
|
NtSj+uGxdtiQwWG0ZlI2oiZTqqt0Xgd9GYLbKtgfoNkNHC1JZvdbJXNG6AuKT2kM
|
||||||
tQCQ4dqCEGZ9rlQri2V5kaHiYcPNQEkI7mgM8YuG0ka/0LiqEQMef1aoGh5EGA8P
|
tQCQ4dqCEGZ9rlQri2V5kaHiYcPNQEkI7mgM8YuG0ka/0LiqEQMef1aoGh5EGA8P
|
||||||
hYvai0Re4hjGYi/HZo36Xdh98yeJKQHFkA4/J/EwyEoO79bex8cna8cFPXrEAjya
|
hYvai0Re4hjGYi/HZo36Xdh98yeJKQHFkA4/J/EwyEoO79bex8cna8cFPXrEAjya
|
||||||
HT4P6DSYW8tzS1KW2BGiLICIaTla0w+w3lkvEcf36hIBMJcCAwEAAaOBnzCBnDAJ
|
HT4P6DSYW8tzS1KW2BGiLICIaTla0w+w3lkvEcf36hIBMJcCAwEAAaNdMFswCQYD
|
||||||
BgNVHRMEAjAAMB0GA1UdDgQWBBSlBehkuNzfYA9QEk1gqGSvTYtDkzBjBgNVHSME
|
VR0TBAIwADAdBgNVHQ4EFgQUpQXoZLjc32APUBJNYKhkr02LQ5MwHwYDVR0jBBgw
|
||||||
XDBagBS0WuSls97SUva51aaVD+s+vMf9/6E/pD0wOzELMAkGA1UEBhMCTkwxETAP
|
FoAUtFrkpbPe0lL2udWmlQ/rPrzH/f8wDgYDVR0PAQH/BAQDAgUgMA0GCSqGSIb3
|
||||||
BgNVBAoTCFBvbGFyU1NMMRkwFwYDVQQDExBQb2xhclNTTCBUZXN0IENBggEAMAsG
|
DQEBBQUAA4IBAQCeNpH2eSUXpq0CPlE6P1/bJW2f0vKFWMnZ6B3eFCdMCcKJ6LYV
|
||||||
A1UdDwQEAwIFIDANBgkqhkiG9w0BAQUFAAOCAQEAqreLAIuxeLGKbhoEROYRqXxO
|
BA1Dn5G5HEW4mBMJfyMwD5sklyEzQDCgIDjws+BRUflMr71AerfesHIGdW4jAw10
|
||||||
ndaC6uDcpxhgmEW7B2DW6ZtX8155v3ov61MuMas8fEQjD5STDP9qERxNTePnhW3m
|
aWwFMeszzZ54ZahX2GHPcwWfTccSf9tpSaRMlNBEIz8lfb2iEZ2HR9eAmAqYgtR1
|
||||||
kDZd2jUBE3ioHhTBv47i1PYU+DRe42kY6z0jUmNPK8TsTKfdbqTGXg9THe1KYB7q
|
RbYcsNfC0oBYOCTRmvXi+wpGcUWn+VbIv6rHrQYnWXiPAuPJUqIpM0x9q0kT6NCi
|
||||||
hdljqGS08IgBl/q2lK2OOSycu27xhfb9Mo0BcLBab92WgyBu+cFPQsKiL4mD7QyJ
|
LfdhaVV2DPnvBYGRcXX78JK5/MQt/sv4JSefRpvxpVQCmbo0amz7hUMHGCflAbro
|
||||||
+73Ndb21EuANUjsRDQ3NPklssJcyJB2v85eekwk1acZUG21no3wdTvjxhVE/Xrdz
|
FpyBlfcpj0lSRoaU9x0mCYzqwDYd+4NJZUGT
|
||||||
zUP9WkvAVfUrwGjUzG4YHE8wkHO7xKbKixNt+nQmDhe+tHVbztZjVwFJ8010gg==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIBzTCCAXKgAwIBAgIMU6LLSxJOrYN9qJSyMAoGCCqGSM49BAMCMEcxEzARBgNV
|
MIIBxzCCAW2gAwIBAgIMU6LLSxJOrYN9qJSyMAoGCCqGSM49BAMCMEcxEzARBgNV
|
||||||
BAMTCnNlbGZzaWduZWQxEDAOBgNVBAsTB3Rlc3RpbmcxETAPBgNVBAoTCFBvbGFy
|
BAMMCnNlbGZzaWduZWQxEDAOBgNVBAsMB3Rlc3RpbmcxETAPBgNVBAoMCFBvbGFy
|
||||||
U1NMMQswCQYDVQQGEwJOTDAiGA8yMDE0MDYxOTExMzY0M1oYDzIwMjQwNjE4MTEz
|
U1NMMQswCQYDVQQGEwJOTDAeFw0yMzA1MDkwMjQ5NTdaFw0zMzA1MDYwMjQ5NTda
|
||||||
NjQzWjBHMRMwEQYDVQQDEwpzZWxmc2lnbmVkMRAwDgYDVQQLEwd0ZXN0aW5nMREw
|
MEcxEzARBgNVBAMMCnNlbGZzaWduZWQxEDAOBgNVBAsMB3Rlc3RpbmcxETAPBgNV
|
||||||
DwYDVQQKEwhQb2xhclNTTDELMAkGA1UEBhMCTkwwWTATBgcqhkjOPQIBBggqhkjO
|
BAoMCFBvbGFyU1NMMQswCQYDVQQGEwJOTDBZMBMGByqGSM49AgEGCCqGSM49AwEH
|
||||||
PQMBBwNCAAQ3zFbZdgkeWnI+x1kt/yBu7nz5BpF00K0UtfdoIllikk7lANgjEf/q
|
A0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA2CMR/+ov0jRd
|
||||||
L9I0XV0WvYqIwmt3DVXNiioO+gHItO3/o0AwPjAMBgNVHRMBAf8EAjAAMA8GA1Ud
|
XRa9iojCa3cNVc2KKg76Aci07f+jPzA9MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/
|
||||||
DwEB/wQFAwMHgAAwHQYDVR0OBBYEFLZtURgXjmWq8uzV8wHkbFLCNB1bMAoGCCqG
|
BAQDAgeAMB0GA1UdDgQWBBRQYaWP1AfZ14IBDOVlf4xjRqcTvjAKBggqhkjOPQQD
|
||||||
SM49BAMCA0kAMEYCIQCf/bzFoge0pCOIrtHrABgc1+Cl9kjlsICpduXhdHUMOwIh
|
AgNIADBFAiAXiJxDrd5aLzGB/Uc3kYBIBuSUIMGvol2c8EvwmF3zmQIhAPFrKMgA
|
||||||
AOJ+nBHfaEGyF4PRJvn/jMDeIaH1zisinVzC2v+JQOWq
|
s2awzo/PBB5gFTkDub88wRYwS1R9JPYCXUO0
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIBlDCCATmgAwIBAgIBTTAKBggqhkjOPQQDAjBKMQswCQYDVQQGEwJVSzERMA8G
|
MIIBkzCCATmgAwIBAgIBTTAKBggqhkjOPQQDAjBKMQswCQYDVQQGEwJVSzERMA8G
|
||||||
A1UECgwIbWJlZCBUTFMxKDAmBgNVBAMMH21iZWQgVExTIFRlc3QgaW50ZXJtZWRp
|
A1UECgwIbWJlZCBUTFMxKDAmBgNVBAMMH21iZWQgVExTIFRlc3QgaW50ZXJtZWRp
|
||||||
YXRlIENBIDMwHhcNMTUwOTAxMTEwODQzWhcNMjUwODI5MTEwODQzWjBKMQswCQYD
|
YXRlIENBIDMwHhcNMjMwNTE3MDkxNDIxWhcNMzMwNTE0MDkxNDIxWjBKMQswCQYD
|
||||||
VQQGEwJVSzERMA8GA1UECgwIbWJlZCBUTFMxKDAmBgNVBAMMH21iZWQgVExTIFRl
|
VQQGEwJVSzERMA8GA1UECgwIbWJlZCBUTFMxKDAmBgNVBAMMH21iZWQgVExTIFRl
|
||||||
c3QgaW50ZXJtZWRpYXRlIENBIDMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3
|
c3QgaW50ZXJtZWRpYXRlIENBIDMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3
|
||||||
zFbZdgkeWnI+x1kt/yBu7nz5BpF00K0UtfdoIllikk7lANgjEf/qL9I0XV0WvYqI
|
zFbZdgkeWnI+x1kt/yBu7nz5BpF00K0UtfdoIllikk7lANgjEf/qL9I0XV0WvYqI
|
||||||
wmt3DVXNiioO+gHItO3/oxAwDjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0kA
|
wmt3DVXNiioO+gHItO3/oxAwDjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0gA
|
||||||
MEYCIQDBFcXh+IloVYbMiHfCFhw6cYJsj7PZXuTdDMMkNbyJNAIhALz7fBVAMYz9
|
MEUCIQD0f3GH9cEJ7cJWPIfwAL/1cGREqO//O/1XggWZv/clnQIgQmlMzGzuUDHq
|
||||||
/g48bLdYT47LOc9QNuaboLIxsq5RseJL
|
/mTgGQ9ceSAB9B9im9rcgY6DRFZULnY=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB5DCCAWmgAwIBAgIBPDAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB6zCCAW6gAwIBAgIBPDAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDEwMTcyMTIxWhcNMjQwNDA3MTcyMTIxWjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jYjBgMAkGA1UdEwQCMAAwHQYD
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NlMGMwCQYDVR0TBAIwADAd
|
||||||
VR0OBBYEFFBhpY/UB9nXggEM5WV/jGNGpxO+MB8GA1UdIwQYMBaAFJ1tICRJAT8r
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
y3i1Gbx+JMnb+zZ8MBMGA1UdJQQMMAoGCCsGAQUFBwMCMAoGCCqGSM49BAMCA2kA
|
PyvLeLUZvH4kydv7NnwwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDAYIKoZIzj0E
|
||||||
MGYCMQCzHyEvd56zm1AzfDBi3psz3rDL/m0RN2WnbRBQJxIJqjwEXOrKazko9m9q
|
AwIFAANpADBmAjEAoC1Xxg8Xt3tvM2ZER4jCRv7iSYPWGgNtcYNJj3G0lb0PYi1l
|
||||||
owgau88CMQDuI0fsq5tnyiHPaDSAE21/6hlrCR6deNbwzB94OuPIbx1wIas9D1jc
|
Nd0cqdGxydhm7RJLAjEApAE8koD1ccIPnSFTagT7shOSz1/lOU4wwAWswcwolzt3
|
||||||
//iSmKtbl8Y=
|
xrvFlMoTeJx3sS3Zqdr8
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB4zCCAWmgAwIBAgIBOjAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB6jCCAW6gAwIBAgIBOjAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDEwMTcyMDQxWhcNMjQwNDA3MTcyMDQxWjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jYjBgMAkGA1UdEwQCMAAwHQYD
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NlMGMwCQYDVR0TBAIwADAd
|
||||||
VR0OBBYEFFBhpY/UB9nXggEM5WV/jGNGpxO+MB8GA1UdIwQYMBaAFJ1tICRJAT8r
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
y3i1Gbx+JMnb+zZ8MBMGA1UdJQQMMAoGCCsGAQUFBwMDMAoGCCqGSM49BAMCA2gA
|
PyvLeLUZvH4kydv7NnwwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwDAYIKoZIzj0E
|
||||||
MGUCMQC294oVK6fUjH/abI1xzytTusi8dl7518L0Y19q8zi9K19OtxzPK09h7xyy
|
AwIFAANoADBlAjBlMU7Fh18cel20P3rY7esvtPLDHQQKWSCO91XHHkZi1zRPq2px
|
||||||
gaJRvpUCMFS6hYhrht38yqwwhSVlnmTMVtira58mEUhL6v7Qzw1sz/Dm4aXkW3s6
|
nwVHayXnOS3CPRsCMQCQDYTyVMS8oEIrm0XPI6HrbCMUq2bhPwaYpelU/asOzYI3
|
||||||
JQV1kqqbRw==
|
gOjGCDFHtyedJHVK0rs=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB6TCCAW+gAwIBAgIBOzAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB8DCCAXSgAwIBAgIBOzAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDEwMTcyMDU4WhcNMjQwNDA3MTcyMDU4WjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jaDBmMAkGA1UdEwQCMAAwHQYD
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NrMGkwCQYDVR0TBAIwADAd
|
||||||
VR0OBBYEFFBhpY/UB9nXggEM5WV/jGNGpxO+MB8GA1UdIwQYMBaAFJ1tICRJAT8r
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
y3i1Gbx+JMnb+zZ8MBkGA1UdJQQSMBAGCCsGAQUFBwMDBgRVHSUAMAoGCCqGSM49
|
PyvLeLUZvH4kydv7NnwwHAYDVR0lAQH/BBIwEAYIKwYBBQUHAwMGBFUdJQAwDAYI
|
||||||
BAMCA2gAMGUCMQCSYaq/9IKOTkzIrU/eOtpha/3af3JwT6vKh4N3cSX62ksMz0GT
|
KoZIzj0EAwIFAANoADBlAjEA89+l8gNC0H75Tzdz/75W6EjGSzZ3m50S4cK5jD6+
|
||||||
Uxmq4UGMBt4VmBkCMBGpYqof6hS1o92ltNRpDSHuVQ+nke1lOsoQ1plZp4SI+bY1
|
ZZLpRcbIqPqMT2MNkCm7ImNpAjAlTkFLVCGnTNX/q7QWOrx8aPXXAeZtY5NFxd66
|
||||||
bUD/WrUSLlwikZAeng==
|
EJJb+YHTQ80hZhLWX8/QaAJjniU=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB5DCCAWmgAwIBAgIBPjAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB6jCCAW6gAwIBAgIBPjAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDEwMTcyMTU0WhcNMjQwNDA3MTcyMTU0WjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jYjBgMAkGA1UdEwQCMAAwHQYD
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NlMGMwCQYDVR0TBAIwADAd
|
||||||
VR0OBBYEFFBhpY/UB9nXggEM5WV/jGNGpxO+MB8GA1UdIwQYMBaAFJ1tICRJAT8r
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
y3i1Gbx+JMnb+zZ8MBMGA1UdJQQMMAoGCCsGAQUFBwMBMAoGCCqGSM49BAMCA2kA
|
PyvLeLUZvH4kydv7NnwwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwDAYIKoZIzj0E
|
||||||
MGYCMQDQzjWB0xZs/8IsqJb7owYYtCiT17939Uuc/1yBF69pJRy7KV/qJlHNvlVu
|
AwIFAANoADBlAjEAh+l47FmXR/nUxD8bfnS3sT+QTgc8pXUEqh/gXUs2xINVSoL+
|
||||||
qwWVTx0CMQDNW/0dlX1gU6ashrZv5Ly4sijg/g645fFpfMKCNXysEb9xiBeEj5de
|
ZewgcNb2UanzCNheAjAnUY4b0M9YHp/eJjls5RzGX6JXtcWwn9JvO1HqMQnHthcy
|
||||||
2x5sX/0OSx4=
|
hPEQ3lW7XG0DIQS1drk=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB7DCCAXOgAwIBAgIBPTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB8zCCAXigAwIBAgIBPTAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDEwMTcyMTQyWhcNMjQwNDA3MTcyMTQyWjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jbDBqMAkGA1UdEwQCMAAwHQYD
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NvMG0wCQYDVR0TBAIwADAd
|
||||||
VR0OBBYEFFBhpY/UB9nXggEM5WV/jGNGpxO+MB8GA1UdIwQYMBaAFJ1tICRJAT8r
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
y3i1Gbx+JMnb+zZ8MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAKBggq
|
PyvLeLUZvH4kydv7NnwwIAYDVR0lAQH/BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
|
||||||
hkjOPQQDAgNnADBkAjAmQjJxxC82ZhBpH/GQkOQXDmaaV/JHRHGok1cWn3j3Xj8A
|
MAwGCCqGSM49BAMCBQADZwAwZAIwHu/xjSqHK91yEM+KgEFGU8Xc3o9rEVrCBFeW
|
||||||
fqRZkp8JihpGIMse208CMFCMdNAfNd1tv+oPuynoK5Oh6/YlASX/otJT68voEIAN
|
ChIa3slZZdG4OuIm06Tsabf0pBLHAjBYKjoUwWEuDOOQKbbJZG8gKDzMAgEpe/RW
|
||||||
SmsT1m9VPQMIyUo/3RtYjg==
|
wAjY7i6CzZ1NKfFQ9fQdwA+yjq2fnlg=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICLTCCAbKgAwIBAgIBLTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB4zCCAWagAwIBAgIBLTAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDA5MDg0ODM1WhcNMjQwNDA2MDg0ODM1WjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgaowgacwCQYDVR0TBAIwADAd
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NdMFswCQYDVR0TBAIwADAd
|
||||||
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh
|
PyvLeLUZvH4kydv7NnwwDgYDVR0PAQH/BAQDAgeAMAwGCCqGSM49BAMCBQADaQAw
|
||||||
clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAsG
|
ZgIxALHO0QR+4vz+fj4WwBQMa55oJDlp1J0PpqoJYKTf6DRx5rNuZxSbNu2wJQWz
|
||||||
A1UdDwQEAwIHgDAKBggqhkjOPQQDAgNpADBmAjEAzp4DkFMq7eDB0x5FeS9gYDaG
|
MJ9ekQIxAMPo/Rhu4e9KRkEf9rYU9Ynd7t9/PCsXw4JZuxZfToURDsrAI/Pnqc0H
|
||||||
Ol8rVnWlRTLQzHZBQjKp+TcBdHZaBPoi8LyXtWA4AjEA6OWhsuTcv/qXOscQT0rL
|
4+FA/EuPJA==
|
||||||
eEh8wcCQeJK1uNd78lNvx3W0Pcxdb6cd7AhaAKgXL+r4
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICKzCCAbKgAwIBAgIBLjAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB4jCCAWagAwIBAgIBLjAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDA5MDg0ODUwWhcNMjQwNDA2MDg0ODUwWjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgaowgacwCQYDVR0TBAIwADAd
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NdMFswCQYDVR0TBAIwADAd
|
||||||
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh
|
PyvLeLUZvH4kydv7NnwwDgYDVR0PAQH/BAQDAgMIMAwGCCqGSM49BAMCBQADaAAw
|
||||||
clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAsG
|
ZQIwCVbbPiS8MJUOz8JBmgLHojKDaJOd4lSfSak0GSl02UjT8OiNyRzA+FlFWO94
|
||||||
A1UdDwQEAwIDCDAKBggqhkjOPQQDAgNnADBkAjACzKQ88/NvngMQBFc9rC484+gO
|
YMjyAjEA14/ubZ1ZW3/0hkiFHzhTD2SXbTfYbhDZSq2PR+9sBlUrrx1GhzWw/cOD
|
||||||
BRkXP28BqRcj8sBt3EfmEGH23BuhkZuB1OFZuMICMC4/pHgbOQtaY9WZPUROUVVZ
|
3jZd4DQO
|
||||||
OuO6XsVbhiE0rb/mumqmUwuOrCtC/KFdvFZol4BNGA==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICKzCCAbKgAwIBAgIBLzAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G
|
MIIB4TCCAWagAwIBAgIBLzAMBggqhkjOPQQDAgUAMD4xCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN
|
DwYDVQQKDAhQb2xhclNTTDEcMBoGA1UEAwwTUG9sYXJzc2wgVGVzdCBFQyBDQTAe
|
||||||
MTQwNDA5MDg0OTA0WhcNMjQwNDA2MDg0OTA0WjA0MQswCQYDVQQGEwJOTDERMA8G
|
Fw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDQxCzAJBgNVBAYTAk5MMREw
|
||||||
A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG
|
DwYDVQQKDAhQb2xhclNTTDESMBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0C
|
||||||
CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA
|
AQYIKoZIzj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO
|
||||||
2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgaowgacwCQYDVR0TBAIwADAd
|
5QDYIxH/6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6NdMFswCQYDVR0TBAIwADAd
|
||||||
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB
|
BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wHwYDVR0jBBgwFoAUnW0gJEkB
|
||||||
PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh
|
PyvLeLUZvH4kydv7NnwwDgYDVR0PAQH/BAQDAgUgMAwGCCqGSM49BAMCBQADZwAw
|
||||||
clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAsG
|
ZAIwezTY0tigIg6u1dFl90LHYcZ+lJK4BO5Y6U9pn952NFo24NsL8qnG4nxwsL3M
|
||||||
A1UdDwQEAwIFIDAKBggqhkjOPQQDAgNnADBkAjAMl0Cjv9f45bHeJTul5XpYeJeT
|
VvV7AjBQ+oZyKSyNp8XRAHYC6lERH7/Gh7HrVWyTRo9iPPL6tE4x/jE7jL9ifgl+
|
||||||
52ZaOLTa/uTLy948EnEIi6sj3nFb9fvsUbsOOjECMAXAMY64KOqzixefz3y3XS/d
|
F6982sk=
|
||||||
9miyeArPOmXU2JJ3LGuNbqqj9IbABawB1OD8v8gRmg==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB8jCCAZmgAwIBAgIMU6LLWCI5lHSn7HnsMAoGCCqGSM49BAMCMEcxEzARBgNV
|
MIIB7jCCAZSgAwIBAgIMU6LLWCI5lHSn7HnsMAoGCCqGSM49BAMCMEcxEzARBgNV
|
||||||
BAMTCnNlbGZzaWduZWQxEDAOBgNVBAsTB3Rlc3RpbmcxETAPBgNVBAoTCFBvbGFy
|
BAMMCnNlbGZzaWduZWQxEDAOBgNVBAsMB3Rlc3RpbmcxETAPBgNVBAoMCFBvbGFy
|
||||||
U1NMMQswCQYDVQQGEwJOTDAiGA8yMDE0MDYxOTExMzY1NloYDzIwMjQwNjE4MTEz
|
U1NMMQswCQYDVQQGEwJOTDAeFw0yMzA1MDkwNjA2NDJaFw0zMzA1MDYwNjA2NDJa
|
||||||
NjU2WjBNMRkwFwYDVQQDExBzZWxmc2lnbmVkLWNoaWxkMRAwDgYDVQQLEwd0ZXN0
|
ME0xGTAXBgNVBAMMEHNlbGZzaWduZWQtY2hpbGQxEDAOBgNVBAsMB3Rlc3Rpbmcx
|
||||||
aW5nMREwDwYDVQQKEwhQb2xhclNTTDELMAkGA1UEBhMCTkwwWTATBgcqhkjOPQIB
|
ETAPBgNVBAoMCFBvbGFyU1NMMQswCQYDVQQGEwJOTDBZMBMGByqGSM49AgEGCCqG
|
||||||
BggqhkjOPQMBBwNCAASBWTF2SST6Fa2roDFuDu0zEfqRJVXBsMGcA3I+mLotpHI3
|
SM49AwEHA0IABIFZMXZJJPoVraugMW4O7TMR+pElVcGwwZwDcj6Yui2kcjeJH0M3
|
||||||
iR9DN40fjjrY8FfoL0/JAKT323MPssYElNFAOzjjo2EwXzAMBgNVHRMBAf8EAjAA
|
jR+OOtjwV+gvT8kApPfbcw+yxgSU0UA7OOOjYDBeMAwGA1UdEwEB/wQCMAAwDgYD
|
||||||
MA8GA1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFDxZrEo+LvwCNi/afcvLnHqyiZlT
|
VR0PAQH/BAQDAgeAMB0GA1UdDgQWBBR+ZY8+MwMU5eG+YLLghX+M52ArezAfBgNV
|
||||||
MB8GA1UdIwQYMBaAFLZtURgXjmWq8uzV8wHkbFLCNB1bMAoGCCqGSM49BAMCA0cA
|
HSMEGDAWgBRQYaWP1AfZ14IBDOVlf4xjRqcTvjAKBggqhkjOPQQDAgNIADBFAiAl
|
||||||
MEQCIAMlQ59/NW7S0hP1cu5OTD2zqT087bEmnIfOTBYfj8UFAiBBrrz2dipODVYx
|
Y2yXg5sZunmo+McUBzvSao1wRxw+9XBSM+Dph5gfhgIhAPlI+lSvD4mzlBzn01Mg
|
||||||
vvTsQmSCzjrm+JtQQoWa+cdnAG3w5g==
|
0tMpKHbY34iadcMWBUgibMiA
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
4
tests/data_files/server6-ss-child.crt.openssl.v3_ext
Normal file
4
tests/data_files/server6-ss-child.crt.openssl.v3_ext
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
basicConstraints = critical,CA:false
|
||||||
|
keyUsage=critical,digitalSignature
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
|
QcCjGyCAIg==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
|
yKuEQkKKyA==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
o4Hl/lqjwCFG
|
UYUZ4RiwG1/0
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,19 +1,18 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
09JqWv4DoLNnwg==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
|
3egYnUY/9g==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
|
a8P+xLLmug==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
|
RidkcXFMxQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
|
O1z3OQn3+w==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,99 +1,39 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
o4Hl/lqjwCEG
|
UYUZ4RiwG1/7
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
Certificate:
|
|
||||||
Data:
|
|
||||||
Version: 3 (0x2)
|
|
||||||
Serial Number: 0 (0x0)
|
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
|
||||||
Issuer: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
|
||||||
Validity
|
|
||||||
Not Before: Feb 12 14:44:00 2011 GMT
|
|
||||||
Not After : Feb 12 14:44:00 2021 GMT
|
|
||||||
Subject: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsaEncryption
|
|
||||||
RSA Public Key: (2048 bit)
|
|
||||||
Modulus (2048 bit):
|
|
||||||
00:c0:df:37:fc:17:bb:e0:96:9d:3f:86:de:96:32:
|
|
||||||
7d:44:a5:16:a0:cd:21:f1:99:d4:ec:ea:cb:7c:18:
|
|
||||||
58:08:94:a5:ec:9b:c5:8b:df:1a:1e:99:38:99:87:
|
|
||||||
1e:7b:c0:8d:39:df:38:5d:70:78:07:d3:9e:d9:93:
|
|
||||||
e8:b9:72:51:c5:ce:a3:30:52:a9:f2:e7:40:70:14:
|
|
||||||
cb:44:a2:72:0b:c2:e5:40:f9:3e:e5:a6:0e:b3:f9:
|
|
||||||
ec:4a:63:c0:b8:29:00:74:9c:57:3b:a8:a5:04:90:
|
|
||||||
71:f1:bd:83:d9:3f:d6:a5:e2:3c:2a:8f:ef:27:60:
|
|
||||||
c3:c6:9f:cb:ba:ec:60:7d:b7:e6:84:32:be:4f:fb:
|
|
||||||
58:26:22:03:5b:d4:b4:d5:fb:f5:e3:96:2e:70:c0:
|
|
||||||
e4:2e:bd:fc:2e:ee:e2:41:55:c0:34:2e:7d:24:72:
|
|
||||||
69:cb:47:b1:14:40:83:7d:67:f4:86:f6:31:ab:f1:
|
|
||||||
79:a4:b2:b5:2e:12:f9:84:17:f0:62:6f:27:3e:13:
|
|
||||||
58:b1:54:0d:21:9a:73:37:a1:30:cf:6f:92:dc:f6:
|
|
||||||
e9:fc:ac:db:2e:28:d1:7e:02:4b:23:a0:15:f2:38:
|
|
||||||
65:64:09:ea:0c:6e:8e:1b:17:a0:71:c8:b3:9b:c9:
|
|
||||||
ab:e9:c3:f2:cf:87:96:8f:80:02:32:9e:99:58:6f:
|
|
||||||
a2:d5
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
X509v3 extensions:
|
|
||||||
X509v3 Basic Constraints:
|
|
||||||
CA:TRUE
|
|
||||||
X509v3 Subject Key Identifier:
|
|
||||||
B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
|
||||||
X509v3 Authority Key Identifier:
|
|
||||||
keyid:B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
|
||||||
DirName:/C=NL/O=PolarSSL/CN=PolarSSL Test CA
|
|
||||||
serial:00
|
|
||||||
|
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
|
||||||
b8:fd:54:d8:00:54:90:8b:25:b0:27:dd:95:cd:a2:f7:84:07:
|
|
||||||
1d:87:89:4a:c4:78:11:d8:07:b5:d7:22:50:8e:48:eb:62:7a:
|
|
||||||
32:89:be:63:47:53:ff:b6:be:f1:2e:8c:54:c0:99:3f:a0:b9:
|
|
||||||
37:23:72:5f:0d:46:59:8f:d8:47:cd:97:4c:9f:07:0c:12:62:
|
|
||||||
09:3a:24:e4:36:d9:e9:2c:da:38:d0:73:75:61:d7:c1:6c:26:
|
|
||||||
8b:9b:e0:d5:dc:67:ed:8c:6b:33:d7:74:22:3c:4c:db:b5:8d:
|
|
||||||
2a:ce:2c:0d:08:59:05:09:05:a6:39:9f:b3:67:1b:e2:83:e5:
|
|
||||||
e1:8f:53:f6:67:93:c7:f9:6f:76:44:58:12:e8:3a:d4:97:e7:
|
|
||||||
e9:c0:3e:a8:7a:72:3d:87:53:1f:e5:2c:84:84:e7:9a:9e:7f:
|
|
||||||
66:d9:1f:9b:f5:13:48:b0:4d:14:d1:de:b2:24:d9:78:7d:f5:
|
|
||||||
35:cc:58:19:d1:d2:99:ef:4d:73:f8:1f:89:d4:5a:d0:52:ce:
|
|
||||||
09:f5:b1:46:51:6a:00:8e:3b:cc:6f:63:01:00:99:ed:9d:a6:
|
|
||||||
08:60:cd:32:18:d0:73:e0:58:71:d9:e5:d2:53:d7:8d:d0:ca:
|
|
||||||
e9:5d:2a:0a:0d:5d:55:ec:21:50:17:16:e6:06:4a:cd:5e:de:
|
|
||||||
f7:e0:e9:54
|
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
hlf8qotOhNvFXpEsCGwZUywayo7c4DtO
|
||||||
7Z2mCGDNMhjQc+BYcdnl0lPXjdDK6V0qCg1dVewhUBcW5gZKzV7e9+DpVA==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
o4Hl/lqjwCEG
|
UYUZ4RiwG1/7
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -41,6 +41,11 @@ DNS.3=*.example.org
|
||||||
[multiple_san]
|
[multiple_san]
|
||||||
subjectAltName=@alt_names
|
subjectAltName=@alt_names
|
||||||
|
|
||||||
|
[ext_multi_nocn]
|
||||||
|
basicConstraints = CA:false
|
||||||
|
keyUsage = digitalSignature, nonRepudiation, keyEncipherment
|
||||||
|
subjectAltName = DNS:www.shotokan-braunschweig.de,DNS:www.massimo-abate.eu,IP:192.168.1.1,IP:192.168.69.144
|
||||||
|
|
||||||
[hw_module_name]
|
[hw_module_name]
|
||||||
hwtype = OID:1.3.6.1.4.1.17.3
|
hwtype = OID:1.3.6.1.4.1.17.3
|
||||||
hwserial = OCT:123456
|
hwserial = OCT:123456
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIBzDCCAVOgAwIBAgIJAP6mZLzh0IPSMAoGCCqGSM49BAMCMD4xCzAJBgNVBAYT
|
MIIB2DCCAV6gAwIBAgIUN3DAVq0Kn9k3FPUPZGW2d3rZn28wCgYIKoZIzj0EAwIw
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTAeFw0xNDA0MDkxMTIzMzhaFw0yNDA0MDYxMTIzMzhaMD4xCzAJBgNVBAYT
|
cnNzbCBUZXN0IEVDIENBMB4XDTIzMDUxNzA3MTAzN1oXDTMzMDUxNzA3MTAzN1ow
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMPaKzRBN1gvh1b+/Im6KUNLTuBu
|
cnNzbCBUZXN0IEVDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEw9orNEE3WC+H
|
||||||
ww5XUzM5WNRStJGVOQsj318XJGJI/BqVKc4sLYfCiFKAr9ZqqyHduNMcbli4yuiy
|
Vv78ibopQ0tO4G7DDldTMzlY1FK0kZU5CyPfXxckYkj8GpUpziwth8KIUoCv1mqr
|
||||||
aY7zQa0pw7RfdadHb9UZKVVpmlM7ILRmFmAzHqMdMBswDAYDVR0TBAUwAwEB/zAL
|
Id240xxuWLjK6LJpjvNBrSnDtF91p0dv1RkpVWmaUzsgtGYWYDMeox0wGzAMBgNV
|
||||||
BgNVHQ8EBAMCAQIwCgYIKoZIzj0EAwIDZwAwZAIwZOCKY0EHXYzI4cQsFnfOrxm1
|
HRMEBTADAQH/MAsGA1UdDwQEAwIBAjAKBggqhkjOPQQDAgNoADBlAjAxoq/Q4PEA
|
||||||
ufvNeZ4ZcSZWrkTBazW2OBCuCP9SLznec3SFOUvvAjAKe/qycfxkHivjieCEG1Kt
|
8SDd3cQaVIwx8oJVEzfJo1BB2w1LnjvUXZrQydjNXMU4Jgorm/2/uLgCMQCyI6cZ
|
||||||
m2D4QKSJELUhTHr4zdkeqbzgui0y3iouaoyWsKvetNg=
|
EAIgKPYlT6/zJHBj45qejs527OfI4Xn+kQ7OvHQtHaCAzQw4h7Jfx+gXaUo=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
4
tests/data_files/test-ca2.ku-crl.crt.openssl.v3_ext
Normal file
4
tests/data_files/test-ca2.ku-crl.crt.openssl.v3_ext
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
basicConstraints = CA:true
|
||||||
|
subjectKeyIdentifier=none
|
||||||
|
keyUsage = cRLSign
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIBzTCCAVOgAwIBAgIJAODh6PAeD9/vMAoGCCqGSM49BAMCMD4xCzAJBgNVBAYT
|
MIIB2DCCAV6gAwIBAgIUYDcYIJ6EBbKafKeXLgPLE+RsJZowCgYIKoZIzj0EAwIw
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTAeFw0xNDA0MDkxMTIzNTRaFw0yNDA0MDYxMTIzNTRaMD4xCzAJBgNVBAYT
|
cnNzbCBUZXN0IEVDIENBMB4XDTIzMDUxMjEwMzEwNVoXDTMzMDUxMjEwMzEwNVow
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMPaKzRBN1gvh1b+/Im6KUNLTuBu
|
cnNzbCBUZXN0IEVDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEw9orNEE3WC+H
|
||||||
ww5XUzM5WNRStJGVOQsj318XJGJI/BqVKc4sLYfCiFKAr9ZqqyHduNMcbli4yuiy
|
Vv78ibopQ0tO4G7DDldTMzlY1FK0kZU5CyPfXxckYkj8GpUpziwth8KIUoCv1mqr
|
||||||
aY7zQa0pw7RfdadHb9UZKVVpmlM7ILRmFmAzHqMdMBswDAYDVR0TBAUwAwEB/zAL
|
Id240xxuWLjK6LJpjvNBrSnDtF91p0dv1RkpVWmaUzsgtGYWYDMeox0wGzAMBgNV
|
||||||
BgNVHQ8EBAMCAgQwCgYIKoZIzj0EAwIDaAAwZQIwGGlbynd1jU3WkUx6Irhk9Lob
|
HRMEBTADAQH/MAsGA1UdDwQEAwICBDAKBggqhkjOPQQDAgNoADBlAjBwsfyYiZB6
|
||||||
z2B+1eIO6+eu3En8B3rh8Ipfxo0e0hpfaRFYP1MUAjEAjxxBchRWJAzZ6/47Wg/7
|
PpDgIbYRbZ4VT9GGFNE3L4C1IH8RNwzvywLvQfVp3ocRAkzEoRpmKAsCMQDOGm48
|
||||||
UoasRINgP5B/uJhTnftS1bqyuWHastb4LW5/YLOvPbMQ
|
d7zKl7IzmBuOWXYlukWDDWwpNI67z7g0JawfypKIxcPTZFiQXVtDdTdkrGY=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
4
tests/data_files/test-ca2.ku-crt.crt.openssl.v3_ext
Normal file
4
tests/data_files/test-ca2.ku-crt.crt.openssl.v3_ext
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
basicConstraints = CA:true
|
||||||
|
subjectKeyIdentifier=none
|
||||||
|
keyUsage = keyCertSign
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIBzDCCAVOgAwIBAgIJAPejOupCJS65MAoGCCqGSM49BAMCMD4xCzAJBgNVBAYT
|
MIIB2TCCAV6gAwIBAgIUd5f42F4ahjkx9AIN035pcF4WFikwCgYIKoZIzj0EAwIw
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTAeFw0xNDA0MDkxMTIyMjVaFw0yNDA0MDYxMTIyMjVaMD4xCzAJBgNVBAYT
|
cnNzbCBUZXN0IEVDIENBMB4XDTIzMDUxNzA3MTAzN1oXDTMzMDUxNzA3MTAzN1ow
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMPaKzRBN1gvh1b+/Im6KUNLTuBu
|
cnNzbCBUZXN0IEVDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEw9orNEE3WC+H
|
||||||
ww5XUzM5WNRStJGVOQsj318XJGJI/BqVKc4sLYfCiFKAr9ZqqyHduNMcbli4yuiy
|
Vv78ibopQ0tO4G7DDldTMzlY1FK0kZU5CyPfXxckYkj8GpUpziwth8KIUoCv1mqr
|
||||||
aY7zQa0pw7RfdadHb9UZKVVpmlM7ILRmFmAzHqMdMBswDAYDVR0TBAUwAwEB/zAL
|
Id240xxuWLjK6LJpjvNBrSnDtF91p0dv1RkpVWmaUzsgtGYWYDMeox0wGzAMBgNV
|
||||||
BgNVHQ8EBAMCAQYwCgYIKoZIzj0EAwIDZwAwZAIwMKLVXB4YBQ0Ha4dEvFPcJtau
|
HRMEBTADAQH/MAsGA1UdDwQEAwIBBjAKBggqhkjOPQQDAgNpADBmAjEA6IUvQwSw
|
||||||
TS5Vd4UqG3xQ10YcJogweuqaGHSFgdnEUfoX+4p5AjApMnYXFfUjSmlyfJmTaswO
|
vEkHjU9YNsPcUsJf0UTHUW1T8mNbgk+zCl6fzeU73oCXH6zoi5q6vLgjAjEAv63C
|
||||||
gaR5sUnnw33NA9j1ercem3asCYz6a8T0zo8/rR33XVU=
|
xknmJJ4H3Zlc+O5GlcX9VQNZDn1xV7hf2yW1Gf7wLTnSWTf5bXATaIQ6QLO1
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
4
tests/data_files/test-ca2.ku-crt_crl.crt.openssl.v3_ext
Normal file
4
tests/data_files/test-ca2.ku-crt_crl.crt.openssl.v3_ext
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
basicConstraints = CA:true
|
||||||
|
subjectKeyIdentifier=none
|
||||||
|
keyUsage = keyCertSign, cRLSign
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIBzDCCAVOgAwIBAgIJAPOkPR3wsvm5MAoGCCqGSM49BAMCMD4xCzAJBgNVBAYT
|
MIIB2TCCAV6gAwIBAgIUb5xsO6FEmAz+XpGFHpW7ODFvup0wCgYIKoZIzj0EAwIw
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTAeFw0xNDA0MDkxMTI0MTNaFw0yNDA0MDYxMTI0MTNaMD4xCzAJBgNVBAYT
|
cnNzbCBUZXN0IEVDIENBMB4XDTIzMDUxNzA3MTAzN1oXDTMzMDUxNzA3MTAzN1ow
|
||||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
PjELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRwwGgYDVQQDDBNQb2xh
|
||||||
QyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMPaKzRBN1gvh1b+/Im6KUNLTuBu
|
cnNzbCBUZXN0IEVDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEw9orNEE3WC+H
|
||||||
ww5XUzM5WNRStJGVOQsj318XJGJI/BqVKc4sLYfCiFKAr9ZqqyHduNMcbli4yuiy
|
Vv78ibopQ0tO4G7DDldTMzlY1FK0kZU5CyPfXxckYkj8GpUpziwth8KIUoCv1mqr
|
||||||
aY7zQa0pw7RfdadHb9UZKVVpmlM7ILRmFmAzHqMdMBswDAYDVR0TBAUwAwEB/zAL
|
Id240xxuWLjK6LJpjvNBrSnDtF91p0dv1RkpVWmaUzsgtGYWYDMeox0wGzAMBgNV
|
||||||
BgNVHQ8EBAMCB4AwCgYIKoZIzj0EAwIDZwAwZAIwGRCmU/rWNjW13g8ITuq3pMXb
|
HRMEBTADAQH/MAsGA1UdDwQEAwIHgDAKBggqhkjOPQQDAgNpADBmAjEA44HVvGYv
|
||||||
jgwTFJHVlbMDiFJwUrRvytPV9doJOfzJ8nAQ0cZ1AjAbJ8QAV2e+DmYZpWc/p6Ug
|
meA3SpaNJmubLKjsQlGNnEUUo1IO0NBP5yWG0dRFkX8NQ0bzH/1n6FJcAjEAm9wj
|
||||||
nQdac59ev+lH+ju6wET3jNDjUthUPrdgqa54+UWQ5r4=
|
xdmEPUr6PY54c0IQJNeeF76L1/+EszXrSDQ7TLv1YC4d4uMNmqwR9EGuUX+/
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue