Merge branch 'mbedtls-3.6' into mbedtls-3.6.2rc0-pr

This commit is contained in:
David Horstmann
2024-10-11 19:47:48 +01:00
165 changed files with 3500 additions and 160316 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
[mypy]
mypy_path = scripts
mypy_path = framework/scripts:scripts
namespace_packages = True
warn_unused_configs = True
+1 -1
View File
@@ -1,5 +1,5 @@
[MASTER]
init-hook='import sys; sys.path.append("scripts")'
init-hook='import sys; sys.path.append("scripts"); sys.path.append("framework/scripts")'
min-similarity-lines=10
[BASIC]
+4 -1
View File
@@ -72,7 +72,7 @@ if(CMAKE_HOST_WIN32)
# CMakeLists.txt.
option(GEN_FILES "Generate the auto-generated files as needed" OFF) # off in development
else()
option(GEN_FILES "Generate the auto-generated files as needed" OFF)
option(GEN_FILES "Generate the auto-generated files as needed" ON)
endif()
option(DISABLE_PACKAGE_CONFIG_AND_INSTALL "Disable package configuration, target export and installation" ${MBEDTLS_AS_SUBPROJECT})
@@ -395,6 +395,9 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
endif()
if(ENABLE_PROGRAMS)
set(ssl_opt_target "${MBEDTLS_TARGET_PREFIX}ssl-opt")
add_custom_target(${ssl_opt_target})
add_subdirectory(programs)
endif()
+3
View File
@@ -0,0 +1,3 @@
Bugfix
* Fix invalid JSON schemas for driver descriptions used by
generate_driver_wrappers.py.
@@ -0,0 +1,4 @@
Bugfix
* When MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE is disabled, work with
peers that have middlebox compatibility enabled, as long as no
problematic middlebox is in the way. Fixes #9551.
+5 -1
View File
@@ -28,6 +28,10 @@ no_test: programs
programs: lib mbedtls_test
$(MAKE) -C programs
ssl-opt: lib mbedtls_test
$(MAKE) -C programs ssl-opt
$(MAKE) -C tests ssl-opt
lib:
$(MAKE) -C library
@@ -59,7 +63,7 @@ generated_files: visualc_files
# that lacks some of the necessary tools to re-generate the files.
# If $(GEN_FILES) is non-empty, the generated source files' dependencies
# are treated ordinarily, based on file timestamps.
GEN_FILES ?=
GEN_FILES ?= yes
# In dependencies where the target is a configuration-independent generated
# file, use `TARGET: $(gen_file_dep) DEPENDENCY1 DEPENDENCY2 ...`
@@ -11,6 +11,17 @@ is, of course, to actually do the migration work.
Limitations relevant for G1 (performing crypto operations)
==========================================================
Executive summary
-----------------
- Restartable/interruptible ECC operations: some operations (`sign_hash`) are
already supported in PSA, but not used by TLS. The remaining operations
(ECDH `key_agreement` and `export_public`) will be implemented in 4.0 or 4.x,
and used by TLS in 4.x.
- Arbitrary parameters for FFDH: use in TLS will be dropped in 4.0.
- RSA-PSS parameters: already implemented safe though arguably non-compliant
solution in Mbed TLS 3.4, no complaints so far.
Restartable (aka interruptible) ECC operations
----------------------------------------------
@@ -27,20 +38,9 @@ both enabled, some operations that should be restartable are not (ECDH in TLS
operations that should use PSA do not (signature generation & verification) as
they use the legacy API instead, in order to get restartable behaviour.
Things that are in the API but not implemented yet
--------------------------------------------------
PSA Crypto has an API for FFDH, but it's not implemented in Mbed TLS yet.
(Regarding FFDH, see the next section as well.) See issue [3261][ffdh] on
github.
[ffdh]: https://github.com/Mbed-TLS/mbedtls/issues/3261
Arbitrary parameters for FFDH
-----------------------------
(See also the first paragraph in the previous section.)
Currently, the PSA Crypto API can only perform FFDH with a limited set of
well-known parameters (some of them defined in the spec, but implementations
are free to extend that set).
+18 -8
View File
@@ -18,11 +18,16 @@ needs to be changed to use new APIs. For a more detailed account of what's
implemented, see `docs/use-psa-crypto.md`, where new APIs are about (G2), and
internal changes implement (G1).
As of early 2023, work towards G5 is in progress: Mbed TLS 3.3 and 3.4 saw
some improvements in this area, and more will be coming in future releases.
As of Mbed TLS 3.6 (early 2024), work towards G5 is well advanced: it is now
possible to have hashes/HMAC, ciphers/AEAD, and ECC provided only by drivers,
with some limitations. See
[`docs/driver-only-builds.md`](../../driver-only-builds.html) for details.
The main gap is RSA in PK, X.509 and TLS; it should be resolved by 4.0 work.
Generally speaking, the numbering above doesn't mean that each goal requires
the preceding ones to be completed.
the preceding ones to be completed. (As an example, much progress towards G5
was made in 3.x, while G4 will be mostly 4.0 and probably not fully complete
until 5.0.)
Compile-time options
@@ -146,7 +151,7 @@ crypto API.
This strategy is currently (early 2023) used for all operations in the PK
layer; the MD layer uses a variant where it dispatches to PSA if a driver is
available and the driver subsystem has been initialized, regardless of whether
`USE_PSA_CRYPTO` is enabled; see `md-cipher-dispatch.md` in the same directory
`USE_PSA_CRYPTO` is enabled; see [`md-cipher-dispatch.md`](md-cipher-dispatch.html)
for details.
This strategy is not very well suited to the Cipher layer, as the PSA
@@ -172,7 +177,7 @@ Replace calls for each operation
This strategy is currently (early 2023) used for the MD layer and the Cipher
layer in X.509 and TLS. Crypto modules however always call to MD which may
then dispatch to PSA, see `md-cipher-dispatch.md`.
then dispatch to PSA, see [`md-cipher-dispatch.md`](md-cipher-dispatch.html).
Opt-in use of PSA from the abstraction layer
--------------------------------------------
@@ -219,11 +224,16 @@ Strategies currently (early 2022) used with each abstraction layer:
- PK (for G1): silently call PSA
- PK (for G2): opt-in use of PSA (new key type)
- Cipher (G1): replace calls at each call site
- PK (for G5): store keys in PSA-friendly format when `ECP_C` is disabled and
`USE_PSA` is enabled
- Cipher (G1, TLS): replace calls at each call site
- Cipher (G5): create a new internal abstraction layer for (non-DES) block
ciphers that silently calls PSA when a driver is available, see
[`md-cipher-dispatch.md`](md-cipher-dispatch.html).
- MD (G1, X.509 and TLS): replace calls at each call site (depending on
`USE_PSA_CRYPTO`)
- MD (G5): silently call PSA when a driver is available, see
`md-cipher-dispatch.md`.
[`md-cipher-dispatch.md`](md-cipher-dispatch.html).
Supporting builds with drivers without the software implementation
@@ -292,7 +302,7 @@ Regarding PK, X.509, and TLS, this is mostly achieved with only a few gaps.
(The strategy was outlined in the previous section.)
Regarding libmbedcrypto:
- for hashes and ciphers, see `md-cipher-dispatch.md` in the same directory;
- for hashes and ciphers, see [`md-cipher-dispatch.md`](md-cipher-dispatch.html);
- for ECC, we have no internal uses of the top-level algorithms (ECDSA, ECDH,
ECJPAKE), however they all depend on `ECP_C` which in turn depends on
`BIGNUM_C`. So, direct calls from TLS, X.509 and PK to ECP and Bignum will
@@ -0,0 +1,320 @@
This document explains feature guards macros to be used during the transition
from legacy to PSA in order to determine whether a given cryptographic
mechanism is available in the current build.
We currently (as of Mbed TLS 3.6) have three sets of feature macros:
- `PSA_WANT` macros;
- legacy `MBEDTLS_xxx` macros;
- transitional `MBEDTLS_xxx` macros that stem from the desire to be able to
use crypto mechanisms that are only provided by a driver (G5 in
`strategy.md`).
This document's goal is to shed some light on when to use which. It is mostly
intended for maintainers.
Since most transition macros come from driver-only work, it can be useful to
check `docs/driver-only-builds.md` as well for background. (Note: as
maintainers, for the best precision about what's supported of not with
drivers, check the relevant `component_test_psa_crypto_config_accel_xxx`'s
configuration, as well as the corresponding exclude list in
`analyze_outcomes.py`.)
General considerations
======================
This document only applies to Mbed TLS 3.6 TLS. By contrast:
- in 2.28 we have no driver-only support, so the legacy guards `MBEDTLS_XXX`
should be used everywhere;
- in 4.0 configuration will be purely based on PSA, so `PSA_WANT` macros
should be used everywhere.
It is useful to consider the following domains:
- The PSA domain: things declared in `include/psa/*.h`, implemented in
`library/psa_*.c` and tested in `tests/suites/test_suite_psa*`.
- The pure TLS 1.3 domain: the parts of TLS 1.3 that are not in the `USE_PSA`
domain (see below). Those use PSA APIs unconditionally.
- The `USE_PSA` domain (that is, code that calls PSA crypto APIs when
`USE_PSA` is enabled, and legacy crypto APIs otherwise): that's PK, X.509,
most of TLS 1.2 and the parts of TLS 1.3 that are common with TLS 1.2 or are
about public/private keys (see `docs/use-psa-crypto.md` for details).
- The legacy crypto domain: a number of modules there will use crypto from
other modules, for example RSA and entropy will use hashes, PEM will use
hashes and ciphers (from encrypted PEM), etc.
The first two categories (PSA domain, pure TLS 1.3 domain) are simple: as a
general rule, use `PSA_WANT` macros. (With very few exceptions, see
`component_check_test_dependencies` in `all.sh`.) In the rare instances where it is necessary to
check whether a mechanism is built-in or provided by a driver,
`MBEDTLS_PSA_BUILTIN_xxx` and `MBEDTLS_PSA_ACCEL_xxx` macros should be used
(but not legacy `MBEDTLS_xxx` macros).
For the `USE_PSA` domain, it should always be correct to use expressions like
`(!USE_PSA && MBEDTLS_xxx) || (USE_PSA && PSA_WANT_xxx)`. Sometimes, macros
are defined in order to avoid using long expressions everywhere; they will be
mentioned in the following sections.
The remaining category, the legacy domain, tends to be more complex. There are
different rules for different families of mechanisms, as detailed in the
following sections.
Symmetric crypto
================
Hashes
------
**Hash vs HMAC:** Historically (since 2.0) we've had the generic hash
interface, and the implementation of HMAC, in the same file controlled by a
single feature macro: `MBEDTLS_MD_C`. This has now been split in two:
- `MBEDTLS_MD_LIGHT` is about the generic hash interface; we could think of it
as `MBEDTLS_HASH_C`.
- `MBEDTLS_MD_C` is about the HMAC implementation; we could think of it as
`MBEDTLS_HMAC_C` (auto-enabling `MBEDTLS_HASH_C`).
(In fact, this is not the whole story: `MD_LIGHT` is the _core_ of the generic
hash interface, excluding functions such as `mbedtls_md_list()` and
`mbedtls_md_info_from_string()`, `mbedtls_md_file()`, etc. But I think the
above should still provide a good intuition as first approximation.)
Note that all users of hashes in the library use either the PSA Crypto API or the `md.h` API.
That is, no user in the library, even in the legacy domain, uses the low-level hash APIs
(`mbedtls_sha256` etc). (That's not true of all example programs, though.)
**Helper macros:** in `config_adjust_legacy_crypto.h` we define a family of
macro `MBEDTLS_MD_CAN_xxx`. These macros are defined (for available hashes) as
soon as `MBEDTLS_MD_LIGHT` is enabled. This subset of `MD` is automatically
enabled as soon as something from the legacy domain, or from the `USE_PSA`
domain, needs a hash. (Note that this includes `ENTROPY_C`, so in practice
`MD_LIGHT` is enabled in most builds.)
Note that there is a rule, enforced by `config_adjust_psa_superset_legacy.h`,
that as soon as `PSA_CRYPTO_C` is enabled, all hashes that are enabled on the
legacy side are also enabled on the PSA side (the converse is not true: a hash
that's provided by a driver will typically be available only on the PSA side). So, in
practice, when `PSA_CRYPTO_C` and `MD_LIGHT` are both enabled,
`PSA_WANT_ALG_xxx` and `MBEDTLS_MD_CAN_xxx` are equivalent.
**Legacy and `USE_PSA` domains:** for hashes, `MBEDTLS_MD_CAN_xxx` (where
`xxx` is the legacy name of the hash) can be used everywhere (except in the
PSA domain which should use `PSA_WANT` as usual). No special include is
required, `build_info.h` or `common.h` is enough.
**Pure TLS 1.3 domain:** it is not easy to know which uses of hashes fall in
this domain as opposed to the `USE_PSA` domain whithout looking at the code.
Fortunately, `MD_CAN` and `PSA_WANT` macros can be used interchangeably, as
per the note above.
HMAC
----
**Legacy domain:** the code is using the `md.h` API. For this domain,
availability of HMAC-xxx is determined by `MBEDTLS_MD_C && MBEDTLS_MD_CAN_xxx`
(see previous subsection about `MD_CAN`). Modules in this domain that may use
HMAC are PKCS5, PKCS7, HKDF, HMAC-DRBG and ECDSA deterministic.
**`USE_PSA` domain:** code will use the `md.h` API when `USE_PSA` is disabled,
and the `psa_mac` API when `USE_PSA` is enabled. It should check for the
availability of HMAC-xxx with either:
```
((!MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_MD_C) ||
(MBEDTLS_USE_PSA_CRYPTO && PSA_WANT_ALG_HMAC)) &&
MBEDTLS_MD_CAN_xxx
```
or
```
(!MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_MD_C && MBEDTLS_xxx_C) ||
(MBEDTLS_USE_PSA_CRYPTO && PSA_WANT_ALG_HMAC && PSA_WANT_ALG_xxx)
```
or any equivalent condition (see note at the end of the previous section).
The only module in this case is TLS, which currently depends on
`USE_PSA_CRYPTO || MD_C`.
Note: while writing this, it occurs to me that TLS 1.2 does not seem to be
checking for `PSA_WANT_ALG_HMAC` before enabling CBC ciphersuites when
`USE_PSA` is enabled, which I think it should. Builds with `USE_PSA` enabled,
`PSA_WANT_ALG_HMAC` disabled and other requirements for CBC ciphersuites
enabled, are probably broken (perhaps only at runtime when a CBC ciphersuite
is negotiated).
**Pure TLS 1.3 domain:** HMAC is used for the Finished message via PSA Crypto
APIs. So, TLS 1.3 should depend on `PSA_WANT_ALG_HMAC` - doesn't seem to be
enforced by `check_config.h`, or documented in `mbedtls_config.h`, at the
moment.
Ciphers (AEAD and unauthenticated)
----------------------------------
**Overview of existing (internal) APIs:** we currently have 5 (families of)
APIs for ciphers (and associated constructs) in the library:
- Low-level API for primitives: `mbedtls_aes_xxx` etc. - used by `cipher.c`
and some other modules in the legacy domain.
- Internal abstraction layer `block_cipher` for AES, ARIA and Camellia
primitives - used only by `gcm.c` and `ccm.c`, only when `CIPHER_C` is not
enabled (for compatibility reasons).
- Block cipher modes / derivatives:
- `mbedtls_gcm_xxx` and `mbedtls_ccm_xxx`, used by `cipher.c` and
the built-in PSA implementation;
- `mbedtls_nist_kw_xxx`, used by `cipher.c`;
- `mbedtls_cipher_cmac_xxx`, used by the built-in PSA implementation;
- `mbedtls_ctr_drbg_xxx`, used by PSA crypto's RNG subsystem.
- Cipher: used by some modules in the legacy domain, and by the built-in PSA
implementation.
- PSA: used by the `USE_PSA` domain when `MBEDTLS_USE_PSA_CRYPTO` is enabled.
**Legacy domain:** most code here is using either `cipher.h` or low-level APIs
like `aes.h`, and should use legacy macros like `MBEDTLS_AES_C` and
`MBEDTLS_CIPHER_MODE_CBC`. This includes NIST-KW, CMAC, PKCS5/PKCS12 en/decryption
functions, PEM decryption, PK parsing of encrypted keys. The only exceptions
are:
1. `GCM` and `CCM` use the internal abstraction layer `block_cipher` and check
for availability of block ciphers using `MBEDTLS_CCM_GCM_CAN_xxx` macros
defined in `config_adjut_legacy_crypto.h`. As a user, to check if AES-GCM is
available through the `mbedtls_gcm` API, you want to check for `MBEDTLS_GCM_C`
and `MBDTLS_CCM_GCM_CAN_AES`.
2. `CTR_DRBG` uses the low-level `mbedtls_aes_` API if it's available,
otherwise it uses the PSA API. There is no need for users of `CTR_DRBG` to
check if AES is available: `check_config.h` is already taking care of that, so
from a user's perspective as soon as `MBEDTLS_CTR_DRBG_C` is enabled, you can
use it without worrying about AES.
**`USE_PSA` domain:** here we should use conditions like the following in
order to test for availability of ciphers and associated modes.
```
// is AES available?
(!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_AES_C)) || \
(defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_KEY_TYPE_AES))
// is CBC available?
(!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_CIPHER_MODE_CBC)) || \
(defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_CBC_NO_PADDING))
// is GCM available?
(!defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_GCM_C)) || \
(defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_GCM))
```
Note: TLS is the only user of ciphers in the `USE_PSA` domain, and it defines
`MBEDTLS_SSL_HAVE_xxx` macros in `config_adjust_legacy_crypto.h` for the
ciphers and modes it needs to know about.
**Pure TLS 1.3 domain:** none. All from TLS 1.3 are in the `USE_PSA` domain
(common to TLS 1.2).
Key derivation
--------------
**Legacy domain:** the modules PKCS5 and PKCS12 both provide
key derivation (respectively PBKDF2-HMAC and PKCS12 derivation), and use it
for password-based encryption. (Note: PEM has an implementation of PBKDF1 but
it's internal.)
**`USE_PSA` domain:** PK (parse) will use PKCS5 and PKCS12 encryption (hence
indirectly key derivation) if present in the build. The macros are
`MBEDTLS_PKCS5_C` and `MBEDTLS_PKCS12_C`. Note that even when `USE_PSA` is
enabled, PK parse will _not_ use PSA for the PBKDF2 part of PKCS5 decryption.
**Pure TLS 1.3 domain:** TLS 1.3 is using HKDF via PSA Crypto APIs. We already
enforce in `check_config.h` that TLS 1.3 depends on the appropriate `PSA_WANT`
macros.
Asymmetric crypto
=================
RSA
---
**Legacy domain and `USE_PSA` domain:** use `RSA_C` everywhere. (Note: there's
no user of RSA in the legacy domain, and the only direct user in the `USE_PSA`
domain is PK - both X.509 and TLS will only RSA via PK.)
**Pure TLS 1.3 domain:** no use of RSA in this domain. All TLS 1.3 uses of RSA
go through PK, hence are in the `USE_PSA` domain.
FFDH
----
**Legacy domain and `USE_PSA` domain:** use `DHM_C`. The only user is TLS 1.2
which is actually in the legacy domain - this is an exception where `USE_PSA`
has no effect, because PSA doesn't cover the needs of TLS 1.2 here.
**Pure TLS 1.3 domain:** use `PSA_WANT`. The TLS 1.3 code for Diffie-Hellman
is common to ECDH and FFDH thanks to PSA Crypto APIs being generic enough. The
parts about FFDH are guarded with `PSA_WANT_ALG_FFDH` (with the reasoning that
this implies support for the corresponding key type).
ECC
---
**Curves:** in `config_adjut_psa_superset_legacy.h` we ensure that, as soon as
`PSA_CRYPTO_C` is enabled, all
curves that are supported on the legacy side (`MBEDTLS_ECP_DP_xxx_ENABLED`)
are also supported on the PSA side (`PSA_WANT_ECC_xxx`). (The converse is not
true as a curve provided by a driver will typically only be available on the
PSA side).
In `config_adjust_legacy_crypto.h` we define macros `MBEDTLS_ECP_HAVE_xxx`.
These macros are useful for data and functions that have users in several
domains, such as `mbedtls_ecc_group_to_psa()`, or that have users only in the
`USE_PSA` domain but want a simpler (if sub-optimal) condition, such as
`mbedtls_oid_get_ec_grp()`.
Strictly speaking, code in the `USE_PSA` domain should not use the above
`MBEDTLS_ECP_HAVE_xxx` macros but conditions like
```
(!MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_ECP_DP_xxx_ENABLED) ||
(MBEDTLS_USE_PSA_CRYPTO && PSA_WANT_ECC_xxx)
```
Note while writing: a lot of tests for things in the `USE_PSA` domain appear
to be using `MBEDTLS_ECP_HAVE_xxx`. IMO this is incorrect, but not caught by
the CI because I guess we don't run tests in configurations that have both
`USE_PSA_CRYPTO` disabled, and some curves enabled only on the PSA side. My
initial feeling is we don't care about such configurations as this point, and
can leave the dependencies as they are until they're replaced with `PSA_WANT`
macros in 4.0 anyway.
**Legacy domain:** use the legacy macros `ECP_C`, `ECDH_C`, `ECDSA_C`,
`ECJPAKE_C`, `MBEDTLS_ECP_DP_xxx_ENABLED`. (This is mostly just ECDH, ECDSA
and EC J-PAKE using ECP.)
**Key management, `USE_PSA` domain:** `MBEDTLS_PK_HAVE_ECC_KEYS` means that PK
supports ECC key parsing and writing (and storage). It does not imply support
for doing crypto operation with such keys - see `MBEDTLS_PK_CAN_ECDSA_xxx`
above for that.
**ECDH, `USE_PSA` domain:** this is just TLS 1.2. It's using the helper macro
`MBEDTLS_CAN_ECDH` defined in `config_adjust_legacy_crypto.h` (which should
probably be called `MBEDTLS_SSL_TLS1_2_CAN_ECDH` as it's only for TLS 1.2).
(Note: the macro is not used directly in the code, it's only used as a
dependency for relevant TLS 1.2 key exchanges. Then the code uses the guards
for the key exchanges.)
**ECDH, pure TLS 1.3 domain:** using `PSA_WANT_ALG_ECDH`.
**ECDSA, `USE_PSA` domain:** should use the macros
`MBEDTLS_PK_CAN_ECDSA_{SIGN,VERIFY,SOME}` that indicate support for signature
generation, verification, or at least one of those, respectively. To check for
support for signatures with a specific hash, combine
`MBEDTLS_PK_CAN_ECDSA_xxx` with `MBEDTLS_MD_CAN_xxx`.
**ECDSA, pure TLS 1.3 domain:** none - everything goes through PK.
**EC J-PAKE, `USE_PSA` domain:** only used by TLS 1.2. The code is guarded by
the corresponding `KEY_EXCHANGE` macro, which in `check_config.h` depends on
the appropriate macros depending on whether `USE_PSA` is on or off.
**EC J-PAKE, pure TLS 1.3 domain:** none - EC J-PAKE is TLS 1.2 (so far).
**Related internal macros:**
- `MBEDTLS_PK_USE_PSA_EC_DATA` is an internal switch of the PK module. When
it's not defined, PK stores ECC keys as a `struct mbedtls_ecxxx_keypair`;
when it's defined, PK stores in a PSA -friendly format instead (PSA key slot
for private keys, metadata + array of bytes with the PSA import/export format
for the public part). This macro is only defined when `ECP_C` is not and
`USE_PSA` is, see comments above its definition in `pk.h` for details.
- `MBEDTLS_ECP_LIGHT` enables only a subset of `ecp.c`. This subset is pretty
much ad hoc: it's basically everything that doesn't depend on scalar
multiplication (_the_ complex expensive operation in ECC arithmetic).
Basically, this subset gives access to curve data (constants), key storage,
basic parsing and writing. It is auto-enabled in some driver-only
configurations where the user has disabled `ECP_C` because they have drivers
for the crypto operations they use, but they've also asked for some things
that are not supported by drivers yet, such as deterministic key derivation,
or parsing of compressed keys - on those cases, `ECP_LIGHT` will support this
needs without bringing back the full `ECP_C`.
+1 -1
View File
@@ -22,7 +22,7 @@ Each test case has a description which succinctly describes for a human audience
* Make the description descriptive. “foo: x=2, y=4” is more descriptive than “foo #2”. “foo: 0<x<y, both even” is even better if these inequalities and parities are why this particular test data was chosen.
* Avoid changing the description of an existing test case without a good reason. This breaks the tracking of failures across CI runs, since this tracking is based on the descriptions.
`tests/scripts/check_test_cases.py` enforces some rules and warns if some guidelines are violated.
`framework/scripts/check_test_cases.py` enforces some rules and warns if some guidelines are violated.
## TLS tests
-2
View File
@@ -408,8 +408,6 @@ Note that the relationship between legacy (i.e. `MBEDTLS_xxx_C`) and PSA
### Partial acceleration for CCM/GCM
[This section depends on #8598 so it might be updated while that PR progresses.]
In case legacy CCM/GCM algorithms are enabled, it is still possible to benefit
from PSA acceleration of the underlying block cipher by enabling support for
ECB mode (`PSA_WANT_ALG_ECB_NO_PADDING` + `MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING`)
+1 -1
View File
@@ -939,7 +939,7 @@ This is also the equivalent of the type-specific functions `mbedtls_rsa_pkcs1_si
The equivalent of `mbedtls_pk_verify` or `mbedtls_pk_verify_ext` to verify an already calculated hash is [`psa_verify_hash`](https://mbed-tls.readthedocs.io/projects/api/en/development/api/group/group__asymmetric/#group__asymmetric_1gae2ffbf01e5266391aff22b101a49f5f5).
The key must be a public key (or a key pair) allowing the usage `PSA_KEY_USAGE_VERIFY_HASH` (see “[Public-key cryptography policies](#public-key-cryptography-policies)”).
This is also the equivalent of the type-specific functions `mbedtls_rsa_pkcs1_verify`, `mbedtls_rsa_rsassa_pkcs1_v15_verify`, `mbedtls_rsa_rsassa_pss_verify`, `mbedtls_rsa_rsassa_pss_verify_ext`, `mbedtls_ecdsa_verify` amd `mbedtls_ecdsa_read_signature`. Note that the PSA API uses the raw format for ECDSA signatures, not the ASN.1 format; see “[ECDSA signature](#ecdsa-signature)” for more details.
This is also the equivalent of the type-specific functions `mbedtls_rsa_pkcs1_verify`, `mbedtls_rsa_rsassa_pkcs1_v15_verify`, `mbedtls_rsa_rsassa_pss_verify`, `mbedtls_rsa_rsassa_pss_verify_ext`, `mbedtls_ecdsa_verify` and `mbedtls_ecdsa_read_signature`. Note that the PSA API uses the raw format for ECDSA signatures, not the ASN.1 format; see “[ECDSA signature](#ecdsa-signature)” for more details.
Generally, `psa_sign_hash` and `psa_verify_hash` require the input to have the correct length for the hash (this has historically not always been enforced in the corresponding legacy APIs).
+3
View File
@@ -247,6 +247,9 @@
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) && !defined(MBEDTLS_HAS_MEMSAN)
#error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer"
#endif
#if defined(MBEDTLS_HAS_MEMSAN) && defined(MBEDTLS_HAVE_ASM)
#error "MemorySanitizer does not support assembly implementation"
#endif
#undef MBEDTLS_HAS_MEMSAN // temporary macro defined above
#if defined(MBEDTLS_CCM_C) && \
+7 -7
View File
@@ -2,10 +2,10 @@ libmbed*
*.sln
*.vcxproj
####START_COMMENTED_GENERATED_FILES###
#/error.c
#/version_features.c
#/ssl_debug_helpers_generated.c
#/psa_crypto_driver_wrappers.h
#/psa_crypto_driver_wrappers_no_static.c
####END_COMMENTED_GENERATED_FILES###
###START_GENERATED_FILES###
/error.c
/version_features.c
/ssl_debug_helpers_generated.c
/psa_crypto_driver_wrappers.h
/psa_crypto_driver_wrappers_no_static.c
###END_GENERATED_FILES###
+1 -1
View File
@@ -341,7 +341,7 @@ libmbedcrypto.dll: $(OBJS_CRYPTO)
generated_files: $(GENERATED_FILES)
# See root Makefile
GEN_FILES ?=
GEN_FILES ?= yes
ifdef GEN_FILES
gen_file_dep =
else
+14 -12
View File
@@ -747,8 +747,8 @@ static void exp_mod_precompute_window(const mbedtls_mpi_uint *A,
}
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
// Set to a default that is neither MBEDTLS_MPI_IS_PUBLIC nor MBEDTLS_MPI_IS_SECRET
int mbedtls_mpi_optionally_safe_codepath = MBEDTLS_MPI_IS_PUBLIC + MBEDTLS_MPI_IS_SECRET + 1;
void (*mbedtls_safe_codepath_hook)(void) = NULL;
void (*mbedtls_unsafe_codepath_hook)(void) = NULL;
#endif
/*
@@ -781,7 +781,9 @@ static inline void exp_mod_calc_first_bit_optionally_safe(const mbedtls_mpi_uint
*E_bit_index = E_bits % biL;
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_mpi_optionally_safe_codepath = MBEDTLS_MPI_IS_PUBLIC;
if (mbedtls_unsafe_codepath_hook != NULL) {
mbedtls_unsafe_codepath_hook();
}
#endif
} else {
/*
@@ -791,9 +793,8 @@ static inline void exp_mod_calc_first_bit_optionally_safe(const mbedtls_mpi_uint
*E_limb_index = E_limbs;
*E_bit_index = 0;
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
// Only mark the codepath safe if there wasn't an unsafe codepath before
if (mbedtls_mpi_optionally_safe_codepath != MBEDTLS_MPI_IS_PUBLIC) {
mbedtls_mpi_optionally_safe_codepath = MBEDTLS_MPI_IS_SECRET;
if (mbedtls_safe_codepath_hook != NULL) {
mbedtls_safe_codepath_hook();
}
#endif
}
@@ -813,7 +814,9 @@ static inline void exp_mod_table_lookup_optionally_safe(mbedtls_mpi_uint *Wselec
if (window_public == MBEDTLS_MPI_IS_PUBLIC) {
memcpy(Wselect, Wtable + window * AN_limbs, AN_limbs * ciL);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_mpi_optionally_safe_codepath = MBEDTLS_MPI_IS_PUBLIC;
if (mbedtls_unsafe_codepath_hook != NULL) {
mbedtls_unsafe_codepath_hook();
}
#endif
} else {
/* Select Wtable[window] without leaking window through
@@ -821,9 +824,8 @@ static inline void exp_mod_table_lookup_optionally_safe(mbedtls_mpi_uint *Wselec
mbedtls_mpi_core_ct_uint_table_lookup(Wselect, Wtable,
AN_limbs, welem, window);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
// Only mark the codepath safe if there wasn't an unsafe codepath before
if (mbedtls_mpi_optionally_safe_codepath != MBEDTLS_MPI_IS_PUBLIC) {
mbedtls_mpi_optionally_safe_codepath = MBEDTLS_MPI_IS_SECRET;
if (mbedtls_safe_codepath_hook != NULL) {
mbedtls_safe_codepath_hook();
}
#endif
}
@@ -857,8 +859,8 @@ static void mbedtls_mpi_core_exp_mod_optionally_safe(mbedtls_mpi_uint *X,
/* We'll process the bits of E from most significant
* (limb_index=E_limbs-1, E_bit_index=biL-1) to least significant
* (limb_index=0, E_bit_index=0). */
size_t E_limb_index;
size_t E_bit_index;
size_t E_limb_index = E_limbs;
size_t E_bit_index = 0;
exp_mod_calc_first_bit_optionally_safe(E, E_limbs, E_public,
&E_limb_index, &E_bit_index);
+9 -17
View File
@@ -70,9 +70,7 @@
#include "common.h"
#if defined(MBEDTLS_BIGNUM_C)
#include "mbedtls/bignum.h"
#endif
#include "constant_time_internal.h"
@@ -106,10 +104,17 @@
* } else {
* // safe path
* }
* not the other way round, in order to prevent misuse. (This is, if a value
* other than the two below is passed, default to the safe path.) */
* not the other way round, in order to prevent misuse. (That is, if a value
* other than the two below is passed, default to the safe path.)
*
* The value of MBEDTLS_MPI_IS_PUBLIC is chosen in a way that is unlikely to happen by accident, but
* which can be used as an immediate value in a Thumb2 comparison (for code size). */
#define MBEDTLS_MPI_IS_PUBLIC 0x2a2a2a2a
#define MBEDTLS_MPI_IS_SECRET 0
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
// Default value for testing that is neither MBEDTLS_MPI_IS_PUBLIC nor MBEDTLS_MPI_IS_SECRET
#define MBEDTLS_MPI_IS_TEST 1
#endif
/** Count leading zero bits in a given integer.
*
@@ -817,17 +822,4 @@ void mbedtls_mpi_core_from_mont_rep(mbedtls_mpi_uint *X,
mbedtls_mpi_uint mm,
mbedtls_mpi_uint *T);
/*
* Can't define thread local variables with our abstraction layer: do nothing if threading is on.
*/
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
extern int mbedtls_mpi_optionally_safe_codepath;
static inline void mbedtls_mpi_optionally_safe_codepath_reset(void)
{
// Set to a default that is neither MBEDTLS_MPI_IS_PUBLIC nor MBEDTLS_MPI_IS_SECRET
mbedtls_mpi_optionally_safe_codepath = MBEDTLS_MPI_IS_PUBLIC + MBEDTLS_MPI_IS_SECRET + 1;
}
#endif
#endif /* MBEDTLS_BIGNUM_CORE_H */
+23
View File
@@ -0,0 +1,23 @@
/**
* \file bignum_core_invasive.h
*
* \brief Function declarations for invasive functions of bignum core.
*/
/**
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#ifndef MBEDTLS_BIGNUM_CORE_INVASIVE_H
#define MBEDTLS_BIGNUM_CORE_INVASIVE_H
#include "bignum_core.h"
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
extern void (*mbedtls_safe_codepath_hook)(void);
extern void (*mbedtls_unsafe_codepath_hook)(void);
#endif /* MBEDTLS_TEST_HOOKS && !MBEDTLS_THREADING_C */
#endif /* MBEDTLS_BIGNUM_CORE_INVASIVE_H */
+2 -1
View File
@@ -170,11 +170,12 @@ static int ccm_calculate_first_block_if_ready(mbedtls_ccm_context *ctx)
}
/* CCM expects non-empty tag.
* CCM* allows empty tag. For CCM* without tag, ignore plaintext length.
* CCM* allows empty tag. For CCM* without tag, the tag calculation is skipped.
*/
if (ctx->tag_len == 0) {
if (ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT || ctx->mode == MBEDTLS_CCM_STAR_DECRYPT) {
ctx->plaintext_len = 0;
return 0;
} else {
return MBEDTLS_ERR_CCM_BAD_INPUT;
}
+1 -16
View File
@@ -36,24 +36,9 @@
#pragma GCC diagnostic ignored "-Wredundant-decls"
#endif
/* Disable asm under Memsan because it confuses Memsan and generates false errors.
*
* 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
#elif defined(__has_feature)
#if __has_feature(memory_sanitizer)
#define MBEDTLS_CT_NO_ASM
#endif
#endif
/* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */
#if defined(MBEDTLS_HAVE_ASM) && defined(__GNUC__) && (!defined(__ARMCC_VERSION) || \
__ARMCC_VERSION >= 6000000) && !defined(MBEDTLS_CT_NO_ASM)
__ARMCC_VERSION >= 6000000)
#define MBEDTLS_CT_ASM
#if (defined(__arm__) || defined(__thumb__) || defined(__thumb2__))
#define MBEDTLS_CT_ARM_ASM
-880
View File
@@ -1,880 +0,0 @@
/*
* Error message information
*
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#include "common.h"
#include "mbedtls/error.h"
#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY)
#if defined(MBEDTLS_ERROR_C)
#include "mbedtls/platform.h"
#include <stdio.h>
#include <string.h>
#if defined(MBEDTLS_AES_C)
#include "mbedtls/aes.h"
#endif
#if defined(MBEDTLS_ARIA_C)
#include "mbedtls/aria.h"
#endif
#if defined(MBEDTLS_ASN1_PARSE_C)
#include "mbedtls/asn1.h"
#endif
#if defined(MBEDTLS_BASE64_C)
#include "mbedtls/base64.h"
#endif
#if defined(MBEDTLS_BIGNUM_C)
#include "mbedtls/bignum.h"
#endif
#if defined(MBEDTLS_CAMELLIA_C)
#include "mbedtls/camellia.h"
#endif
#if defined(MBEDTLS_CCM_C)
#include "mbedtls/ccm.h"
#endif
#if defined(MBEDTLS_CHACHA20_C)
#include "mbedtls/chacha20.h"
#endif
#if defined(MBEDTLS_CHACHAPOLY_C)
#include "mbedtls/chachapoly.h"
#endif
#if defined(MBEDTLS_CIPHER_C)
#include "mbedtls/cipher.h"
#endif
#if defined(MBEDTLS_CTR_DRBG_C)
#include "mbedtls/ctr_drbg.h"
#endif
#if defined(MBEDTLS_DES_C)
#include "mbedtls/des.h"
#endif
#if defined(MBEDTLS_DHM_C)
#include "mbedtls/dhm.h"
#endif
#if defined(MBEDTLS_ECP_C)
#include "mbedtls/ecp.h"
#endif
#if defined(MBEDTLS_ENTROPY_C)
#include "mbedtls/entropy.h"
#endif
#if defined(MBEDTLS_ERROR_C)
#include "mbedtls/error.h"
#endif
#if defined(MBEDTLS_PLATFORM_C)
#include "mbedtls/platform.h"
#endif
#if defined(MBEDTLS_GCM_C)
#include "mbedtls/gcm.h"
#endif
#if defined(MBEDTLS_HKDF_C)
#include "mbedtls/hkdf.h"
#endif
#if defined(MBEDTLS_HMAC_DRBG_C)
#include "mbedtls/hmac_drbg.h"
#endif
#if defined(MBEDTLS_LMS_C)
#include "mbedtls/lms.h"
#endif
#if defined(MBEDTLS_MD_C)
#include "mbedtls/md.h"
#endif
#if defined(MBEDTLS_NET_C)
#include "mbedtls/net_sockets.h"
#endif
#if defined(MBEDTLS_OID_C)
#include "mbedtls/oid.h"
#endif
#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)
#include "mbedtls/pem.h"
#endif
#if defined(MBEDTLS_PK_C)
#include "mbedtls/pk.h"
#endif
#if defined(MBEDTLS_PKCS12_C)
#include "mbedtls/pkcs12.h"
#endif
#if defined(MBEDTLS_PKCS5_C)
#include "mbedtls/pkcs5.h"
#endif
#if defined(MBEDTLS_PKCS7_C)
#include "mbedtls/pkcs7.h"
#endif
#if defined(MBEDTLS_POLY1305_C)
#include "mbedtls/poly1305.h"
#endif
#if defined(MBEDTLS_RSA_C)
#include "mbedtls/rsa.h"
#endif
#if defined(MBEDTLS_SHA1_C)
#include "mbedtls/sha1.h"
#endif
#if defined(MBEDTLS_SHA256_C)
#include "mbedtls/sha256.h"
#endif
#if defined(MBEDTLS_SHA3_C)
#include "mbedtls/sha3.h"
#endif
#if defined(MBEDTLS_SHA512_C)
#include "mbedtls/sha512.h"
#endif
#if defined(MBEDTLS_SSL_TLS_C)
#include "mbedtls/ssl.h"
#endif
#if defined(MBEDTLS_THREADING_C)
#include "mbedtls/threading.h"
#endif
#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
#include "mbedtls/x509.h"
#endif
const char *mbedtls_high_level_strerr(int error_code)
{
int high_level_error_code;
if (error_code < 0) {
error_code = -error_code;
}
/* Extract the high-level part from the error code. */
high_level_error_code = error_code & 0xFF80;
switch (high_level_error_code) {
/* Begin Auto-Generated Code. */
#if defined(MBEDTLS_CIPHER_C)
case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE):
return( "CIPHER - The selected feature is not available" );
case -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA):
return( "CIPHER - Bad input parameters" );
case -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED):
return( "CIPHER - Failed to allocate memory" );
case -(MBEDTLS_ERR_CIPHER_INVALID_PADDING):
return( "CIPHER - Input data contains invalid padding and is rejected" );
case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED):
return( "CIPHER - Decryption of block requires a full block" );
case -(MBEDTLS_ERR_CIPHER_AUTH_FAILED):
return( "CIPHER - Authentication failed (for AEAD modes)" );
case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT):
return( "CIPHER - The context is invalid. For example, because it was freed" );
#endif /* MBEDTLS_CIPHER_C */
#if defined(MBEDTLS_DHM_C)
case -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA):
return( "DHM - Bad input parameters" );
case -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED):
return( "DHM - Reading of the DHM parameters failed" );
case -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED):
return( "DHM - Making of the DHM parameters failed" );
case -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED):
return( "DHM - Reading of the public values failed" );
case -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED):
return( "DHM - Making of the public value failed" );
case -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED):
return( "DHM - Calculation of the DHM secret failed" );
case -(MBEDTLS_ERR_DHM_INVALID_FORMAT):
return( "DHM - The ASN.1 data is not formatted correctly" );
case -(MBEDTLS_ERR_DHM_ALLOC_FAILED):
return( "DHM - Allocation of memory failed" );
case -(MBEDTLS_ERR_DHM_FILE_IO_ERROR):
return( "DHM - Read or write of file failed" );
case -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED):
return( "DHM - Setting the modulus and generator failed" );
#endif /* MBEDTLS_DHM_C */
#if defined(MBEDTLS_ECP_C)
case -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA):
return( "ECP - Bad input parameters to function" );
case -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL):
return( "ECP - The buffer is too small to write to" );
case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE):
return( "ECP - The requested feature is not available, for example, the requested curve is not supported" );
case -(MBEDTLS_ERR_ECP_VERIFY_FAILED):
return( "ECP - The signature is not valid" );
case -(MBEDTLS_ERR_ECP_ALLOC_FAILED):
return( "ECP - Memory allocation failed" );
case -(MBEDTLS_ERR_ECP_RANDOM_FAILED):
return( "ECP - Generation of random value, such as ephemeral key, failed" );
case -(MBEDTLS_ERR_ECP_INVALID_KEY):
return( "ECP - Invalid private or public key" );
case -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH):
return( "ECP - The buffer contains a valid signature followed by more data" );
case -(MBEDTLS_ERR_ECP_IN_PROGRESS):
return( "ECP - Operation in progress, call again with the same parameters to continue" );
#endif /* MBEDTLS_ECP_C */
#if defined(MBEDTLS_MD_C)
case -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE):
return( "MD - The selected feature is not available" );
case -(MBEDTLS_ERR_MD_BAD_INPUT_DATA):
return( "MD - Bad input parameters to function" );
case -(MBEDTLS_ERR_MD_ALLOC_FAILED):
return( "MD - Failed to allocate memory" );
case -(MBEDTLS_ERR_MD_FILE_IO_ERROR):
return( "MD - Opening or reading of file failed" );
#endif /* MBEDTLS_MD_C */
#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)
case -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT):
return( "PEM - No PEM header or footer found" );
case -(MBEDTLS_ERR_PEM_INVALID_DATA):
return( "PEM - PEM string is not as expected" );
case -(MBEDTLS_ERR_PEM_ALLOC_FAILED):
return( "PEM - Failed to allocate memory" );
case -(MBEDTLS_ERR_PEM_INVALID_ENC_IV):
return( "PEM - RSA IV is not in hex-format" );
case -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG):
return( "PEM - Unsupported key encryption algorithm" );
case -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED):
return( "PEM - Private key password can't be empty" );
case -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH):
return( "PEM - Given private key password does not allow for correct decryption" );
case -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE):
return( "PEM - Unavailable feature, e.g. hashing/encryption combination" );
case -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA):
return( "PEM - Bad input parameters to function" );
#endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */
#if defined(MBEDTLS_PK_C)
case -(MBEDTLS_ERR_PK_ALLOC_FAILED):
return( "PK - Memory allocation failed" );
case -(MBEDTLS_ERR_PK_TYPE_MISMATCH):
return( "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" );
case -(MBEDTLS_ERR_PK_BAD_INPUT_DATA):
return( "PK - Bad input parameters to function" );
case -(MBEDTLS_ERR_PK_FILE_IO_ERROR):
return( "PK - Read/write of file failed" );
case -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION):
return( "PK - Unsupported key version" );
case -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT):
return( "PK - Invalid key tag or value" );
case -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG):
return( "PK - Key algorithm is unsupported (only RSA and EC are supported)" );
case -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED):
return( "PK - Private key password can't be empty" );
case -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH):
return( "PK - Given private key password does not allow for correct decryption" );
case -(MBEDTLS_ERR_PK_INVALID_PUBKEY):
return( "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" );
case -(MBEDTLS_ERR_PK_INVALID_ALG):
return( "PK - The algorithm tag or value is invalid" );
case -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE):
return( "PK - Elliptic curve is unsupported (only NIST curves are supported)" );
case -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE):
return( "PK - Unavailable feature, e.g. RSA disabled for RSA key" );
case -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH):
return( "PK - The buffer contains a valid signature followed by more data" );
case -(MBEDTLS_ERR_PK_BUFFER_TOO_SMALL):
return( "PK - The output buffer is too small" );
#endif /* MBEDTLS_PK_C */
#if defined(MBEDTLS_PKCS12_C)
case -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA):
return( "PKCS12 - Bad input parameters to function" );
case -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE):
return( "PKCS12 - Feature not available, e.g. unsupported encryption scheme" );
case -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT):
return( "PKCS12 - PBE ASN.1 data not as expected" );
case -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH):
return( "PKCS12 - Given private key password does not allow for correct decryption" );
#endif /* MBEDTLS_PKCS12_C */
#if defined(MBEDTLS_PKCS5_C)
case -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA):
return( "PKCS5 - Bad input parameters to function" );
case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT):
return( "PKCS5 - Unexpected ASN.1 data" );
case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE):
return( "PKCS5 - Requested encryption or digest alg not available" );
case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH):
return( "PKCS5 - Given private key password does not allow for correct decryption" );
#endif /* MBEDTLS_PKCS5_C */
#if defined(MBEDTLS_PKCS7_C)
case -(MBEDTLS_ERR_PKCS7_INVALID_FORMAT):
return( "PKCS7 - The format is invalid, e.g. different type expected" );
case -(MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE):
return( "PKCS7 - Unavailable feature, e.g. anything other than signed data" );
case -(MBEDTLS_ERR_PKCS7_INVALID_VERSION):
return( "PKCS7 - The PKCS #7 version element is invalid or cannot be parsed" );
case -(MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO):
return( "PKCS7 - The PKCS #7 content info is invalid or cannot be parsed" );
case -(MBEDTLS_ERR_PKCS7_INVALID_ALG):
return( "PKCS7 - The algorithm tag or value is invalid or cannot be parsed" );
case -(MBEDTLS_ERR_PKCS7_INVALID_CERT):
return( "PKCS7 - The certificate tag or value is invalid or cannot be parsed" );
case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE):
return( "PKCS7 - Error parsing the signature" );
case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO):
return( "PKCS7 - Error parsing the signer's info" );
case -(MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA):
return( "PKCS7 - Input invalid" );
case -(MBEDTLS_ERR_PKCS7_ALLOC_FAILED):
return( "PKCS7 - Allocation of memory failed" );
case -(MBEDTLS_ERR_PKCS7_VERIFY_FAIL):
return( "PKCS7 - Verification Failed" );
case -(MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID):
return( "PKCS7 - The PKCS #7 date issued/expired dates are invalid" );
#endif /* MBEDTLS_PKCS7_C */
#if defined(MBEDTLS_RSA_C)
case -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA):
return( "RSA - Bad input parameters to function" );
case -(MBEDTLS_ERR_RSA_INVALID_PADDING):
return( "RSA - Input data contains invalid padding and is rejected" );
case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED):
return( "RSA - Something failed during generation of a key" );
case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED):
return( "RSA - Key failed to pass the validity check of the library" );
case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED):
return( "RSA - The public key operation failed" );
case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED):
return( "RSA - The private key operation failed" );
case -(MBEDTLS_ERR_RSA_VERIFY_FAILED):
return( "RSA - The PKCS#1 verification failed" );
case -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE):
return( "RSA - The output buffer for decryption is not large enough" );
case -(MBEDTLS_ERR_RSA_RNG_FAILED):
return( "RSA - The random generator failed to generate non-zeros" );
#endif /* MBEDTLS_RSA_C */
#if defined(MBEDTLS_SSL_TLS_C)
case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS):
return( "SSL - A cryptographic operation is in progress. Try again later" );
case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE):
return( "SSL - The requested feature is not available" );
case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA):
return( "SSL - Bad input parameters to function" );
case -(MBEDTLS_ERR_SSL_INVALID_MAC):
return( "SSL - Verification of the message MAC failed" );
case -(MBEDTLS_ERR_SSL_INVALID_RECORD):
return( "SSL - An invalid SSL record was received" );
case -(MBEDTLS_ERR_SSL_CONN_EOF):
return( "SSL - The connection indicated an EOF" );
case -(MBEDTLS_ERR_SSL_DECODE_ERROR):
return( "SSL - A message could not be parsed due to a syntactic error" );
case -(MBEDTLS_ERR_SSL_NO_RNG):
return( "SSL - No RNG was provided to the SSL module" );
case -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE):
return( "SSL - No client certification received from the client, but required by the authentication mode" );
case -(MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION):
return( "SSL - Client received an extended server hello containing an unsupported extension" );
case -(MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL):
return( "SSL - No ALPN protocols supported that the client advertises" );
case -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED):
return( "SSL - The own private key or pre-shared key is not set, but needed" );
case -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED):
return( "SSL - No CA Chain is set, but required to operate" );
case -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE):
return( "SSL - An unexpected message was received from our peer" );
case -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE):
return( "SSL - A fatal alert message was received from our peer" );
case -(MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME):
return( "SSL - No server could be identified matching the client's SNI" );
case -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY):
return( "SSL - The peer notified us that the connection is going to be closed" );
case -(MBEDTLS_ERR_SSL_BAD_CERTIFICATE):
return( "SSL - Processing of the Certificate handshake message failed" );
case -(MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET):
return( "SSL - A TLS 1.3 NewSessionTicket message has been received" );
case -(MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA):
return( "SSL - Not possible to read early data" );
case -(MBEDTLS_ERR_SSL_RECEIVED_EARLY_DATA):
return( "SSL - * Early data has been received as part of an on-going handshake. This error code can be returned only on server side if and only if early data has been enabled by means of the mbedtls_ssl_conf_early_data() API. This error code can then be returned by mbedtls_ssl_handshake(), mbedtls_ssl_handshake_step(), mbedtls_ssl_read() or mbedtls_ssl_write() if early data has been received as part of the handshake sequence they triggered. To read the early data, call mbedtls_ssl_read_early_data()" );
case -(MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA):
return( "SSL - Not possible to write early data" );
case -(MBEDTLS_ERR_SSL_CACHE_ENTRY_NOT_FOUND):
return( "SSL - Cache entry not found" );
case -(MBEDTLS_ERR_SSL_ALLOC_FAILED):
return( "SSL - Memory allocation failed" );
case -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED):
return( "SSL - Hardware acceleration function returned with error" );
case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH):
return( "SSL - Hardware acceleration function skipped / left alone data" );
case -(MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION):
return( "SSL - Handshake protocol not within min/max boundaries" );
case -(MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE):
return( "SSL - The handshake negotiation failed" );
case -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED):
return( "SSL - Session ticket has expired" );
case -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH):
return( "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" );
case -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY):
return( "SSL - Unknown identity received (eg, PSK identity)" );
case -(MBEDTLS_ERR_SSL_INTERNAL_ERROR):
return( "SSL - Internal error (eg, unexpected failure in lower-level module)" );
case -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING):
return( "SSL - A counter would wrap (eg, too many messages exchanged)" );
case -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO):
return( "SSL - Unexpected message at ServerHello in renegotiation" );
case -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED):
return( "SSL - DTLS client must retry for hello verification" );
case -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL):
return( "SSL - A buffer is too small to receive or write a message" );
case -(MBEDTLS_ERR_SSL_WANT_READ):
return( "SSL - No data of requested type currently available on underlying transport" );
case -(MBEDTLS_ERR_SSL_WANT_WRITE):
return( "SSL - Connection requires a write call" );
case -(MBEDTLS_ERR_SSL_TIMEOUT):
return( "SSL - The operation timed out" );
case -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT):
return( "SSL - The client initiated a reconnect from the same port" );
case -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD):
return( "SSL - Record header looks valid but is not expected" );
case -(MBEDTLS_ERR_SSL_NON_FATAL):
return( "SSL - The alert message received indicates a non-fatal error" );
case -(MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER):
return( "SSL - A field in a message was incorrect or inconsistent with other fields" );
case -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING):
return( "SSL - Internal-only message signaling that further message-processing should be done" );
case -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS):
return( "SSL - The asynchronous operation is not completed yet" );
case -(MBEDTLS_ERR_SSL_EARLY_MESSAGE):
return( "SSL - Internal-only message signaling that a message arrived early" );
case -(MBEDTLS_ERR_SSL_UNEXPECTED_CID):
return( "SSL - An encrypted DTLS-frame with an unexpected CID was received" );
case -(MBEDTLS_ERR_SSL_VERSION_MISMATCH):
return( "SSL - An operation failed due to an unexpected version or configuration" );
case -(MBEDTLS_ERR_SSL_BAD_CONFIG):
return( "SSL - Invalid value in SSL config" );
#endif /* MBEDTLS_SSL_TLS_C */
#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
case -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE):
return( "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" );
case -(MBEDTLS_ERR_X509_UNKNOWN_OID):
return( "X509 - Requested OID is unknown" );
case -(MBEDTLS_ERR_X509_INVALID_FORMAT):
return( "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" );
case -(MBEDTLS_ERR_X509_INVALID_VERSION):
return( "X509 - The CRT/CRL/CSR version element is invalid" );
case -(MBEDTLS_ERR_X509_INVALID_SERIAL):
return( "X509 - The serial tag or value is invalid" );
case -(MBEDTLS_ERR_X509_INVALID_ALG):
return( "X509 - The algorithm tag or value is invalid" );
case -(MBEDTLS_ERR_X509_INVALID_NAME):
return( "X509 - The name tag or value is invalid" );
case -(MBEDTLS_ERR_X509_INVALID_DATE):
return( "X509 - The date tag or value is invalid" );
case -(MBEDTLS_ERR_X509_INVALID_SIGNATURE):
return( "X509 - The signature tag or value invalid" );
case -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS):
return( "X509 - The extension tag or value is invalid" );
case -(MBEDTLS_ERR_X509_UNKNOWN_VERSION):
return( "X509 - CRT/CRL/CSR has an unsupported version number" );
case -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG):
return( "X509 - Signature algorithm (oid) is unsupported" );
case -(MBEDTLS_ERR_X509_SIG_MISMATCH):
return( "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" );
case -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED):
return( "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" );
case -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT):
return( "X509 - Format not recognized as DER or PEM" );
case -(MBEDTLS_ERR_X509_BAD_INPUT_DATA):
return( "X509 - Input invalid" );
case -(MBEDTLS_ERR_X509_ALLOC_FAILED):
return( "X509 - Allocation of memory failed" );
case -(MBEDTLS_ERR_X509_FILE_IO_ERROR):
return( "X509 - Read/write of file failed" );
case -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL):
return( "X509 - Destination buffer is too small" );
case -(MBEDTLS_ERR_X509_FATAL_ERROR):
return( "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" );
#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */
/* End Auto-Generated Code. */
default:
break;
}
return NULL;
}
const char *mbedtls_low_level_strerr(int error_code)
{
int low_level_error_code;
if (error_code < 0) {
error_code = -error_code;
}
/* Extract the low-level part from the error code. */
low_level_error_code = error_code & ~0xFF80;
switch (low_level_error_code) {
/* Begin Auto-Generated Code. */
#if defined(MBEDTLS_AES_C)
case -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH):
return( "AES - Invalid key length" );
case -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH):
return( "AES - Invalid data input length" );
case -(MBEDTLS_ERR_AES_BAD_INPUT_DATA):
return( "AES - Invalid input data" );
#endif /* MBEDTLS_AES_C */
#if defined(MBEDTLS_ARIA_C)
case -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA):
return( "ARIA - Bad input data" );
case -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH):
return( "ARIA - Invalid data input length" );
#endif /* MBEDTLS_ARIA_C */
#if defined(MBEDTLS_ASN1_PARSE_C)
case -(MBEDTLS_ERR_ASN1_OUT_OF_DATA):
return( "ASN1 - Out of data when parsing an ASN1 data structure" );
case -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG):
return( "ASN1 - ASN1 tag was of an unexpected value" );
case -(MBEDTLS_ERR_ASN1_INVALID_LENGTH):
return( "ASN1 - Error when trying to determine the length or invalid length" );
case -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH):
return( "ASN1 - Actual length differs from expected length" );
case -(MBEDTLS_ERR_ASN1_INVALID_DATA):
return( "ASN1 - Data is invalid" );
case -(MBEDTLS_ERR_ASN1_ALLOC_FAILED):
return( "ASN1 - Memory allocation failed" );
case -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL):
return( "ASN1 - Buffer too small when writing ASN.1 data structure" );
#endif /* MBEDTLS_ASN1_PARSE_C */
#if defined(MBEDTLS_BASE64_C)
case -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL):
return( "BASE64 - Output buffer too small" );
case -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER):
return( "BASE64 - Invalid character in input" );
#endif /* MBEDTLS_BASE64_C */
#if defined(MBEDTLS_BIGNUM_C)
case -(MBEDTLS_ERR_MPI_FILE_IO_ERROR):
return( "BIGNUM - An error occurred while reading from or writing to a file" );
case -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA):
return( "BIGNUM - Bad input parameters to function" );
case -(MBEDTLS_ERR_MPI_INVALID_CHARACTER):
return( "BIGNUM - There is an invalid character in the digit string" );
case -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL):
return( "BIGNUM - The buffer is too small to write to" );
case -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE):
return( "BIGNUM - The input arguments are negative or result in illegal output" );
case -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO):
return( "BIGNUM - The input argument for division is zero, which is not allowed" );
case -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE):
return( "BIGNUM - The input arguments are not acceptable" );
case -(MBEDTLS_ERR_MPI_ALLOC_FAILED):
return( "BIGNUM - Memory allocation failed" );
#endif /* MBEDTLS_BIGNUM_C */
#if defined(MBEDTLS_CAMELLIA_C)
case -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA):
return( "CAMELLIA - Bad input data" );
case -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH):
return( "CAMELLIA - Invalid data input length" );
#endif /* MBEDTLS_CAMELLIA_C */
#if defined(MBEDTLS_CCM_C)
case -(MBEDTLS_ERR_CCM_BAD_INPUT):
return( "CCM - Bad input parameters to the function" );
case -(MBEDTLS_ERR_CCM_AUTH_FAILED):
return( "CCM - Authenticated decryption failed" );
#endif /* MBEDTLS_CCM_C */
#if defined(MBEDTLS_CHACHA20_C)
case -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA):
return( "CHACHA20 - Invalid input parameter(s)" );
#endif /* MBEDTLS_CHACHA20_C */
#if defined(MBEDTLS_CHACHAPOLY_C)
case -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE):
return( "CHACHAPOLY - The requested operation is not permitted in the current state" );
case -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED):
return( "CHACHAPOLY - Authenticated decryption failed: data was not authentic" );
#endif /* MBEDTLS_CHACHAPOLY_C */
#if defined(MBEDTLS_CTR_DRBG_C)
case -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED):
return( "CTR_DRBG - The entropy source failed" );
case -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG):
return( "CTR_DRBG - The requested random buffer length is too big" );
case -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG):
return( "CTR_DRBG - The input (entropy + additional data) is too large" );
case -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR):
return( "CTR_DRBG - Read or write error in file" );
#endif /* MBEDTLS_CTR_DRBG_C */
#if defined(MBEDTLS_DES_C)
case -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH):
return( "DES - The data input has an invalid length" );
#endif /* MBEDTLS_DES_C */
#if defined(MBEDTLS_ENTROPY_C)
case -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED):
return( "ENTROPY - Critical entropy source failure" );
case -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES):
return( "ENTROPY - No more sources can be added" );
case -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED):
return( "ENTROPY - No sources have been added to poll" );
case -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE):
return( "ENTROPY - No strong sources have been added to poll" );
case -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR):
return( "ENTROPY - Read/write error in file" );
#endif /* MBEDTLS_ENTROPY_C */
#if defined(MBEDTLS_ERROR_C)
case -(MBEDTLS_ERR_ERROR_GENERIC_ERROR):
return( "ERROR - Generic error" );
case -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED):
return( "ERROR - This is a bug in the library" );
#endif /* MBEDTLS_ERROR_C */
#if defined(MBEDTLS_PLATFORM_C)
case -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED):
return( "PLATFORM - Hardware accelerator failed" );
case -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED):
return( "PLATFORM - The requested feature is not supported by the platform" );
#endif /* MBEDTLS_PLATFORM_C */
#if defined(MBEDTLS_GCM_C)
case -(MBEDTLS_ERR_GCM_AUTH_FAILED):
return( "GCM - Authenticated decryption failed" );
case -(MBEDTLS_ERR_GCM_BAD_INPUT):
return( "GCM - Bad input parameters to function" );
case -(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL):
return( "GCM - An output buffer is too small" );
#endif /* MBEDTLS_GCM_C */
#if defined(MBEDTLS_HKDF_C)
case -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA):
return( "HKDF - Bad input parameters to function" );
#endif /* MBEDTLS_HKDF_C */
#if defined(MBEDTLS_HMAC_DRBG_C)
case -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG):
return( "HMAC_DRBG - Too many random requested in single call" );
case -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG):
return( "HMAC_DRBG - Input too large (Entropy + additional)" );
case -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR):
return( "HMAC_DRBG - Read/write error in file" );
case -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED):
return( "HMAC_DRBG - The entropy source failed" );
#endif /* MBEDTLS_HMAC_DRBG_C */
#if defined(MBEDTLS_LMS_C)
case -(MBEDTLS_ERR_LMS_BAD_INPUT_DATA):
return( "LMS - Bad data has been input to an LMS function" );
case -(MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS):
return( "LMS - Specified LMS key has utilised all of its private keys" );
case -(MBEDTLS_ERR_LMS_VERIFY_FAILED):
return( "LMS - LMS signature verification failed" );
case -(MBEDTLS_ERR_LMS_ALLOC_FAILED):
return( "LMS - LMS failed to allocate space for a private key" );
case -(MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL):
return( "LMS - Input/output buffer is too small to contain requited data" );
#endif /* MBEDTLS_LMS_C */
#if defined(MBEDTLS_NET_C)
case -(MBEDTLS_ERR_NET_SOCKET_FAILED):
return( "NET - Failed to open a socket" );
case -(MBEDTLS_ERR_NET_CONNECT_FAILED):
return( "NET - The connection to the given server / port failed" );
case -(MBEDTLS_ERR_NET_BIND_FAILED):
return( "NET - Binding of the socket failed" );
case -(MBEDTLS_ERR_NET_LISTEN_FAILED):
return( "NET - Could not listen on the socket" );
case -(MBEDTLS_ERR_NET_ACCEPT_FAILED):
return( "NET - Could not accept the incoming connection" );
case -(MBEDTLS_ERR_NET_RECV_FAILED):
return( "NET - Reading information from the socket failed" );
case -(MBEDTLS_ERR_NET_SEND_FAILED):
return( "NET - Sending information through the socket failed" );
case -(MBEDTLS_ERR_NET_CONN_RESET):
return( "NET - Connection was reset by peer" );
case -(MBEDTLS_ERR_NET_UNKNOWN_HOST):
return( "NET - Failed to get an IP address for the given hostname" );
case -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL):
return( "NET - Buffer is too small to hold the data" );
case -(MBEDTLS_ERR_NET_INVALID_CONTEXT):
return( "NET - The context is invalid, eg because it was free()ed" );
case -(MBEDTLS_ERR_NET_POLL_FAILED):
return( "NET - Polling the net context failed" );
case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA):
return( "NET - Input invalid" );
#endif /* MBEDTLS_NET_C */
#if defined(MBEDTLS_OID_C)
case -(MBEDTLS_ERR_OID_NOT_FOUND):
return( "OID - OID is not found" );
case -(MBEDTLS_ERR_OID_BUF_TOO_SMALL):
return( "OID - output buffer is too small" );
#endif /* MBEDTLS_OID_C */
#if defined(MBEDTLS_POLY1305_C)
case -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA):
return( "POLY1305 - Invalid input parameter(s)" );
#endif /* MBEDTLS_POLY1305_C */
#if defined(MBEDTLS_SHA1_C)
case -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA):
return( "SHA1 - SHA-1 input data was malformed" );
#endif /* MBEDTLS_SHA1_C */
#if defined(MBEDTLS_SHA256_C)
case -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA):
return( "SHA256 - SHA-256 input data was malformed" );
#endif /* MBEDTLS_SHA256_C */
#if defined(MBEDTLS_SHA3_C)
case -(MBEDTLS_ERR_SHA3_BAD_INPUT_DATA):
return( "SHA3 - SHA-3 input data was malformed" );
#endif /* MBEDTLS_SHA3_C */
#if defined(MBEDTLS_SHA512_C)
case -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA):
return( "SHA512 - SHA-512 input data was malformed" );
#endif /* MBEDTLS_SHA512_C */
#if defined(MBEDTLS_THREADING_C)
case -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA):
return( "THREADING - Bad input parameters to function" );
case -(MBEDTLS_ERR_THREADING_MUTEX_ERROR):
return( "THREADING - Locking / unlocking / free failed with error code" );
#endif /* MBEDTLS_THREADING_C */
/* End Auto-Generated Code. */
default:
break;
}
return NULL;
}
void mbedtls_strerror(int ret, char *buf, size_t buflen)
{
size_t len;
int use_ret;
const char *high_level_error_description = NULL;
const char *low_level_error_description = NULL;
if (buflen == 0) {
return;
}
memset(buf, 0x00, buflen);
if (ret < 0) {
ret = -ret;
}
if (ret & 0xFF80) {
use_ret = ret & 0xFF80;
// Translate high level error code.
high_level_error_description = mbedtls_high_level_strerr(ret);
if (high_level_error_description == NULL) {
mbedtls_snprintf(buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret);
} else {
mbedtls_snprintf(buf, buflen, "%s", high_level_error_description);
}
#if defined(MBEDTLS_SSL_TLS_C)
// Early return in case of a fatal error - do not try to translate low
// level code.
if (use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) {
return;
}
#endif /* MBEDTLS_SSL_TLS_C */
}
use_ret = ret & ~0xFF80;
if (use_ret == 0) {
return;
}
// If high level code is present, make a concatenation between both
// error strings.
//
len = strlen(buf);
if (len > 0) {
if (buflen - len < 5) {
return;
}
mbedtls_snprintf(buf + len, buflen - len, " : ");
buf += len + 3;
buflen -= len + 3;
}
// Translate low level error code.
low_level_error_description = mbedtls_low_level_strerr(ret);
if (low_level_error_description == NULL) {
mbedtls_snprintf(buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret);
} else {
mbedtls_snprintf(buf, buflen, "%s", low_level_error_description);
}
}
#else /* MBEDTLS_ERROR_C */
/*
* Provide a dummy implementation when MBEDTLS_ERROR_C is not defined
*/
void mbedtls_strerror(int ret, char *buf, size_t buflen)
{
((void) ret);
if (buflen > 0) {
buf[0] = '\0';
}
}
#endif /* MBEDTLS_ERROR_C */
#if defined(MBEDTLS_TEST_HOOKS)
void (*mbedtls_test_hook_error_add)(int, int, const char *, int);
#endif
#endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */
File diff suppressed because it is too large Load Diff
@@ -1,256 +0,0 @@
/*
* Functions to delegate cryptographic operations to an available
* and appropriate accelerator.
* Warning: This file is now auto-generated.
*/
/* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
/* BEGIN-common headers */
#include "common.h"
#include "psa_crypto_aead.h"
#include "psa_crypto_cipher.h"
#include "psa_crypto_core.h"
#include "psa_crypto_driver_wrappers_no_static.h"
#include "psa_crypto_hash.h"
#include "psa_crypto_mac.h"
#include "psa_crypto_pake.h"
#include "psa_crypto_rsa.h"
#include "mbedtls/platform.h"
/* END-common headers */
#if defined(MBEDTLS_PSA_CRYPTO_C)
/* BEGIN-driver headers */
/* Headers for mbedtls_test opaque driver */
#if defined(PSA_CRYPTO_DRIVER_TEST)
#include "test/drivers/test_driver.h"
#endif
/* Headers for mbedtls_test transparent driver */
#if defined(PSA_CRYPTO_DRIVER_TEST)
#include "test/drivers/test_driver.h"
#endif
/* Headers for p256 transparent driver */
#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
#include "../3rdparty/p256-m/p256-m_driver_entrypoints.h"
#endif
/* END-driver headers */
/* Auto-generated values depending on which drivers are registered.
* ID 0 is reserved for unallocated operations.
* ID 1 is reserved for the Mbed TLS software driver. */
/* BEGIN-driver id definition */
#define PSA_CRYPTO_MBED_TLS_DRIVER_ID (1)
#define MBEDTLS_TEST_OPAQUE_DRIVER_ID (2)
#define MBEDTLS_TEST_TRANSPARENT_DRIVER_ID (3)
#define P256_TRANSPARENT_DRIVER_ID (4)
/* END-driver id */
/* BEGIN-Common Macro definitions */
/* END-Common Macro definitions */
/* Support the 'old' SE interface when asked to */
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
/* PSA_CRYPTO_DRIVER_PRESENT is defined when either a new-style or old-style
* SE driver is present, to avoid unused argument errors at compile time. */
#ifndef PSA_CRYPTO_DRIVER_PRESENT
#define PSA_CRYPTO_DRIVER_PRESENT
#endif
#include "psa_crypto_se.h"
#endif
/** Get the key buffer size required to store the key material of a key
* associated with an opaque driver.
*
* \param[in] attributes The key attributes.
* \param[out] key_buffer_size Minimum buffer size to contain the key material
*
* \retval #PSA_SUCCESS
* The minimum size for a buffer to contain the key material has been
* returned successfully.
* \retval #PSA_ERROR_NOT_SUPPORTED
* The type and/or the size in bits of the key or the combination of
* the two is not supported.
* \retval #PSA_ERROR_INVALID_ARGUMENT
* The key is declared with a lifetime not known to us.
*/
psa_status_t psa_driver_wrapper_get_key_buffer_size(
const psa_key_attributes_t *attributes,
size_t *key_buffer_size )
{
psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime(attributes) );
psa_key_type_t key_type = psa_get_key_type(attributes);
size_t key_bits = psa_get_key_bits(attributes);
*key_buffer_size = 0;
switch( location )
{
#if defined(PSA_CRYPTO_DRIVER_TEST)
case PSA_CRYPTO_TEST_DRIVER_LOCATION:
#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
/* Emulate property 'builtin_key_size' */
if( psa_key_id_is_builtin(
MBEDTLS_SVC_KEY_ID_GET_KEY_ID(
psa_get_key_id( attributes ) ) ) )
{
*key_buffer_size = sizeof( psa_drv_slot_number_t );
return( PSA_SUCCESS );
}
#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */
*key_buffer_size = mbedtls_test_opaque_size_function( key_type,
key_bits );
return( ( *key_buffer_size != 0 ) ?
PSA_SUCCESS : PSA_ERROR_NOT_SUPPORTED );
#endif /* PSA_CRYPTO_DRIVER_TEST */
default:
(void)key_type;
(void)key_bits;
return( PSA_ERROR_INVALID_ARGUMENT );
}
}
psa_status_t psa_driver_wrapper_export_public_key(
const psa_key_attributes_t *attributes,
const uint8_t *key_buffer, size_t key_buffer_size,
uint8_t *data, size_t data_size, size_t *data_length )
{
psa_status_t status = PSA_ERROR_INVALID_ARGUMENT;
psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(
psa_get_key_lifetime( attributes ) );
/* Try dynamically-registered SE interface first */
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
const psa_drv_se_t *drv;
psa_drv_se_context_t *drv_context;
if( psa_get_se_driver( psa_get_key_lifetime(attributes), &drv, &drv_context ) )
{
if( ( drv->key_management == NULL ) ||
( drv->key_management->p_export_public == NULL ) )
{
return( PSA_ERROR_NOT_SUPPORTED );
}
return( drv->key_management->p_export_public(
drv_context,
*( (psa_key_slot_number_t *)key_buffer ),
data, data_size, data_length ) );
}
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
switch( location )
{
case PSA_KEY_LOCATION_LOCAL_STORAGE:
/* Key is stored in the slot in export representation, so
* cycle through all known transparent accelerators */
#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
#if (defined(PSA_CRYPTO_DRIVER_TEST) )
status = mbedtls_test_transparent_export_public_key
(attributes,
key_buffer,
key_buffer_size,
data,
data_size,
data_length
);
if( status != PSA_ERROR_NOT_SUPPORTED )
return( status );
#endif
#if (defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED) )
status = p256_transparent_export_public_key
(attributes,
key_buffer,
key_buffer_size,
data,
data_size,
data_length
);
if( status != PSA_ERROR_NOT_SUPPORTED )
return( status );
#endif
#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */
/* Fell through, meaning no accelerator supports this operation */
return( psa_export_public_key_internal( attributes,
key_buffer,
key_buffer_size,
data,
data_size,
data_length ) );
/* Add cases for opaque driver here */
#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
#if (defined(PSA_CRYPTO_DRIVER_TEST) )
case 0x7fffff:
return( mbedtls_test_opaque_export_public_key
(attributes,
key_buffer,
key_buffer_size,
data,
data_size,
data_length
));
#endif
#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */
default:
/* Key is declared with a lifetime not known to us */
return( status );
}
}
psa_status_t psa_driver_wrapper_get_builtin_key(
psa_drv_slot_number_t slot_number,
psa_key_attributes_t *attributes,
uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length )
{
psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime(attributes) );
switch( location )
{
#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
#if (defined(PSA_CRYPTO_DRIVER_TEST) )
case 0x7fffff:
return( mbedtls_test_opaque_get_builtin_key
(slot_number,
attributes,
key_buffer,
key_buffer_size,
key_buffer_length
));
#endif
#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */
default:
(void) slot_number;
(void) key_buffer;
(void) key_buffer_size;
(void) key_buffer_length;
return( PSA_ERROR_DOES_NOT_EXIST );
}
}
#endif /* MBEDTLS_PSA_CRYPTO_C */
-251
View File
@@ -1,251 +0,0 @@
/* Automatically generated by generate_ssl_debug_helpers.py. DO NOT EDIT. */
/**
* \file ssl_debug_helpers_generated.c
*
* \brief Automatically generated helper functions for debugging
*/
/*
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*
*/
#include "common.h"
#if defined(MBEDTLS_DEBUG_C)
#include "ssl_debug_helpers.h"
const char *mbedtls_ssl_named_group_to_str( uint16_t in )
{
switch( in )
{
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1:
return "secp192k1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1:
return "secp192r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1:
return "secp224k1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1:
return "secp224r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1:
return "secp256k1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1:
return "secp256r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1:
return "secp384r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1:
return "secp521r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1:
return "bp256r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1:
return "bp384r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1:
return "bp512r1";
case MBEDTLS_SSL_IANA_TLS_GROUP_X25519:
return "x25519";
case MBEDTLS_SSL_IANA_TLS_GROUP_X448:
return "x448";
case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048:
return "ffdhe2048";
case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE3072:
return "ffdhe3072";
case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE4096:
return "ffdhe4096";
case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE6144:
return "ffdhe6144";
case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192:
return "ffdhe8192";
};
return "UNKNOWN";
}
const char *mbedtls_ssl_sig_alg_to_str( uint16_t in )
{
switch( in )
{
case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256:
return "rsa_pkcs1_sha256";
case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384:
return "rsa_pkcs1_sha384";
case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512:
return "rsa_pkcs1_sha512";
case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256:
return "ecdsa_secp256r1_sha256";
case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384:
return "ecdsa_secp384r1_sha384";
case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512:
return "ecdsa_secp521r1_sha512";
case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256:
return "rsa_pss_rsae_sha256";
case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384:
return "rsa_pss_rsae_sha384";
case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512:
return "rsa_pss_rsae_sha512";
case MBEDTLS_TLS1_3_SIG_ED25519:
return "ed25519";
case MBEDTLS_TLS1_3_SIG_ED448:
return "ed448";
case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256:
return "rsa_pss_pss_sha256";
case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384:
return "rsa_pss_pss_sha384";
case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512:
return "rsa_pss_pss_sha512";
case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1:
return "rsa_pkcs1_sha1";
case MBEDTLS_TLS1_3_SIG_ECDSA_SHA1:
return "ecdsa_sha1";
case MBEDTLS_TLS1_3_SIG_NONE:
return "none";
};
return "UNKNOWN";
}
const char *mbedtls_ssl_states_str( mbedtls_ssl_states in )
{
switch (in) {
case MBEDTLS_SSL_HELLO_REQUEST:
return "MBEDTLS_SSL_HELLO_REQUEST";
case MBEDTLS_SSL_CLIENT_HELLO:
return "MBEDTLS_SSL_CLIENT_HELLO";
case MBEDTLS_SSL_SERVER_HELLO:
return "MBEDTLS_SSL_SERVER_HELLO";
case MBEDTLS_SSL_SERVER_CERTIFICATE:
return "MBEDTLS_SSL_SERVER_CERTIFICATE";
case MBEDTLS_SSL_SERVER_KEY_EXCHANGE:
return "MBEDTLS_SSL_SERVER_KEY_EXCHANGE";
case MBEDTLS_SSL_CERTIFICATE_REQUEST:
return "MBEDTLS_SSL_CERTIFICATE_REQUEST";
case MBEDTLS_SSL_SERVER_HELLO_DONE:
return "MBEDTLS_SSL_SERVER_HELLO_DONE";
case MBEDTLS_SSL_CLIENT_CERTIFICATE:
return "MBEDTLS_SSL_CLIENT_CERTIFICATE";
case MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:
return "MBEDTLS_SSL_CLIENT_KEY_EXCHANGE";
case MBEDTLS_SSL_CERTIFICATE_VERIFY:
return "MBEDTLS_SSL_CERTIFICATE_VERIFY";
case MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:
return "MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC";
case MBEDTLS_SSL_CLIENT_FINISHED:
return "MBEDTLS_SSL_CLIENT_FINISHED";
case MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:
return "MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC";
case MBEDTLS_SSL_SERVER_FINISHED:
return "MBEDTLS_SSL_SERVER_FINISHED";
case MBEDTLS_SSL_FLUSH_BUFFERS:
return "MBEDTLS_SSL_FLUSH_BUFFERS";
case MBEDTLS_SSL_HANDSHAKE_WRAPUP:
return "MBEDTLS_SSL_HANDSHAKE_WRAPUP";
case MBEDTLS_SSL_NEW_SESSION_TICKET:
return "MBEDTLS_SSL_NEW_SESSION_TICKET";
case MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT:
return "MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT";
case MBEDTLS_SSL_HELLO_RETRY_REQUEST:
return "MBEDTLS_SSL_HELLO_RETRY_REQUEST";
case MBEDTLS_SSL_ENCRYPTED_EXTENSIONS:
return "MBEDTLS_SSL_ENCRYPTED_EXTENSIONS";
case MBEDTLS_SSL_END_OF_EARLY_DATA:
return "MBEDTLS_SSL_END_OF_EARLY_DATA";
case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY:
return "MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY";
case MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED:
return "MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED";
case MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO:
return "MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO";
case MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO:
return "MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO";
case MBEDTLS_SSL_CLIENT_CCS_AFTER_CLIENT_HELLO:
return "MBEDTLS_SSL_CLIENT_CCS_AFTER_CLIENT_HELLO";
case MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST:
return "MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST";
case MBEDTLS_SSL_HANDSHAKE_OVER:
return "MBEDTLS_SSL_HANDSHAKE_OVER";
case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET:
return "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET";
case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH:
return "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH";
default:
return "UNKNOWN_VALUE";
}
}
#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C)
const char *mbedtls_ssl_early_data_status_str( mbedtls_ssl_early_data_status in )
{
switch (in) {
case MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_INDICATED:
return "MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_INDICATED";
case MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED:
return "MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED";
case MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED:
return "MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED";
default:
return "UNKNOWN_VALUE";
}
}
#endif /* defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) */
const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in )
{
switch (in) {
case MBEDTLS_SSL_VERSION_UNKNOWN:
return "MBEDTLS_SSL_VERSION_UNKNOWN";
case MBEDTLS_SSL_VERSION_TLS1_2:
return "MBEDTLS_SSL_VERSION_TLS1_2";
case MBEDTLS_SSL_VERSION_TLS1_3:
return "MBEDTLS_SSL_VERSION_TLS1_3";
default:
return "UNKNOWN_VALUE";
}
}
const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in )
{
switch (in) {
case MBEDTLS_SSL_TLS_PRF_NONE:
return "MBEDTLS_SSL_TLS_PRF_NONE";
case MBEDTLS_SSL_TLS_PRF_SHA384:
return "MBEDTLS_SSL_TLS_PRF_SHA384";
case MBEDTLS_SSL_TLS_PRF_SHA256:
return "MBEDTLS_SSL_TLS_PRF_SHA256";
case MBEDTLS_SSL_HKDF_EXPAND_SHA384:
return "MBEDTLS_SSL_HKDF_EXPAND_SHA384";
case MBEDTLS_SSL_HKDF_EXPAND_SHA256:
return "MBEDTLS_SSL_HKDF_EXPAND_SHA256";
default:
return "UNKNOWN_VALUE";
}
}
const char *mbedtls_ssl_key_export_type_str( mbedtls_ssl_key_export_type in )
{
switch (in) {
case MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET";
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET";
case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET";
case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET";
case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET";
case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET";
case MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET:
return "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET";
#endif
default:
return "UNKNOWN_VALUE";
}
}
#endif /* MBEDTLS_DEBUG_C */
/* End of automatically generated file. */
+2
View File
@@ -2981,6 +2981,7 @@ static inline void mbedtls_ssl_tls13_session_clear_ticket_flags(
#define MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_MASK \
(1 << MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_BIT)
#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
static inline int mbedtls_ssl_conf_get_session_tickets(
const mbedtls_ssl_config *conf)
{
@@ -2988,6 +2989,7 @@ static inline int mbedtls_ssl_conf_get_session_tickets(
MBEDTLS_SSL_SESSION_TICKETS_ENABLED :
MBEDTLS_SSL_SESSION_TICKETS_DISABLED;
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
static inline int mbedtls_ssl_conf_is_signal_new_session_tickets_enabled(
+1 -7
View File
@@ -5066,15 +5066,9 @@ int mbedtls_ssl_handle_message_type(mbedtls_ssl_context *ssl)
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) {
#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE)
MBEDTLS_SSL_DEBUG_MSG(1,
MBEDTLS_SSL_DEBUG_MSG(2,
("Ignore ChangeCipherSpec in TLS 1.3 compatibility mode"));
return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING;
#else
MBEDTLS_SSL_DEBUG_MSG(1,
("ChangeCipherSpec invalid in TLS 1.3 without compatibility mode"));
return MBEDTLS_ERR_SSL_INVALID_RECORD;
#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
}
+1 -1
View File
@@ -1964,7 +1964,7 @@ static int ssl_write_encrypted_pms(mbedtls_ssl_context *ssl,
ssl->out_msg + offset + len_bytes, olen,
MBEDTLS_SSL_OUT_CONTENT_LEN - offset - len_bytes,
ssl->conf->f_rng, ssl->conf->p_rng)) != 0) {
MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_rsa_pkcs1_encrypt", ret);
MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_encrypt", ret);
return ret;
}
-844
View File
@@ -1,844 +0,0 @@
/*
* Version feature information
*
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#include "common.h"
#if defined(MBEDTLS_VERSION_C)
#include "mbedtls/version.h"
#include <string.h>
static const char * const features[] = {
#if defined(MBEDTLS_VERSION_FEATURES)
#if defined(MBEDTLS_HAVE_ASM)
"HAVE_ASM", //no-check-names
#endif /* MBEDTLS_HAVE_ASM */
#if defined(MBEDTLS_NO_UDBL_DIVISION)
"NO_UDBL_DIVISION", //no-check-names
#endif /* MBEDTLS_NO_UDBL_DIVISION */
#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION)
"NO_64BIT_MULTIPLICATION", //no-check-names
#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */
#if defined(MBEDTLS_HAVE_SSE2)
"HAVE_SSE2", //no-check-names
#endif /* MBEDTLS_HAVE_SSE2 */
#if defined(MBEDTLS_HAVE_TIME)
"HAVE_TIME", //no-check-names
#endif /* MBEDTLS_HAVE_TIME */
#if defined(MBEDTLS_HAVE_TIME_DATE)
"HAVE_TIME_DATE", //no-check-names
#endif /* MBEDTLS_HAVE_TIME_DATE */
#if defined(MBEDTLS_PLATFORM_MEMORY)
"PLATFORM_MEMORY", //no-check-names
#endif /* MBEDTLS_PLATFORM_MEMORY */
#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
"PLATFORM_NO_STD_FUNCTIONS", //no-check-names
#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */
#if defined(MBEDTLS_PLATFORM_SETBUF_ALT)
"PLATFORM_SETBUF_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */
#if defined(MBEDTLS_PLATFORM_EXIT_ALT)
"PLATFORM_EXIT_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_EXIT_ALT */
#if defined(MBEDTLS_PLATFORM_TIME_ALT)
"PLATFORM_TIME_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_TIME_ALT */
#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
"PLATFORM_FPRINTF_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */
#if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
"PLATFORM_PRINTF_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */
#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
"PLATFORM_SNPRINTF_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */
#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT)
"PLATFORM_VSNPRINTF_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */
#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
"PLATFORM_NV_SEED_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */
#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
"PLATFORM_SETUP_TEARDOWN_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */
#if defined(MBEDTLS_PLATFORM_MS_TIME_ALT)
"PLATFORM_MS_TIME_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_MS_TIME_ALT */
#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
"PLATFORM_GMTIME_R_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */
#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT)
"PLATFORM_ZEROIZE_ALT", //no-check-names
#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */
#if defined(MBEDTLS_DEPRECATED_WARNING)
"DEPRECATED_WARNING", //no-check-names
#endif /* MBEDTLS_DEPRECATED_WARNING */
#if defined(MBEDTLS_DEPRECATED_REMOVED)
"DEPRECATED_REMOVED", //no-check-names
#endif /* MBEDTLS_DEPRECATED_REMOVED */
#if defined(MBEDTLS_TIMING_ALT)
"TIMING_ALT", //no-check-names
#endif /* MBEDTLS_TIMING_ALT */
#if defined(MBEDTLS_AES_ALT)
"AES_ALT", //no-check-names
#endif /* MBEDTLS_AES_ALT */
#if defined(MBEDTLS_ARIA_ALT)
"ARIA_ALT", //no-check-names
#endif /* MBEDTLS_ARIA_ALT */
#if defined(MBEDTLS_CAMELLIA_ALT)
"CAMELLIA_ALT", //no-check-names
#endif /* MBEDTLS_CAMELLIA_ALT */
#if defined(MBEDTLS_CCM_ALT)
"CCM_ALT", //no-check-names
#endif /* MBEDTLS_CCM_ALT */
#if defined(MBEDTLS_CHACHA20_ALT)
"CHACHA20_ALT", //no-check-names
#endif /* MBEDTLS_CHACHA20_ALT */
#if defined(MBEDTLS_CHACHAPOLY_ALT)
"CHACHAPOLY_ALT", //no-check-names
#endif /* MBEDTLS_CHACHAPOLY_ALT */
#if defined(MBEDTLS_CMAC_ALT)
"CMAC_ALT", //no-check-names
#endif /* MBEDTLS_CMAC_ALT */
#if defined(MBEDTLS_DES_ALT)
"DES_ALT", //no-check-names
#endif /* MBEDTLS_DES_ALT */
#if defined(MBEDTLS_DHM_ALT)
"DHM_ALT", //no-check-names
#endif /* MBEDTLS_DHM_ALT */
#if defined(MBEDTLS_ECJPAKE_ALT)
"ECJPAKE_ALT", //no-check-names
#endif /* MBEDTLS_ECJPAKE_ALT */
#if defined(MBEDTLS_GCM_ALT)
"GCM_ALT", //no-check-names
#endif /* MBEDTLS_GCM_ALT */
#if defined(MBEDTLS_NIST_KW_ALT)
"NIST_KW_ALT", //no-check-names
#endif /* MBEDTLS_NIST_KW_ALT */
#if defined(MBEDTLS_MD5_ALT)
"MD5_ALT", //no-check-names
#endif /* MBEDTLS_MD5_ALT */
#if defined(MBEDTLS_POLY1305_ALT)
"POLY1305_ALT", //no-check-names
#endif /* MBEDTLS_POLY1305_ALT */
#if defined(MBEDTLS_RIPEMD160_ALT)
"RIPEMD160_ALT", //no-check-names
#endif /* MBEDTLS_RIPEMD160_ALT */
#if defined(MBEDTLS_RSA_ALT)
"RSA_ALT", //no-check-names
#endif /* MBEDTLS_RSA_ALT */
#if defined(MBEDTLS_SHA1_ALT)
"SHA1_ALT", //no-check-names
#endif /* MBEDTLS_SHA1_ALT */
#if defined(MBEDTLS_SHA256_ALT)
"SHA256_ALT", //no-check-names
#endif /* MBEDTLS_SHA256_ALT */
#if defined(MBEDTLS_SHA512_ALT)
"SHA512_ALT", //no-check-names
#endif /* MBEDTLS_SHA512_ALT */
#if defined(MBEDTLS_ECP_ALT)
"ECP_ALT", //no-check-names
#endif /* MBEDTLS_ECP_ALT */
#if defined(MBEDTLS_MD5_PROCESS_ALT)
"MD5_PROCESS_ALT", //no-check-names
#endif /* MBEDTLS_MD5_PROCESS_ALT */
#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT)
"RIPEMD160_PROCESS_ALT", //no-check-names
#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */
#if defined(MBEDTLS_SHA1_PROCESS_ALT)
"SHA1_PROCESS_ALT", //no-check-names
#endif /* MBEDTLS_SHA1_PROCESS_ALT */
#if defined(MBEDTLS_SHA256_PROCESS_ALT)
"SHA256_PROCESS_ALT", //no-check-names
#endif /* MBEDTLS_SHA256_PROCESS_ALT */
#if defined(MBEDTLS_SHA512_PROCESS_ALT)
"SHA512_PROCESS_ALT", //no-check-names
#endif /* MBEDTLS_SHA512_PROCESS_ALT */
#if defined(MBEDTLS_DES_SETKEY_ALT)
"DES_SETKEY_ALT", //no-check-names
#endif /* MBEDTLS_DES_SETKEY_ALT */
#if defined(MBEDTLS_DES_CRYPT_ECB_ALT)
"DES_CRYPT_ECB_ALT", //no-check-names
#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */
#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT)
"DES3_CRYPT_ECB_ALT", //no-check-names
#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */
#if defined(MBEDTLS_AES_SETKEY_ENC_ALT)
"AES_SETKEY_ENC_ALT", //no-check-names
#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */
#if defined(MBEDTLS_AES_SETKEY_DEC_ALT)
"AES_SETKEY_DEC_ALT", //no-check-names
#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */
#if defined(MBEDTLS_AES_ENCRYPT_ALT)
"AES_ENCRYPT_ALT", //no-check-names
#endif /* MBEDTLS_AES_ENCRYPT_ALT */
#if defined(MBEDTLS_AES_DECRYPT_ALT)
"AES_DECRYPT_ALT", //no-check-names
#endif /* MBEDTLS_AES_DECRYPT_ALT */
#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
"ECDH_GEN_PUBLIC_ALT", //no-check-names
#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */
#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
"ECDH_COMPUTE_SHARED_ALT", //no-check-names
#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
#if defined(MBEDTLS_ECDSA_VERIFY_ALT)
"ECDSA_VERIFY_ALT", //no-check-names
#endif /* MBEDTLS_ECDSA_VERIFY_ALT */
#if defined(MBEDTLS_ECDSA_SIGN_ALT)
"ECDSA_SIGN_ALT", //no-check-names
#endif /* MBEDTLS_ECDSA_SIGN_ALT */
#if defined(MBEDTLS_ECDSA_GENKEY_ALT)
"ECDSA_GENKEY_ALT", //no-check-names
#endif /* MBEDTLS_ECDSA_GENKEY_ALT */
#if defined(MBEDTLS_ECP_INTERNAL_ALT)
"ECP_INTERNAL_ALT", //no-check-names
#endif /* MBEDTLS_ECP_INTERNAL_ALT */
#if defined(MBEDTLS_ECP_NO_FALLBACK)
"ECP_NO_FALLBACK", //no-check-names
#endif /* MBEDTLS_ECP_NO_FALLBACK */
#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
"ECP_RANDOMIZE_JAC_ALT", //no-check-names
#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */
#if defined(MBEDTLS_ECP_ADD_MIXED_ALT)
"ECP_ADD_MIXED_ALT", //no-check-names
#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */
#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
"ECP_DOUBLE_JAC_ALT", //no-check-names
#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */
#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
"ECP_NORMALIZE_JAC_MANY_ALT", //no-check-names
#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */
#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
"ECP_NORMALIZE_JAC_ALT", //no-check-names
#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */
#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
"ECP_DOUBLE_ADD_MXZ_ALT", //no-check-names
#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */
#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
"ECP_RANDOMIZE_MXZ_ALT", //no-check-names
#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */
#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
"ECP_NORMALIZE_MXZ_ALT", //no-check-names
#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */
#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
"ENTROPY_HARDWARE_ALT", //no-check-names
#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */
#if defined(MBEDTLS_AES_ROM_TABLES)
"AES_ROM_TABLES", //no-check-names
#endif /* MBEDTLS_AES_ROM_TABLES */
#if defined(MBEDTLS_AES_FEWER_TABLES)
"AES_FEWER_TABLES", //no-check-names
#endif /* MBEDTLS_AES_FEWER_TABLES */
#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
"AES_ONLY_128_BIT_KEY_LENGTH", //no-check-names
#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
"AES_USE_HARDWARE_ONLY", //no-check-names
#endif /* MBEDTLS_AES_USE_HARDWARE_ONLY */
#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY)
"CAMELLIA_SMALL_MEMORY", //no-check-names
#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */
#if defined(MBEDTLS_CHECK_RETURN_WARNING)
"CHECK_RETURN_WARNING", //no-check-names
#endif /* MBEDTLS_CHECK_RETURN_WARNING */
#if defined(MBEDTLS_CIPHER_MODE_CBC)
"CIPHER_MODE_CBC", //no-check-names
#endif /* MBEDTLS_CIPHER_MODE_CBC */
#if defined(MBEDTLS_CIPHER_MODE_CFB)
"CIPHER_MODE_CFB", //no-check-names
#endif /* MBEDTLS_CIPHER_MODE_CFB */
#if defined(MBEDTLS_CIPHER_MODE_CTR)
"CIPHER_MODE_CTR", //no-check-names
#endif /* MBEDTLS_CIPHER_MODE_CTR */
#if defined(MBEDTLS_CIPHER_MODE_OFB)
"CIPHER_MODE_OFB", //no-check-names
#endif /* MBEDTLS_CIPHER_MODE_OFB */
#if defined(MBEDTLS_CIPHER_MODE_XTS)
"CIPHER_MODE_XTS", //no-check-names
#endif /* MBEDTLS_CIPHER_MODE_XTS */
#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
"CIPHER_NULL_CIPHER", //no-check-names
#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
"CIPHER_PADDING_PKCS7", //no-check-names
#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS)
"CIPHER_PADDING_ONE_AND_ZEROS", //no-check-names
#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */
#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN)
"CIPHER_PADDING_ZEROS_AND_LEN", //no-check-names
#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */
#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
"CIPHER_PADDING_ZEROS", //no-check-names
#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */
#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
"CTR_DRBG_USE_128_BIT_KEY", //no-check-names
#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */
#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
"ECDH_VARIANT_EVEREST_ENABLED", //no-check-names
#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
"ECP_DP_SECP192R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
"ECP_DP_SECP224R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
"ECP_DP_SECP256R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
"ECP_DP_SECP384R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
"ECP_DP_SECP521R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
"ECP_DP_SECP192K1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
"ECP_DP_SECP224K1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
"ECP_DP_SECP256K1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
"ECP_DP_BP256R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
"ECP_DP_BP384R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
"ECP_DP_BP512R1_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
"ECP_DP_CURVE25519_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
"ECP_DP_CURVE448_ENABLED", //no-check-names
#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
#if defined(MBEDTLS_ECP_NIST_OPTIM)
"ECP_NIST_OPTIM", //no-check-names
#endif /* MBEDTLS_ECP_NIST_OPTIM */
#if defined(MBEDTLS_ECP_RESTARTABLE)
"ECP_RESTARTABLE", //no-check-names
#endif /* MBEDTLS_ECP_RESTARTABLE */
#if defined(MBEDTLS_ECP_WITH_MPI_UINT)
"ECP_WITH_MPI_UINT", //no-check-names
#endif /* MBEDTLS_ECP_WITH_MPI_UINT */
#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
"ECDSA_DETERMINISTIC", //no-check-names
#endif /* MBEDTLS_ECDSA_DETERMINISTIC */
#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
"KEY_EXCHANGE_PSK_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
"KEY_EXCHANGE_DHE_PSK_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
"KEY_EXCHANGE_ECDHE_PSK_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
"KEY_EXCHANGE_RSA_PSK_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
"KEY_EXCHANGE_RSA_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
"KEY_EXCHANGE_DHE_RSA_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
"KEY_EXCHANGE_ECDHE_RSA_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
"KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
"KEY_EXCHANGE_ECDH_ECDSA_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
"KEY_EXCHANGE_ECDH_RSA_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
"KEY_EXCHANGE_ECJPAKE_ENABLED", //no-check-names
#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED)
"PK_PARSE_EC_EXTENDED", //no-check-names
#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */
#if defined(MBEDTLS_PK_PARSE_EC_COMPRESSED)
"PK_PARSE_EC_COMPRESSED", //no-check-names
#endif /* MBEDTLS_PK_PARSE_EC_COMPRESSED */
#if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
"ERROR_STRERROR_DUMMY", //no-check-names
#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */
#if defined(MBEDTLS_GENPRIME)
"GENPRIME", //no-check-names
#endif /* MBEDTLS_GENPRIME */
#if defined(MBEDTLS_FS_IO)
"FS_IO", //no-check-names
#endif /* MBEDTLS_FS_IO */
#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
"NO_DEFAULT_ENTROPY_SOURCES", //no-check-names
#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
#if defined(MBEDTLS_NO_PLATFORM_ENTROPY)
"NO_PLATFORM_ENTROPY", //no-check-names
#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */
#if defined(MBEDTLS_ENTROPY_FORCE_SHA256)
"ENTROPY_FORCE_SHA256", //no-check-names
#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */
#if defined(MBEDTLS_ENTROPY_NV_SEED)
"ENTROPY_NV_SEED", //no-check-names
#endif /* MBEDTLS_ENTROPY_NV_SEED */
#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
"PSA_CRYPTO_KEY_ID_ENCODES_OWNER", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */
#if defined(MBEDTLS_MEMORY_DEBUG)
"MEMORY_DEBUG", //no-check-names
#endif /* MBEDTLS_MEMORY_DEBUG */
#if defined(MBEDTLS_MEMORY_BACKTRACE)
"MEMORY_BACKTRACE", //no-check-names
#endif /* MBEDTLS_MEMORY_BACKTRACE */
#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
"PK_RSA_ALT_SUPPORT", //no-check-names
#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
#if defined(MBEDTLS_PKCS1_V15)
"PKCS1_V15", //no-check-names
#endif /* MBEDTLS_PKCS1_V15 */
#if defined(MBEDTLS_PKCS1_V21)
"PKCS1_V21", //no-check-names
#endif /* MBEDTLS_PKCS1_V21 */
#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
"PSA_CRYPTO_BUILTIN_KEYS", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */
#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
"PSA_CRYPTO_CLIENT", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
"PSA_CRYPTO_EXTERNAL_RNG", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
#if defined(MBEDTLS_PSA_CRYPTO_SPM)
"PSA_CRYPTO_SPM", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_SPM */
#if defined(MBEDTLS_PSA_KEY_STORE_DYNAMIC)
"PSA_KEY_STORE_DYNAMIC", //no-check-names
#endif /* MBEDTLS_PSA_KEY_STORE_DYNAMIC */
#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
"PSA_P256M_DRIVER_ENABLED", //no-check-names
#endif /* MBEDTLS_PSA_P256M_DRIVER_ENABLED */
#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
"PSA_INJECT_ENTROPY", //no-check-names
#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
#if defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
"PSA_ASSUME_EXCLUSIVE_BUFFERS", //no-check-names
#endif /* MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS */
#if defined(MBEDTLS_RSA_NO_CRT)
"RSA_NO_CRT", //no-check-names
#endif /* MBEDTLS_RSA_NO_CRT */
#if defined(MBEDTLS_SELF_TEST)
"SELF_TEST", //no-check-names
#endif /* MBEDTLS_SELF_TEST */
#if defined(MBEDTLS_SHA256_SMALLER)
"SHA256_SMALLER", //no-check-names
#endif /* MBEDTLS_SHA256_SMALLER */
#if defined(MBEDTLS_SHA512_SMALLER)
"SHA512_SMALLER", //no-check-names
#endif /* MBEDTLS_SHA512_SMALLER */
#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES)
"SSL_ALL_ALERT_MESSAGES", //no-check-names
#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
"SSL_DTLS_CONNECTION_ID", //no-check-names
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT)
"SSL_DTLS_CONNECTION_ID_COMPAT", //no-check-names
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
"SSL_ASYNC_PRIVATE", //no-check-names
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
"SSL_CONTEXT_SERIALIZATION", //no-check-names
#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */
#if defined(MBEDTLS_SSL_DEBUG_ALL)
"SSL_DEBUG_ALL", //no-check-names
#endif /* MBEDTLS_SSL_DEBUG_ALL */
#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
"SSL_ENCRYPT_THEN_MAC", //no-check-names
#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */
#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
"SSL_EXTENDED_MASTER_SECRET", //no-check-names
#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */
#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
"SSL_KEEP_PEER_CERTIFICATE", //no-check-names
#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
#if defined(MBEDTLS_SSL_RENEGOTIATION)
"SSL_RENEGOTIATION", //no-check-names
#endif /* MBEDTLS_SSL_RENEGOTIATION */
#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
"SSL_MAX_FRAGMENT_LENGTH", //no-check-names
#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */
#if defined(MBEDTLS_SSL_RECORD_SIZE_LIMIT)
"SSL_RECORD_SIZE_LIMIT", //no-check-names
#endif /* MBEDTLS_SSL_RECORD_SIZE_LIMIT */
#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
"SSL_PROTO_TLS1_2", //no-check-names
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
"SSL_PROTO_TLS1_3", //no-check-names
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE)
"SSL_TLS1_3_COMPATIBILITY_MODE", //no-check-names
#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */
#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED)
"SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", //no-check-names
#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */
#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)
"SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", //no-check-names
#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */
#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)
"SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", //no-check-names
#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */
#if defined(MBEDTLS_SSL_EARLY_DATA)
"SSL_EARLY_DATA", //no-check-names
#endif /* MBEDTLS_SSL_EARLY_DATA */
#if defined(MBEDTLS_SSL_PROTO_DTLS)
"SSL_PROTO_DTLS", //no-check-names
#endif /* MBEDTLS_SSL_PROTO_DTLS */
#if defined(MBEDTLS_SSL_ALPN)
"SSL_ALPN", //no-check-names
#endif /* MBEDTLS_SSL_ALPN */
#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
"SSL_DTLS_ANTI_REPLAY", //no-check-names
#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */
#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
"SSL_DTLS_HELLO_VERIFY", //no-check-names
#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */
#if defined(MBEDTLS_SSL_DTLS_SRTP)
"SSL_DTLS_SRTP", //no-check-names
#endif /* MBEDTLS_SSL_DTLS_SRTP */
#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE)
"SSL_DTLS_CLIENT_PORT_REUSE", //no-check-names
#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */
#if defined(MBEDTLS_SSL_SESSION_TICKETS)
"SSL_SESSION_TICKETS", //no-check-names
#endif /* MBEDTLS_SSL_SESSION_TICKETS */
#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
"SSL_SERVER_NAME_INDICATION", //no-check-names
#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */
#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)
"SSL_VARIABLE_BUFFER_LENGTH", //no-check-names
#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN)
"TEST_CONSTANT_FLOW_MEMSAN", //no-check-names
#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND)
"TEST_CONSTANT_FLOW_VALGRIND", //no-check-names
#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */
#if defined(MBEDTLS_TEST_HOOKS)
"TEST_HOOKS", //no-check-names
#endif /* MBEDTLS_TEST_HOOKS */
#if defined(MBEDTLS_THREADING_ALT)
"THREADING_ALT", //no-check-names
#endif /* MBEDTLS_THREADING_ALT */
#if defined(MBEDTLS_THREADING_PTHREAD)
"THREADING_PTHREAD", //no-check-names
#endif /* MBEDTLS_THREADING_PTHREAD */
#if defined(MBEDTLS_USE_PSA_CRYPTO)
"USE_PSA_CRYPTO", //no-check-names
#endif /* MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
"PSA_CRYPTO_CONFIG", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */
#if defined(MBEDTLS_VERSION_FEATURES)
"VERSION_FEATURES", //no-check-names
#endif /* MBEDTLS_VERSION_FEATURES */
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
"X509_TRUSTED_CERTIFICATE_CALLBACK", //no-check-names
#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
#if defined(MBEDTLS_X509_REMOVE_INFO)
"X509_REMOVE_INFO", //no-check-names
#endif /* MBEDTLS_X509_REMOVE_INFO */
#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
"X509_RSASSA_PSS_SUPPORT", //no-check-names
#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
#if defined(MBEDTLS_AESNI_C)
"AESNI_C", //no-check-names
#endif /* MBEDTLS_AESNI_C */
#if defined(MBEDTLS_AESCE_C)
"AESCE_C", //no-check-names
#endif /* MBEDTLS_AESCE_C */
#if defined(MBEDTLS_AES_C)
"AES_C", //no-check-names
#endif /* MBEDTLS_AES_C */
#if defined(MBEDTLS_ASN1_PARSE_C)
"ASN1_PARSE_C", //no-check-names
#endif /* MBEDTLS_ASN1_PARSE_C */
#if defined(MBEDTLS_ASN1_WRITE_C)
"ASN1_WRITE_C", //no-check-names
#endif /* MBEDTLS_ASN1_WRITE_C */
#if defined(MBEDTLS_BASE64_C)
"BASE64_C", //no-check-names
#endif /* MBEDTLS_BASE64_C */
#if defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
"BLOCK_CIPHER_NO_DECRYPT", //no-check-names
#endif /* MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
#if defined(MBEDTLS_BIGNUM_C)
"BIGNUM_C", //no-check-names
#endif /* MBEDTLS_BIGNUM_C */
#if defined(MBEDTLS_CAMELLIA_C)
"CAMELLIA_C", //no-check-names
#endif /* MBEDTLS_CAMELLIA_C */
#if defined(MBEDTLS_ARIA_C)
"ARIA_C", //no-check-names
#endif /* MBEDTLS_ARIA_C */
#if defined(MBEDTLS_CCM_C)
"CCM_C", //no-check-names
#endif /* MBEDTLS_CCM_C */
#if defined(MBEDTLS_CHACHA20_C)
"CHACHA20_C", //no-check-names
#endif /* MBEDTLS_CHACHA20_C */
#if defined(MBEDTLS_CHACHAPOLY_C)
"CHACHAPOLY_C", //no-check-names
#endif /* MBEDTLS_CHACHAPOLY_C */
#if defined(MBEDTLS_CIPHER_C)
"CIPHER_C", //no-check-names
#endif /* MBEDTLS_CIPHER_C */
#if defined(MBEDTLS_CMAC_C)
"CMAC_C", //no-check-names
#endif /* MBEDTLS_CMAC_C */
#if defined(MBEDTLS_CTR_DRBG_C)
"CTR_DRBG_C", //no-check-names
#endif /* MBEDTLS_CTR_DRBG_C */
#if defined(MBEDTLS_DEBUG_C)
"DEBUG_C", //no-check-names
#endif /* MBEDTLS_DEBUG_C */
#if defined(MBEDTLS_DES_C)
"DES_C", //no-check-names
#endif /* MBEDTLS_DES_C */
#if defined(MBEDTLS_DHM_C)
"DHM_C", //no-check-names
#endif /* MBEDTLS_DHM_C */
#if defined(MBEDTLS_ECDH_C)
"ECDH_C", //no-check-names
#endif /* MBEDTLS_ECDH_C */
#if defined(MBEDTLS_ECDSA_C)
"ECDSA_C", //no-check-names
#endif /* MBEDTLS_ECDSA_C */
#if defined(MBEDTLS_ECJPAKE_C)
"ECJPAKE_C", //no-check-names
#endif /* MBEDTLS_ECJPAKE_C */
#if defined(MBEDTLS_ECP_C)
"ECP_C", //no-check-names
#endif /* MBEDTLS_ECP_C */
#if defined(MBEDTLS_ENTROPY_C)
"ENTROPY_C", //no-check-names
#endif /* MBEDTLS_ENTROPY_C */
#if defined(MBEDTLS_ERROR_C)
"ERROR_C", //no-check-names
#endif /* MBEDTLS_ERROR_C */
#if defined(MBEDTLS_GCM_C)
"GCM_C", //no-check-names
#endif /* MBEDTLS_GCM_C */
#if defined(MBEDTLS_GCM_LARGE_TABLE)
"GCM_LARGE_TABLE", //no-check-names
#endif /* MBEDTLS_GCM_LARGE_TABLE */
#if defined(MBEDTLS_HKDF_C)
"HKDF_C", //no-check-names
#endif /* MBEDTLS_HKDF_C */
#if defined(MBEDTLS_HMAC_DRBG_C)
"HMAC_DRBG_C", //no-check-names
#endif /* MBEDTLS_HMAC_DRBG_C */
#if defined(MBEDTLS_LMS_C)
"LMS_C", //no-check-names
#endif /* MBEDTLS_LMS_C */
#if defined(MBEDTLS_LMS_PRIVATE)
"LMS_PRIVATE", //no-check-names
#endif /* MBEDTLS_LMS_PRIVATE */
#if defined(MBEDTLS_NIST_KW_C)
"NIST_KW_C", //no-check-names
#endif /* MBEDTLS_NIST_KW_C */
#if defined(MBEDTLS_MD_C)
"MD_C", //no-check-names
#endif /* MBEDTLS_MD_C */
#if defined(MBEDTLS_MD5_C)
"MD5_C", //no-check-names
#endif /* MBEDTLS_MD5_C */
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
"MEMORY_BUFFER_ALLOC_C", //no-check-names
#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
#if defined(MBEDTLS_NET_C)
"NET_C", //no-check-names
#endif /* MBEDTLS_NET_C */
#if defined(MBEDTLS_OID_C)
"OID_C", //no-check-names
#endif /* MBEDTLS_OID_C */
#if defined(MBEDTLS_PADLOCK_C)
"PADLOCK_C", //no-check-names
#endif /* MBEDTLS_PADLOCK_C */
#if defined(MBEDTLS_PEM_PARSE_C)
"PEM_PARSE_C", //no-check-names
#endif /* MBEDTLS_PEM_PARSE_C */
#if defined(MBEDTLS_PEM_WRITE_C)
"PEM_WRITE_C", //no-check-names
#endif /* MBEDTLS_PEM_WRITE_C */
#if defined(MBEDTLS_PK_C)
"PK_C", //no-check-names
#endif /* MBEDTLS_PK_C */
#if defined(MBEDTLS_PK_PARSE_C)
"PK_PARSE_C", //no-check-names
#endif /* MBEDTLS_PK_PARSE_C */
#if defined(MBEDTLS_PK_WRITE_C)
"PK_WRITE_C", //no-check-names
#endif /* MBEDTLS_PK_WRITE_C */
#if defined(MBEDTLS_PKCS5_C)
"PKCS5_C", //no-check-names
#endif /* MBEDTLS_PKCS5_C */
#if defined(MBEDTLS_PKCS7_C)
"PKCS7_C", //no-check-names
#endif /* MBEDTLS_PKCS7_C */
#if defined(MBEDTLS_PKCS12_C)
"PKCS12_C", //no-check-names
#endif /* MBEDTLS_PKCS12_C */
#if defined(MBEDTLS_PLATFORM_C)
"PLATFORM_C", //no-check-names
#endif /* MBEDTLS_PLATFORM_C */
#if defined(MBEDTLS_POLY1305_C)
"POLY1305_C", //no-check-names
#endif /* MBEDTLS_POLY1305_C */
#if defined(MBEDTLS_PSA_CRYPTO_C)
"PSA_CRYPTO_C", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_C */
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
"PSA_CRYPTO_SE_C", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
"PSA_CRYPTO_STORAGE_C", //no-check-names
#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */
#if defined(MBEDTLS_PSA_ITS_FILE_C)
"PSA_ITS_FILE_C", //no-check-names
#endif /* MBEDTLS_PSA_ITS_FILE_C */
#if defined(MBEDTLS_RIPEMD160_C)
"RIPEMD160_C", //no-check-names
#endif /* MBEDTLS_RIPEMD160_C */
#if defined(MBEDTLS_RSA_C)
"RSA_C", //no-check-names
#endif /* MBEDTLS_RSA_C */
#if defined(MBEDTLS_SHA1_C)
"SHA1_C", //no-check-names
#endif /* MBEDTLS_SHA1_C */
#if defined(MBEDTLS_SHA224_C)
"SHA224_C", //no-check-names
#endif /* MBEDTLS_SHA224_C */
#if defined(MBEDTLS_SHA256_C)
"SHA256_C", //no-check-names
#endif /* MBEDTLS_SHA256_C */
#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)
"SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT", //no-check-names
#endif /* MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT */
#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT)
"SHA256_USE_A64_CRYPTO_IF_PRESENT", //no-check-names
#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */
#if defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
"SHA256_USE_ARMV8_A_CRYPTO_ONLY", //no-check-names
#endif /* MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY */
#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY)
"SHA256_USE_A64_CRYPTO_ONLY", //no-check-names
#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */
#if defined(MBEDTLS_SHA384_C)
"SHA384_C", //no-check-names
#endif /* MBEDTLS_SHA384_C */
#if defined(MBEDTLS_SHA512_C)
"SHA512_C", //no-check-names
#endif /* MBEDTLS_SHA512_C */
#if defined(MBEDTLS_SHA3_C)
"SHA3_C", //no-check-names
#endif /* MBEDTLS_SHA3_C */
#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT)
"SHA512_USE_A64_CRYPTO_IF_PRESENT", //no-check-names
#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */
#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
"SHA512_USE_A64_CRYPTO_ONLY", //no-check-names
#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */
#if defined(MBEDTLS_SSL_CACHE_C)
"SSL_CACHE_C", //no-check-names
#endif /* MBEDTLS_SSL_CACHE_C */
#if defined(MBEDTLS_SSL_COOKIE_C)
"SSL_COOKIE_C", //no-check-names
#endif /* MBEDTLS_SSL_COOKIE_C */
#if defined(MBEDTLS_SSL_TICKET_C)
"SSL_TICKET_C", //no-check-names
#endif /* MBEDTLS_SSL_TICKET_C */
#if defined(MBEDTLS_SSL_CLI_C)
"SSL_CLI_C", //no-check-names
#endif /* MBEDTLS_SSL_CLI_C */
#if defined(MBEDTLS_SSL_SRV_C)
"SSL_SRV_C", //no-check-names
#endif /* MBEDTLS_SSL_SRV_C */
#if defined(MBEDTLS_SSL_TLS_C)
"SSL_TLS_C", //no-check-names
#endif /* MBEDTLS_SSL_TLS_C */
#if defined(MBEDTLS_THREADING_C)
"THREADING_C", //no-check-names
#endif /* MBEDTLS_THREADING_C */
#if defined(MBEDTLS_TIMING_C)
"TIMING_C", //no-check-names
#endif /* MBEDTLS_TIMING_C */
#if defined(MBEDTLS_VERSION_C)
"VERSION_C", //no-check-names
#endif /* MBEDTLS_VERSION_C */
#if defined(MBEDTLS_X509_USE_C)
"X509_USE_C", //no-check-names
#endif /* MBEDTLS_X509_USE_C */
#if defined(MBEDTLS_X509_CRT_PARSE_C)
"X509_CRT_PARSE_C", //no-check-names
#endif /* MBEDTLS_X509_CRT_PARSE_C */
#if defined(MBEDTLS_X509_CRL_PARSE_C)
"X509_CRL_PARSE_C", //no-check-names
#endif /* MBEDTLS_X509_CRL_PARSE_C */
#if defined(MBEDTLS_X509_CSR_PARSE_C)
"X509_CSR_PARSE_C", //no-check-names
#endif /* MBEDTLS_X509_CSR_PARSE_C */
#if defined(MBEDTLS_X509_CREATE_C)
"X509_CREATE_C", //no-check-names
#endif /* MBEDTLS_X509_CREATE_C */
#if defined(MBEDTLS_X509_CRT_WRITE_C)
"X509_CRT_WRITE_C", //no-check-names
#endif /* MBEDTLS_X509_CRT_WRITE_C */
#if defined(MBEDTLS_X509_CSR_WRITE_C)
"X509_CSR_WRITE_C", //no-check-names
#endif /* MBEDTLS_X509_CSR_WRITE_C */
#endif /* MBEDTLS_VERSION_FEATURES */
NULL
};
int mbedtls_version_check_feature(const char *feature)
{
const char * const *idx = features;
if (*idx == NULL) {
return -2;
}
if (feature == NULL) {
return -1;
}
if (strncmp(feature, "MBEDTLS_", 8)) {
return -1;
}
feature += 8;
while (*idx != NULL) {
if (!strcmp(*idx, feature)) {
return 0;
}
idx++;
}
return -1;
}
#endif /* MBEDTLS_VERSION_C */
+8 -8
View File
@@ -73,11 +73,11 @@ x509/crl_app
x509/load_roots
x509/req_app
####START_COMMENTED_GENERATED_FILES###
## Generated source files
#/psa/psa_constant_names_generated.c
#/test/query_config.c
#
## Generated data files
#pkey/keyfile.key
####END_COMMENTED_GENERATED_FILES###
###START_GENERATED_FILES###
# Generated source files
/psa/psa_constant_names_generated.c
/test/query_config.c
# Generated data files
pkey/keyfile.key
###END_GENERATED_FILES###
+3
View File
@@ -1,3 +1,6 @@
set(programs_target "${MBEDTLS_TARGET_PREFIX}programs")
add_custom_target(${programs_target})
add_subdirectory(aes)
add_subdirectory(cipher)
if (NOT WIN32)
+6
View File
@@ -116,6 +116,12 @@ ifndef WINDOWS
all: fuzz
endif
SSL_OPT_APPS = $(filter ssl/%,$(APPS))
SSL_OPT_APPS += test/query_compile_time_config test/udp_proxy
# Just the programs needed to run ssl-opt.sh (and compat.sh)
ssl-opt: $(patsubst %,%$(EXEXT),$(SSL_OPT_APPS))
.PHONY: ssl-opt
fuzz: ${MBEDTLS_TEST_OBJS}
$(MAKE) -C fuzz
+1
View File
@@ -1,6 +1,7 @@
set(executables
crypt_and_hash
)
add_dependencies(${programs_target} ${executables})
foreach(exe IN LISTS executables)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+1
View File
@@ -1,6 +1,7 @@
set(executables
cipher_aead_demo
)
add_dependencies(${programs_target} ${executables})
foreach(exe IN LISTS executables)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+2
View File
@@ -15,6 +15,7 @@ set(executables_no_common_c
fuzz_x509csr
fuzz_pkcs7
)
add_dependencies(${programs_target} ${executables_no_common_c})
set(executables_with_common_c
fuzz_privkey
@@ -23,6 +24,7 @@ set(executables_with_common_c
fuzz_dtlsserver
fuzz_server
)
add_dependencies(${programs_target} ${executables_with_common_c})
foreach(exe IN LISTS executables_no_common_c executables_with_common_c)
+1
View File
@@ -3,6 +3,7 @@ set(executables
hello
md_hmac_demo
)
add_dependencies(${programs_target} ${executables})
foreach(exe IN LISTS executables)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+2
View File
@@ -2,6 +2,7 @@ set(executables_mbedtls
dh_client
dh_server
)
add_dependencies(${programs_target} ${executables_mbedtls})
foreach(exe IN LISTS executables_mbedtls)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
@@ -29,6 +30,7 @@ set(executables_mbedcrypto
rsa_verify
rsa_verify_pss
)
add_dependencies(${programs_target} ${executables_mbedcrypto})
foreach(exe IN LISTS executables_mbedcrypto)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+1
View File
@@ -6,6 +6,7 @@ set(executables
psa_constant_names
psa_hash
)
add_dependencies(${programs_target} ${executables})
if(GEN_FILES)
add_custom_command(
-474
View File
@@ -1,474 +0,0 @@
/* Automatically generated by generate_psa_constant.py. DO NOT EDIT. */
static const char *psa_strerror(psa_status_t status)
{
switch (status) {
case PSA_ERROR_ALREADY_EXISTS: return "PSA_ERROR_ALREADY_EXISTS";
case PSA_ERROR_BAD_STATE: return "PSA_ERROR_BAD_STATE";
case PSA_ERROR_BUFFER_TOO_SMALL: return "PSA_ERROR_BUFFER_TOO_SMALL";
case PSA_ERROR_COMMUNICATION_FAILURE: return "PSA_ERROR_COMMUNICATION_FAILURE";
case PSA_ERROR_CORRUPTION_DETECTED: return "PSA_ERROR_CORRUPTION_DETECTED";
case PSA_ERROR_DATA_CORRUPT: return "PSA_ERROR_DATA_CORRUPT";
case PSA_ERROR_DATA_INVALID: return "PSA_ERROR_DATA_INVALID";
case PSA_ERROR_DOES_NOT_EXIST: return "PSA_ERROR_DOES_NOT_EXIST";
case PSA_ERROR_GENERIC_ERROR: return "PSA_ERROR_GENERIC_ERROR";
case PSA_ERROR_HARDWARE_FAILURE: return "PSA_ERROR_HARDWARE_FAILURE";
case PSA_ERROR_INSUFFICIENT_DATA: return "PSA_ERROR_INSUFFICIENT_DATA";
case PSA_ERROR_INSUFFICIENT_ENTROPY: return "PSA_ERROR_INSUFFICIENT_ENTROPY";
case PSA_ERROR_INSUFFICIENT_MEMORY: return "PSA_ERROR_INSUFFICIENT_MEMORY";
case PSA_ERROR_INSUFFICIENT_STORAGE: return "PSA_ERROR_INSUFFICIENT_STORAGE";
case PSA_ERROR_INVALID_ARGUMENT: return "PSA_ERROR_INVALID_ARGUMENT";
case PSA_ERROR_INVALID_HANDLE: return "PSA_ERROR_INVALID_HANDLE";
case PSA_ERROR_INVALID_PADDING: return "PSA_ERROR_INVALID_PADDING";
case PSA_ERROR_INVALID_SIGNATURE: return "PSA_ERROR_INVALID_SIGNATURE";
case PSA_ERROR_NOT_PERMITTED: return "PSA_ERROR_NOT_PERMITTED";
case PSA_ERROR_NOT_SUPPORTED: return "PSA_ERROR_NOT_SUPPORTED";
case PSA_ERROR_SERVICE_FAILURE: return "PSA_ERROR_SERVICE_FAILURE";
case PSA_ERROR_STORAGE_FAILURE: return "PSA_ERROR_STORAGE_FAILURE";
case PSA_SUCCESS: return "PSA_SUCCESS";
default: return NULL;
}
}
static const char *psa_ecc_family_name(psa_ecc_family_t curve)
{
switch (curve) {
case PSA_ECC_FAMILY_BRAINPOOL_P_R1: return "PSA_ECC_FAMILY_BRAINPOOL_P_R1";
case PSA_ECC_FAMILY_MONTGOMERY: return "PSA_ECC_FAMILY_MONTGOMERY";
case PSA_ECC_FAMILY_SECP_K1: return "PSA_ECC_FAMILY_SECP_K1";
case PSA_ECC_FAMILY_SECP_R1: return "PSA_ECC_FAMILY_SECP_R1";
case PSA_ECC_FAMILY_SECP_R2: return "PSA_ECC_FAMILY_SECP_R2";
case PSA_ECC_FAMILY_SECT_K1: return "PSA_ECC_FAMILY_SECT_K1";
case PSA_ECC_FAMILY_SECT_R1: return "PSA_ECC_FAMILY_SECT_R1";
case PSA_ECC_FAMILY_SECT_R2: return "PSA_ECC_FAMILY_SECT_R2";
case PSA_ECC_FAMILY_TWISTED_EDWARDS: return "PSA_ECC_FAMILY_TWISTED_EDWARDS";
default: return NULL;
}
}
static const char *psa_dh_family_name(psa_dh_family_t group)
{
switch (group) {
case PSA_DH_FAMILY_RFC7919: return "PSA_DH_FAMILY_RFC7919";
default: return NULL;
}
}
static const char *psa_hash_algorithm_name(psa_algorithm_t hash_alg)
{
switch (hash_alg) {
case PSA_ALG_ANY_HASH: return "PSA_ALG_ANY_HASH";
case PSA_ALG_CATEGORY_HASH: return "PSA_ALG_CATEGORY_HASH";
case PSA_ALG_MD5: return "PSA_ALG_MD5";
case PSA_ALG_RIPEMD160: return "PSA_ALG_RIPEMD160";
case PSA_ALG_SHA3_224: return "PSA_ALG_SHA3_224";
case PSA_ALG_SHA3_256: return "PSA_ALG_SHA3_256";
case PSA_ALG_SHA3_384: return "PSA_ALG_SHA3_384";
case PSA_ALG_SHA3_512: return "PSA_ALG_SHA3_512";
case PSA_ALG_SHAKE256_512: return "PSA_ALG_SHAKE256_512";
case PSA_ALG_SHA_1: return "PSA_ALG_SHA_1";
case PSA_ALG_SHA_224: return "PSA_ALG_SHA_224";
case PSA_ALG_SHA_256: return "PSA_ALG_SHA_256";
case PSA_ALG_SHA_384: return "PSA_ALG_SHA_384";
case PSA_ALG_SHA_512: return "PSA_ALG_SHA_512";
case PSA_ALG_SHA_512_224: return "PSA_ALG_SHA_512_224";
case PSA_ALG_SHA_512_256: return "PSA_ALG_SHA_512_256";
default: return NULL;
}
}
static const char *psa_ka_algorithm_name(psa_algorithm_t ka_alg)
{
switch (ka_alg) {
case PSA_ALG_CATEGORY_KEY_AGREEMENT: return "PSA_ALG_CATEGORY_KEY_AGREEMENT";
case PSA_ALG_ECDH: return "PSA_ALG_ECDH";
case PSA_ALG_FFDH: return "PSA_ALG_FFDH";
default: return NULL;
}
}
static int psa_snprint_key_type(char *buffer, size_t buffer_size,
psa_key_type_t type)
{
size_t required_size = 0;
switch (type) {
case PSA_KEY_TYPE_AES: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_AES", 16); break;
case PSA_KEY_TYPE_ARIA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ARIA", 17); break;
case PSA_KEY_TYPE_CAMELLIA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CAMELLIA", 21); break;
case PSA_KEY_TYPE_CATEGORY_FLAG_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_FLAG_PAIR", 31); break;
case PSA_KEY_TYPE_CATEGORY_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_KEY_PAIR", 30); break;
case PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY", 32); break;
case PSA_KEY_TYPE_CATEGORY_RAW: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_RAW", 25); break;
case PSA_KEY_TYPE_CATEGORY_SYMMETRIC: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_SYMMETRIC", 31); break;
case PSA_KEY_TYPE_CHACHA20: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CHACHA20", 21); break;
case PSA_KEY_TYPE_DERIVE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DERIVE", 19); break;
case PSA_KEY_TYPE_DES: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DES", 16); break;
case PSA_KEY_TYPE_DH_KEY_PAIR_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DH_KEY_PAIR_BASE", 29); break;
case PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE", 31); break;
case PSA_KEY_TYPE_DSA_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DSA_KEY_PAIR", 25); break;
case PSA_KEY_TYPE_DSA_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DSA_PUBLIC_KEY", 27); break;
case PSA_KEY_TYPE_ECC_KEY_PAIR_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ECC_KEY_PAIR_BASE", 30); break;
case PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE", 32); break;
case PSA_KEY_TYPE_HMAC: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_HMAC", 17); break;
case PSA_KEY_TYPE_NONE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_NONE", 17); break;
case PSA_KEY_TYPE_PASSWORD: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PASSWORD", 21); break;
case PSA_KEY_TYPE_PASSWORD_HASH: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PASSWORD_HASH", 26); break;
case PSA_KEY_TYPE_PEPPER: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PEPPER", 19); break;
case PSA_KEY_TYPE_RAW_DATA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RAW_DATA", 21); break;
case PSA_KEY_TYPE_RSA_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RSA_KEY_PAIR", 25); break;
case PSA_KEY_TYPE_RSA_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RSA_PUBLIC_KEY", 27); break;
default:
if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) {
append_with_curve(&buffer, buffer_size, &required_size,
"PSA_KEY_TYPE_ECC_KEY_PAIR", 25,
PSA_KEY_TYPE_ECC_GET_FAMILY(type));
} else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(type)) {
append_with_curve(&buffer, buffer_size, &required_size,
"PSA_KEY_TYPE_ECC_PUBLIC_KEY", 27,
PSA_KEY_TYPE_ECC_GET_FAMILY(type));
} else if (PSA_KEY_TYPE_IS_DH_KEY_PAIR(type)) {
append_with_group(&buffer, buffer_size, &required_size,
"PSA_KEY_TYPE_DH_KEY_PAIR", 24,
PSA_KEY_TYPE_DH_GET_FAMILY(type));
} else if (PSA_KEY_TYPE_IS_DH_PUBLIC_KEY(type)) {
append_with_group(&buffer, buffer_size, &required_size,
"PSA_KEY_TYPE_DH_PUBLIC_KEY", 26,
PSA_KEY_TYPE_DH_GET_FAMILY(type));
} else {
return snprintf(buffer, buffer_size,
"0x%04x", (unsigned) type);
}
break;
}
buffer[0] = 0;
return (int) required_size;
}
#define NO_LENGTH_MODIFIER 0xfffffffflu
static int psa_snprint_algorithm(char *buffer, size_t buffer_size,
psa_algorithm_t alg)
{
size_t required_size = 0;
psa_algorithm_t core_alg = alg;
unsigned long length_modifier = NO_LENGTH_MODIFIER;
if (PSA_ALG_IS_MAC(alg)) {
core_alg = PSA_ALG_TRUNCATED_MAC(alg, 0);
if (alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(", 33);
length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg);
} else if (core_alg != alg) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_TRUNCATED_MAC(", 22);
length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg);
}
} else if (PSA_ALG_IS_AEAD(alg)) {
core_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg);
if (core_alg == 0) {
/* For unknown AEAD algorithms, there is no "default tag length". */
core_alg = alg;
} else if (alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(", 43);
length_modifier = PSA_ALG_AEAD_GET_TAG_LENGTH(alg);
} else if (core_alg != alg) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32);
length_modifier = PSA_ALG_AEAD_GET_TAG_LENGTH(alg);
}
} else if (PSA_ALG_IS_KEY_AGREEMENT(alg) &&
!PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) {
core_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF(alg);
append(&buffer, buffer_size, &required_size,
"PSA_ALG_KEY_AGREEMENT(", 22);
append_with_alg(&buffer, buffer_size, &required_size,
psa_ka_algorithm_name,
PSA_ALG_KEY_AGREEMENT_GET_BASE(alg));
append(&buffer, buffer_size, &required_size, ", ", 2);
}
switch (core_alg) {
case PSA_ALG_ANY_HASH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ANY_HASH", 16); break;
case PSA_ALG_CATEGORY_AEAD: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_AEAD", 21); break;
case PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION", 38); break;
case PSA_ALG_CATEGORY_CIPHER: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_CIPHER", 23); break;
case PSA_ALG_CATEGORY_HASH: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_HASH", 21); break;
case PSA_ALG_CATEGORY_KEY_AGREEMENT: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_KEY_AGREEMENT", 30); break;
case PSA_ALG_CATEGORY_KEY_DERIVATION: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_KEY_DERIVATION", 31); break;
case PSA_ALG_CATEGORY_MAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_MAC", 20); break;
case PSA_ALG_CATEGORY_PAKE: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_PAKE", 21); break;
case PSA_ALG_CATEGORY_SIGN: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_SIGN", 21); break;
case PSA_ALG_CBC_MAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_MAC", 15); break;
case PSA_ALG_CBC_NO_PADDING: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_NO_PADDING", 22); break;
case PSA_ALG_CBC_PKCS7: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_PKCS7", 17); break;
case PSA_ALG_CCM: append(&buffer, buffer_size, &required_size, "PSA_ALG_CCM", 11); break;
case PSA_ALG_CCM_STAR_NO_TAG: append(&buffer, buffer_size, &required_size, "PSA_ALG_CCM_STAR_NO_TAG", 23); break;
case PSA_ALG_CFB: append(&buffer, buffer_size, &required_size, "PSA_ALG_CFB", 11); break;
case PSA_ALG_CHACHA20_POLY1305: append(&buffer, buffer_size, &required_size, "PSA_ALG_CHACHA20_POLY1305", 25); break;
case PSA_ALG_CIPHER_MAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_CIPHER_MAC_BASE", 23); break;
case PSA_ALG_CMAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CMAC", 12); break;
case PSA_ALG_CTR: append(&buffer, buffer_size, &required_size, "PSA_ALG_CTR", 11); break;
case PSA_ALG_DETERMINISTIC_DSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DETERMINISTIC_DSA_BASE", 30); break;
case PSA_ALG_DETERMINISTIC_ECDSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DETERMINISTIC_ECDSA_BASE", 32); break;
case PSA_ALG_DSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DSA_BASE", 16); break;
case PSA_ALG_ECB_NO_PADDING: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECB_NO_PADDING", 22); break;
case PSA_ALG_ECDH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECDH", 12); break;
case PSA_ALG_ECDSA_ANY: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECDSA_ANY", 17); break;
case PSA_ALG_ED25519PH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ED25519PH", 17); break;
case PSA_ALG_ED448PH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ED448PH", 15); break;
case PSA_ALG_FFDH: append(&buffer, buffer_size, &required_size, "PSA_ALG_FFDH", 12); break;
case PSA_ALG_GCM: append(&buffer, buffer_size, &required_size, "PSA_ALG_GCM", 11); break;
case PSA_ALG_HASH_EDDSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HASH_EDDSA_BASE", 23); break;
case PSA_ALG_HKDF_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_BASE", 17); break;
case PSA_ALG_HKDF_EXPAND_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_EXPAND_BASE", 24); break;
case PSA_ALG_HKDF_EXTRACT_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_EXTRACT_BASE", 25); break;
case PSA_ALG_HMAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HMAC_BASE", 17); break;
case PSA_ALG_JPAKE: append(&buffer, buffer_size, &required_size, "PSA_ALG_JPAKE", 13); break;
case PSA_ALG_MD5: append(&buffer, buffer_size, &required_size, "PSA_ALG_MD5", 11); break;
case PSA_ALG_NONE: append(&buffer, buffer_size, &required_size, "PSA_ALG_NONE", 12); break;
case PSA_ALG_OFB: append(&buffer, buffer_size, &required_size, "PSA_ALG_OFB", 11); break;
case PSA_ALG_PBKDF2_AES_CMAC_PRF_128: append(&buffer, buffer_size, &required_size, "PSA_ALG_PBKDF2_AES_CMAC_PRF_128", 31); break;
case PSA_ALG_PBKDF2_HMAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_PBKDF2_HMAC_BASE", 24); break;
case PSA_ALG_PURE_EDDSA: append(&buffer, buffer_size, &required_size, "PSA_ALG_PURE_EDDSA", 18); break;
case PSA_ALG_RIPEMD160: append(&buffer, buffer_size, &required_size, "PSA_ALG_RIPEMD160", 17); break;
case PSA_ALG_RSA_OAEP_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_OAEP_BASE", 21); break;
case PSA_ALG_RSA_PKCS1V15_CRYPT: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PKCS1V15_CRYPT", 26); break;
case PSA_ALG_RSA_PKCS1V15_SIGN_RAW: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PKCS1V15_SIGN_RAW", 29); break;
case PSA_ALG_RSA_PSS_ANY_SALT_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PSS_ANY_SALT_BASE", 29); break;
case PSA_ALG_RSA_PSS_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PSS_BASE", 20); break;
case PSA_ALG_SHA3_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_224", 16); break;
case PSA_ALG_SHA3_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_256", 16); break;
case PSA_ALG_SHA3_384: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_384", 16); break;
case PSA_ALG_SHA3_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_512", 16); break;
case PSA_ALG_SHAKE256_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHAKE256_512", 20); break;
case PSA_ALG_SHA_1: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_1", 13); break;
case PSA_ALG_SHA_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_224", 15); break;
case PSA_ALG_SHA_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_256", 15); break;
case PSA_ALG_SHA_384: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_384", 15); break;
case PSA_ALG_SHA_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512", 15); break;
case PSA_ALG_SHA_512_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512_224", 19); break;
case PSA_ALG_SHA_512_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512_256", 19); break;
case PSA_ALG_STREAM_CIPHER: append(&buffer, buffer_size, &required_size, "PSA_ALG_STREAM_CIPHER", 21); break;
case PSA_ALG_TLS12_ECJPAKE_TO_PMS: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_ECJPAKE_TO_PMS", 28); break;
case PSA_ALG_TLS12_PRF_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_PRF_BASE", 22); break;
case PSA_ALG_TLS12_PSK_TO_MS_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_PSK_TO_MS_BASE", 28); break;
case PSA_ALG_XTS: append(&buffer, buffer_size, &required_size, "PSA_ALG_XTS", 11); break;
default:
if (PSA_ALG_IS_DETERMINISTIC_DSA(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_DETERMINISTIC_DSA(", 25 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_DETERMINISTIC_ECDSA(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_DETERMINISTIC_ECDSA(", 27 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_RANDOMIZED_DSA(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_DSA(", 11 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_RANDOMIZED_ECDSA(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_ECDSA(", 13 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_HKDF(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_HKDF(", 12 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_HKDF_EXPAND(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_HKDF_EXPAND(", 19 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_HKDF_EXTRACT(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_HKDF_EXTRACT(", 20 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_HMAC(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_HMAC(", 12 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_PBKDF2_HMAC(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_PBKDF2_HMAC(", 19 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_RSA_OAEP(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_RSA_OAEP(", 16 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_RSA_PKCS1V15_SIGN(", 25 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_RSA_PSS_STANDARD_SALT(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_RSA_PSS(", 15 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_RSA_PSS_ANY_SALT(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_RSA_PSS_ANY_SALT(", 24 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_TLS12_PRF(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_TLS12_PRF(", 17 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else if (PSA_ALG_IS_TLS12_PSK_TO_MS(core_alg)) {
append(&buffer, buffer_size, &required_size,
"PSA_ALG_TLS12_PSK_TO_MS(", 23 + 1);
append_with_alg(&buffer, buffer_size, &required_size,
psa_hash_algorithm_name,
PSA_ALG_GET_HASH(core_alg));
append(&buffer, buffer_size, &required_size, ")", 1);
} else {
append_integer(&buffer, buffer_size, &required_size,
"0x%08lx", (unsigned long) core_alg);
}
break;
}
if (core_alg != alg) {
if (length_modifier != NO_LENGTH_MODIFIER) {
append(&buffer, buffer_size, &required_size, ", ", 2);
append_integer(&buffer, buffer_size, &required_size,
"%lu", length_modifier);
}
append(&buffer, buffer_size, &required_size, ")", 1);
}
buffer[0] = 0;
return (int) required_size;
}
static int psa_snprint_key_usage(char *buffer, size_t buffer_size,
psa_key_usage_t usage)
{
size_t required_size = 0;
if (usage == 0) {
if (buffer_size > 1) {
buffer[0] = '0';
buffer[1] = 0;
} else if (buffer_size == 1) {
buffer[0] = 0;
}
return 1;
}
if (usage & PSA_KEY_USAGE_COPY) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_COPY", 18);
usage ^= PSA_KEY_USAGE_COPY;
}
if (usage & PSA_KEY_USAGE_DECRYPT) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_DECRYPT", 21);
usage ^= PSA_KEY_USAGE_DECRYPT;
}
if (usage & PSA_KEY_USAGE_DERIVE) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_DERIVE", 20);
usage ^= PSA_KEY_USAGE_DERIVE;
}
if (usage & PSA_KEY_USAGE_ENCRYPT) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_ENCRYPT", 21);
usage ^= PSA_KEY_USAGE_ENCRYPT;
}
if (usage & PSA_KEY_USAGE_EXPORT) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_EXPORT", 20);
usage ^= PSA_KEY_USAGE_EXPORT;
}
if (usage & PSA_KEY_USAGE_SIGN_HASH) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_SIGN_HASH", 23);
usage ^= PSA_KEY_USAGE_SIGN_HASH;
}
if (usage & PSA_KEY_USAGE_SIGN_MESSAGE) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_SIGN_MESSAGE", 26);
usage ^= PSA_KEY_USAGE_SIGN_MESSAGE;
}
if (usage & PSA_KEY_USAGE_VERIFY_DERIVATION) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_DERIVATION", 31);
usage ^= PSA_KEY_USAGE_VERIFY_DERIVATION;
}
if (usage & PSA_KEY_USAGE_VERIFY_HASH) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_HASH", 25);
usage ^= PSA_KEY_USAGE_VERIFY_HASH;
}
if (usage & PSA_KEY_USAGE_VERIFY_MESSAGE) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_MESSAGE", 28);
usage ^= PSA_KEY_USAGE_VERIFY_MESSAGE;
}
if (usage != 0) {
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
append_integer(&buffer, buffer_size, &required_size,
"0x%08lx", (unsigned long) usage);
} else {
buffer[0] = 0;
}
return (int) required_size;
}
/* End of automatically generated file. */
+1
View File
@@ -2,6 +2,7 @@ set(executables
gen_entropy
gen_random_ctr_drbg
)
add_dependencies(${programs_target} ${executables})
foreach(exe IN LISTS executables)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+2
View File
@@ -16,6 +16,8 @@ set(executables
ssl_server
ssl_server2
)
add_dependencies(${programs_target} ${executables})
add_dependencies(${ssl_opt_target} ${executables})
if(GEN_FILES)
# Inform CMake that the following file will be generated as part of the build
+12 -14
View File
@@ -9,18 +9,17 @@
#include "mbedtls/platform.h"
#if !defined(MBEDTLS_SSL_CLI_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_TIMING_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_PEM_PARSE_C)
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_CLI_C) || \
!defined(MBEDTLS_TIMING_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)
int main(void)
{
mbedtls_printf("MBEDTLS_SSL_CLI_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
"MBEDTLS_NET_C and/or MBEDTLS_TIMING_C and/or "
"MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or "
"MBEDTLS_PEM_PARSE_C not defined.\n");
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_SSL_CLI_C and/or "
"MBEDTLS_TIMING_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_X509_CRT_PARSE_C "
"not defined.\n");
mbedtls_exit(0);
}
#else
@@ -45,7 +44,7 @@ int main(void)
#ifdef FORCE_IPV4
#define SERVER_ADDR "127.0.0.1" /* Forces IPv4 */
#else
#define SERVER_ADDR "::1"
#define SERVER_ADDR SERVER_NAME
#endif
#define MESSAGE "Echo this"
@@ -337,6 +336,5 @@ exit:
mbedtls_exit(ret);
}
#endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_DTLS && MBEDTLS_NET_C &&
MBEDTLS_TIMING_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C &&
MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_RSA_C && MBEDTLS_PEM_PARSE_C */
#endif /* configuration allows running this program */
+21 -16
View File
@@ -18,19 +18,19 @@
#define BIND_IP "::"
#endif
#if !defined(MBEDTLS_SSL_SRV_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) || \
!defined(MBEDTLS_SSL_COOKIE_C) || !defined(MBEDTLS_NET_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_TIMING_C)
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_SRV_C) || \
!defined(MBEDTLS_TIMING_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) || \
!defined(MBEDTLS_SSL_COOKIE_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)
int main(void)
{
printf("MBEDTLS_SSL_SRV_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
"MBEDTLS_SSL_COOKIE_C and/or MBEDTLS_NET_C and/or "
"MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_TIMING_C not defined.\n");
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_TIMING_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
"MBEDTLS_SSL_COOKIE_C and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_X509_CRT_PARSE_C "
"not defined.\n");
mbedtls_exit(0);
}
#else
@@ -291,7 +291,14 @@ reset:
ret = 0;
goto reset;
} else if (ret != 0) {
printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret);
printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n", (unsigned int) -ret);
if (ret == MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE) {
printf(" An unexpected message was received from our peer. If this happened at\n");
printf(" the beginning of the handshake, this is likely a duplicated packet or\n");
printf(" a close_notify alert from the previous connection, which is harmless.\n");
ret = 0;
}
printf("\n");
goto reset;
}
@@ -402,7 +409,5 @@ exit:
mbedtls_exit(ret);
}
#endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_PROTO_DTLS &&
MBEDTLS_SSL_COOKIE_C && MBEDTLS_NET_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_CTR_DRBG_C && MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_RSA_C
&& MBEDTLS_PEM_PARSE_C && MBEDTLS_TIMING_C */
#endif /* configuration allows running this program */
+14 -13
View File
@@ -9,17 +9,14 @@
#include "mbedtls/platform.h"
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C)
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_CLI_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)
int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
"MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
"MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_SSL_CLI_C and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_X509_CRT_PARSE_C "
"not defined.\n");
mbedtls_exit(0);
}
@@ -240,6 +237,9 @@ int main(void)
}
if (ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) {
mbedtls_printf("The return value %d from mbedtls_ssl_read() means that the server\n"
"closed the connection first. We're ok with that.\n",
MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY);
break;
}
@@ -259,7 +259,9 @@ int main(void)
mbedtls_ssl_close_notify(&ssl);
exit_code = MBEDTLS_EXIT_SUCCESS;
if (ret == 0 || ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) {
exit_code = MBEDTLS_EXIT_SUCCESS;
}
exit:
@@ -283,6 +285,5 @@ exit:
mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C &&
MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C &&
MBEDTLS_PEM_PARSE_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_X509_CRT_PARSE_C */
#endif /* configuration allows running this program */
+6 -4
View File
@@ -82,7 +82,7 @@ int main(void)
#define DFL_CID_VALUE_RENEGO NULL
#define DFL_RECONNECT_HARD 0
#define DFL_TICKETS MBEDTLS_SSL_SESSION_TICKETS_ENABLED
#define DFL_NEW_SESSION_TICKETS MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED
#define DFL_NEW_SESSION_TICKETS -1
#define DFL_ALPN_STRING NULL
#define DFL_GROUPS NULL
#define DFL_SIG_ALGS NULL
@@ -200,7 +200,7 @@ int main(void)
#if defined(MBEDTLS_SSL_SESSION_TICKETS)
#define USAGE_TICKETS \
" tickets=%%d default: 1 (enabled)\n" \
" new_session_tickets=%%d default: 1 (enabled)\n"
" new_session_tickets=%%d default: (library default: disabled)\n"
#else
#define USAGE_TICKETS ""
#endif /* MBEDTLS_SSL_SESSION_TICKETS */
@@ -1946,8 +1946,10 @@ usage:
#if defined(MBEDTLS_SSL_SESSION_TICKETS)
mbedtls_ssl_conf_session_tickets(&conf, opt.tickets);
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(
&conf, opt.new_session_tickets);
if (opt.new_session_tickets != DFL_NEW_SESSION_TICKETS) {
mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(
&conf, opt.new_session_tickets);
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
#endif /* MBEDTLS_SSL_SESSION_TICKETS */
+18 -17
View File
@@ -9,22 +9,15 @@
#include "mbedtls/platform.h"
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_SRV_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
!defined(MBEDTLS_TIMING_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_PEM_PARSE_C)
int main(int argc, char *argv[])
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_SRV_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)
int main(void)
{
((void) argc);
((void) argv);
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C "
"and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
"MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
"MBEDTLS_TIMING_C and/or MBEDTLS_PEM_PARSE_C not defined.\n");
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_X509_CRT_PARSE_C "
"not defined.\n");
mbedtls_exit(0);
}
#elif defined(_WIN32)
@@ -225,6 +218,7 @@ int main(void)
if (pid != 0) {
mbedtls_printf(" ok\n");
mbedtls_net_close(&client_fd);
fflush(stdout);
if ((ret = mbedtls_ctr_drbg_reseed(&ctr_drbg,
(const unsigned char *) "parent",
@@ -282,6 +276,7 @@ int main(void)
}
mbedtls_printf("pid %d: SSL handshake ok\n", pid);
fflush(stdout);
/*
* 6. Read the HTTP Request
@@ -312,12 +307,14 @@ int main(void)
mbedtls_printf("pid %d: mbedtls_ssl_read returned %d\n", pid, ret);
break;
}
fflush(stdout);
break;
}
len = ret;
mbedtls_printf("pid %d: %d bytes read\n\n%s", pid, len, (char *) buf);
fflush(stdout);
if (ret > 0) {
break;
@@ -333,7 +330,7 @@ int main(void)
len = sprintf((char *) buf, HTTP_RESPONSE,
mbedtls_ssl_get_ciphersuite(&ssl));
while (cnt++ < 100) {
while (cnt++ < 10) {
while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) {
if (ret == MBEDTLS_ERR_NET_CONN_RESET) {
mbedtls_printf(
@@ -349,12 +346,16 @@ int main(void)
}
}
len = ret;
mbedtls_printf("pid %d: %d bytes written\n\n%s\n", pid, len, (char *) buf);
mbedtls_printf("pid %d: %d bytes written (cnt=%d)\n\n%s\n",
pid, len, cnt, (char *) buf);
fflush(stdout);
mbedtls_net_usleep(1000000);
}
mbedtls_ssl_close_notify(&ssl);
mbedtls_printf("pid %d: shutting down\n", pid);
fflush(stdout);
goto exit;
}
+21 -16
View File
@@ -10,20 +10,21 @@
#include "mbedtls/platform.h"
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_SRV_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_THREADING_C) || \
!defined(MBEDTLS_THREADING_PTHREAD) || !defined(MBEDTLS_PEM_PARSE_C)
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_SRV_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)
int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C "
"and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
"MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
"MBEDTLS_THREADING_C and/or MBEDTLS_THREADING_PTHREAD "
"and/or MBEDTLS_PEM_PARSE_C not defined.\n");
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_X509_CRT_PARSE_C "
"not defined.\n");
mbedtls_exit(0);
}
#elif !defined(MBEDTLS_THREADING_C) || !defined(MBEDTLS_THREADING_PTHREAD)
int main(void)
{
mbedtls_printf("MBEDTLS_THREADING_PTHREAD not defined.\n");
mbedtls_exit(0);
}
#else
@@ -123,6 +124,7 @@ static void *handle_ssl_connection(void *data)
* 5. Handshake
*/
mbedtls_printf(" [ #%ld ] Performing the SSL/TLS handshake\n", thread_id);
fflush(stdout);
while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
@@ -138,6 +140,7 @@ static void *handle_ssl_connection(void *data)
* 6. Read the HTTP Request
*/
mbedtls_printf(" [ #%ld ] < Read from client\n", thread_id);
fflush(stdout);
do {
len = sizeof(buf) - 1;
@@ -170,6 +173,7 @@ static void *handle_ssl_connection(void *data)
len = ret;
mbedtls_printf(" [ #%ld ] %d bytes read\n=====\n%s\n=====\n",
thread_id, len, (char *) buf);
fflush(stdout);
if (ret > 0) {
break;
@@ -180,6 +184,7 @@ static void *handle_ssl_connection(void *data)
* 7. Write the 200 Response
*/
mbedtls_printf(" [ #%ld ] > Write to client:\n", thread_id);
fflush(stdout);
len = sprintf((char *) buf, HTTP_RESPONSE,
mbedtls_ssl_get_ciphersuite(&ssl));
@@ -201,6 +206,7 @@ static void *handle_ssl_connection(void *data)
len = ret;
mbedtls_printf(" [ #%ld ] %d bytes written\n=====\n%s\n=====\n",
thread_id, len, (char *) buf);
fflush(stdout);
mbedtls_printf(" [ #%ld ] . Closing the connection...", thread_id);
@@ -214,6 +220,7 @@ static void *handle_ssl_connection(void *data)
}
mbedtls_printf(" ok\n");
fflush(stdout);
ret = 0;
@@ -442,6 +449,7 @@ reset:
* 3. Wait until a client connects
*/
mbedtls_printf(" [ main ] Waiting for a remote connection\n");
fflush(stdout);
if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
NULL, 0, NULL)) != 0) {
@@ -483,7 +491,4 @@ exit:
mbedtls_exit(ret);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_SRV_C && MBEDTLS_NET_C &&
MBEDTLS_RSA_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_THREADING_C &&
MBEDTLS_THREADING_PTHREAD && MBEDTLS_PEM_PARSE_C */
#endif /* configuration allows running this program */
+13 -15
View File
@@ -9,18 +9,15 @@
#include "mbedtls/platform.h"
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PEM_PARSE_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_SSL_TLS_C) || \
!defined(MBEDTLS_SSL_SRV_C) || !defined(MBEDTLS_NET_C) || \
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO)
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_SRV_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)
int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C "
"and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
"MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
"and/or MBEDTLS_PEM_PARSE_C not defined.\n");
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
"MBEDTLS_NET_C and/or MBEDTLS_SSL_SRV_C and/or "
"MBEDTLS_PEM_PARSE_C and/or MBEDTLS_X509_CRT_PARSE_C "
"not defined.\n");
mbedtls_exit(0);
}
#else
@@ -315,16 +312,19 @@ reset:
mbedtls_printf(" %d bytes written\n\n%s\n", len, (char *) buf);
mbedtls_printf(" . Closing the connection...");
fflush(stdout);
while ((ret = mbedtls_ssl_close_notify(&ssl)) < 0) {
if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
ret != MBEDTLS_ERR_SSL_WANT_WRITE &&
ret != MBEDTLS_ERR_NET_CONN_RESET) {
mbedtls_printf(" failed\n ! mbedtls_ssl_close_notify returned %d\n\n", ret);
goto reset;
}
}
mbedtls_printf(" ok\n");
fflush(stdout);
ret = 0;
goto reset;
@@ -356,7 +356,5 @@ exit:
mbedtls_exit(ret);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_SRV_C && MBEDTLS_NET_C &&
MBEDTLS_RSA_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_X509_CRT_PARSE_C
&& MBEDTLS_FS_IO && MBEDTLS_PEM_PARSE_C */
#endif /* configuration allows running this program */
+2 -2
View File
@@ -2695,7 +2695,7 @@ usage:
}
key_cert_init = 2;
#endif /* MBEDTLS_RSA_C */
#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
#if defined(MBEDTLS_PK_CAN_ECDSA_SIGN)
if ((ret = mbedtls_x509_crt_parse(&srvcert2,
(const unsigned char *) mbedtls_test_srv_crt_ec,
mbedtls_test_srv_crt_ec_len)) != 0) {
@@ -2712,7 +2712,7 @@ usage:
goto exit;
}
key_cert_init2 = 2;
#endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
#endif /* MBEDTLS_PK_CAN_ECDSA_SIGN */
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
+4
View File
@@ -8,12 +8,16 @@ set(executables_libs
selftest
udp_proxy
)
add_dependencies(${programs_target} ${executables_libs})
add_dependencies(${ssl_opt_target} udp_proxy)
set(executables_mbedcrypto
benchmark
query_compile_time_config
zeroize
)
add_dependencies(${programs_target} ${executables_mbedcrypto})
add_dependencies(${ssl_opt_target} query_compile_time_config)
if(TEST_CPP)
set(cpp_dummy_build_cpp "${CMAKE_CURRENT_BINARY_DIR}/cpp_dummy_build.cpp")
File diff suppressed because it is too large Load Diff
+1
View File
@@ -6,6 +6,7 @@ set(executables
pem2der
strerror
)
add_dependencies(${programs_target} ${executables})
foreach(exe IN LISTS executables)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+1
View File
@@ -10,6 +10,7 @@ set(executables
load_roots
req_app
)
add_dependencies(${programs_target} ${executables})
foreach(exe IN LISTS executables)
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
+7 -3
View File
@@ -7,9 +7,13 @@
# 2.4.4 is the version in Ubuntu 20.04. It supports Python >=3.5.
pylint == 2.4.4
# Use the earliest version of mypy that works with our code base.
# See https://github.com/Mbed-TLS/mbedtls/pull/3953 .
mypy >= 0.780
# Use a version of mypy that is compatible with our code base.
# mypy <0.940 is known not to work: see commit
# :/Upgrade mypy to the last version supporting Python 3.6
# mypy >=0.960 is known not to work:
# https://github.com/Mbed-TLS/mbedtls-framework/issues/50
# mypy 0.942 is the version in Ubuntu 22.04.
mypy == 0.942
# At the time of writing, only needed for tests/scripts/audit-validity-dates.py.
# It needs >=35.0.0 for correct operation, and that requires Python >=3.6,
+195 -384
View File
@@ -1,173 +1,72 @@
#!/usr/bin/env python3
"""Mbed TLS configuration file manipulation library and tool
"""Mbed TLS and PSA configuration file manipulation library and tool
Basic usage, to read the Mbed TLS configuration:
config = ConfigFile()
config = MbedTLSConfig()
if 'MBEDTLS_RSA_C' in config: print('RSA is enabled')
"""
# Note that as long as Mbed TLS 2.28 LTS is maintained, the version of
# this script in the mbedtls-2.28 branch must remain compatible with
# Python 3.4. The version in development may only use more recent features
# in parts that are not backported to 2.28.
## Copyright The Mbed TLS Contributors
## SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
##
import os
import re
import sys
class Setting:
"""Representation of one Mbed TLS mbedtls_config.h setting.
import framework_scripts_path # pylint: disable=unused-import
from mbedtls_framework import config_common
Fields:
* name: the symbol name ('MBEDTLS_xxx').
* value: the value of the macro. The empty string for a plain #define
with no value.
* active: True if name is defined, False if a #define for name is
present in mbedtls_config.h but commented out.
* section: the name of the section that contains this symbol.
def is_boolean_setting(name, value):
"""Is this a boolean setting?
Mbed TLS boolean settings are enabled if the preprocessor macro is
defined, and disabled if the preprocessor macro is not defined. The
macro definition line in the configuration file has an empty expansion.
PSA_WANT_xxx settings are also boolean, but when they are enabled,
they expand to a nonzero value. We leave them undefined when they
are disabled. (Setting them to 0 currently means to enable them, but
this might change to mean disabling them. Currently we just never set
them to 0.)
"""
# pylint: disable=too-few-public-methods
def __init__(self, active, name, value='', section=None):
self.active = active
self.name = name
self.value = value
self.section = section
if name.startswith('PSA_WANT_'):
return True
if not value:
return True
return False
class Config:
"""Representation of the Mbed TLS configuration.
In the documentation of this class, a symbol is said to be *active*
if there is a #define for it that is not commented out, and *known*
if there is a #define for it whether commented out or not.
This class supports the following protocols:
* `name in config` is `True` if the symbol `name` is active, `False`
otherwise (whether `name` is inactive or not known).
* `config[name]` is the value of the macro `name`. If `name` is inactive,
raise `KeyError` (even if `name` is known).
* `config[name] = value` sets the value associated to `name`. `name`
must be known, but does not need to be set. This does not cause
name to become set.
"""
def __init__(self):
self.settings = {}
def __contains__(self, name):
"""True if the given symbol is active (i.e. set).
False if the given symbol is not set, even if a definition
is present but commented out.
"""
return name in self.settings and self.settings[name].active
def all(self, *names):
"""True if all the elements of names are active (i.e. set)."""
return all(self.__contains__(name) for name in names)
def any(self, *names):
"""True if at least one symbol in names are active (i.e. set)."""
return any(self.__contains__(name) for name in names)
def known(self, name):
"""True if a #define for name is present, whether it's commented out or not."""
return name in self.settings
def __getitem__(self, name):
"""Get the value of name, i.e. what the preprocessor symbol expands to.
If name is not known, raise KeyError. name does not need to be active.
"""
return self.settings[name].value
def get(self, name, default=None):
"""Get the value of name. If name is inactive (not set), return default.
If a #define for name is present and not commented out, return
its expansion, even if this is the empty string.
If a #define for name is present but commented out, return default.
"""
if name in self.settings:
return self.settings[name].value
else:
return default
def __setitem__(self, name, value):
"""If name is known, set its value.
If name is not known, raise KeyError.
"""
self.settings[name].value = value
def set(self, name, value=None):
"""Set name to the given value and make it active.
If value is None and name is already known, don't change its value.
If value is None and name is not known, set its value to the empty
string.
"""
if name in self.settings:
if value is not None:
self.settings[name].value = value
self.settings[name].active = True
else:
self.settings[name] = Setting(True, name, value=value)
def unset(self, name):
"""Make name unset (inactive).
name remains known if it was known before.
"""
if name not in self.settings:
return
self.settings[name].active = False
def adapt(self, adapter):
"""Run adapter on each known symbol and (de)activate it accordingly.
`adapter` must be a function that returns a boolean. It is called as
`adapter(name, active, section)` for each setting, where `active` is
`True` if `name` is set and `False` if `name` is known but unset,
and `section` is the name of the section containing `name`. If
`adapter` returns `True`, then set `name` (i.e. make it active),
otherwise unset `name` (i.e. make it known but inactive).
"""
for setting in self.settings.values():
setting.active = adapter(setting.name, setting.active,
setting.section)
def change_matching(self, regexs, enable):
"""Change all symbols matching one of the regexs to the desired state."""
if not regexs:
return
regex = re.compile('|'.join(regexs))
for setting in self.settings.values():
if regex.search(setting.name):
setting.active = enable
def is_full_section(section):
"""Is this section affected by "config.py full" and friends?"""
return section.endswith('support') or section.endswith('modules')
def realfull_adapter(_name, active, section):
"""Activate all symbols found in the global and boolean feature sections.
def realfull_adapter(_name, _value, _active):
"""Activate all symbols.
This is intended for building the documentation, including the
documentation of settings that are activated by defining an optional
preprocessor macro.
Do not activate definitions in the section containing symbols that are
supposed to be defined and documented in their own module.
preprocessor macro. There is no expectation that the resulting
configuration can be built.
"""
if section == 'Module configuration options':
return active
return True
PSA_UNSUPPORTED_FEATURE = frozenset([
'PSA_WANT_ALG_CBC_MAC',
'PSA_WANT_ALG_XTS',
'PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE',
'PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE'
])
PSA_DEPRECATED_FEATURE = frozenset([
'PSA_WANT_KEY_TYPE_ECC_KEY_PAIR',
'PSA_WANT_KEY_TYPE_RSA_KEY_PAIR'
])
PSA_UNSTABLE_FEATURE = frozenset([
'PSA_WANT_ECC_SECP_K1_224'
])
EXCLUDE_FROM_CRYPTO = PSA_UNSUPPORTED_FEATURE | \
PSA_DEPRECATED_FEATURE | \
PSA_UNSTABLE_FEATURE
# The goal of the full configuration is to have everything that can be tested
# together. This includes deprecated or insecure options. It excludes:
# * Options that require additional build dependencies or unusual hardware.
@@ -200,7 +99,7 @@ EXCLUDE_FROM_FULL = frozenset([
'MBEDTLS_PLATFORM_NO_STD_FUNCTIONS', # removes a feature
'MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS', # removes a feature
'MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG', # behavior change + build dependency
'MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER', # incompatible with USE_PSA_CRYPTO
'MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER', # interface and behavior change
'MBEDTLS_PSA_CRYPTO_SPM', # platform dependency (PSA SPM)
'MBEDTLS_PSA_INJECT_ENTROPY', # conflicts with platform entropy sources
'MBEDTLS_RSA_NO_CRT', # influences the use of RSA in X.509 and TLS
@@ -243,9 +142,9 @@ def include_in_full(name):
return is_seamless_alt(name)
return True
def full_adapter(name, active, section):
def full_adapter(name, value, active):
"""Config adapter for "full"."""
if not is_full_section(section):
if not is_boolean_setting(name, value):
return active
return include_in_full(name)
@@ -281,9 +180,9 @@ def keep_in_baremetal(name):
return False
return True
def baremetal_adapter(name, active, section):
def baremetal_adapter(name, value, active):
"""Config adapter for "baremetal"."""
if not is_full_section(section):
if not is_boolean_setting(name, value):
return active
if name == 'MBEDTLS_NO_PLATFORM_ENTROPY':
# No OS-provided entropy source
@@ -300,10 +199,10 @@ EXCLUDE_FOR_SIZE = frozenset([
'MBEDTLS_TEST_HOOKS', # only useful with the hosted test framework, increases code size
])
def baremetal_size_adapter(name, active, section):
def baremetal_size_adapter(name, value, active):
if name in EXCLUDE_FOR_SIZE:
return False
return baremetal_adapter(name, active, section)
return baremetal_adapter(name, value, active)
def include_in_crypto(name):
"""Rules for symbols in a crypto configuration."""
@@ -322,15 +221,15 @@ def include_in_crypto(name):
def crypto_adapter(adapter):
"""Modify an adapter to disable non-crypto symbols.
``crypto_adapter(adapter)(name, active, section)`` is like
``adapter(name, active, section)``, but unsets all X.509 and TLS symbols.
``crypto_adapter(adapter)(name, value, active)`` is like
``adapter(name, value, active)``, but unsets all X.509 and TLS symbols.
"""
def continuation(name, active, section):
def continuation(name, value, active):
if not include_in_crypto(name):
return False
if adapter is None:
return active
return adapter(name, active, section)
return adapter(name, value, active)
return continuation
DEPRECATED = frozenset([
@@ -339,42 +238,39 @@ DEPRECATED = frozenset([
def no_deprecated_adapter(adapter):
"""Modify an adapter to disable deprecated symbols.
``no_deprecated_adapter(adapter)(name, active, section)`` is like
``adapter(name, active, section)``, but unsets all deprecated symbols
``no_deprecated_adapter(adapter)(name, value, active)`` is like
``adapter(name, value, active)``, but unsets all deprecated symbols
and sets ``MBEDTLS_DEPRECATED_REMOVED``.
"""
def continuation(name, active, section):
def continuation(name, value, active):
if name == 'MBEDTLS_DEPRECATED_REMOVED':
return True
if name in DEPRECATED:
return False
if adapter is None:
return active
return adapter(name, active, section)
return adapter(name, value, active)
return continuation
def no_platform_adapter(adapter):
"""Modify an adapter to disable platform symbols.
``no_platform_adapter(adapter)(name, active, section)`` is like
``adapter(name, active, section)``, but unsets all platform symbols other
``no_platform_adapter(adapter)(name, value, active)`` is like
``adapter(name, value, active)``, but unsets all platform symbols other
``than MBEDTLS_PLATFORM_C.
"""
def continuation(name, active, section):
def continuation(name, value, active):
# Allow MBEDTLS_PLATFORM_C but remove all other platform symbols.
if name.startswith('MBEDTLS_PLATFORM_') and name != 'MBEDTLS_PLATFORM_C':
return False
if adapter is None:
return active
return adapter(name, active, section)
return adapter(name, value, active)
return continuation
class ConfigFile(Config):
"""Representation of the Mbed TLS configuration read for a file.
See the documentation of the `Config` class for methods to query
and modify the configuration.
"""
class MbedTLSConfigFile(config_common.ConfigFile):
"""Representation of an MbedTLS configuration file."""
_path_in_tree = 'include/mbedtls/mbedtls_config.h'
default_path = [_path_in_tree,
@@ -385,228 +281,143 @@ class ConfigFile(Config):
_path_in_tree)]
def __init__(self, filename=None):
"""Read the Mbed TLS configuration file."""
if filename is None:
for candidate in self.default_path:
if os.path.lexists(candidate):
filename = candidate
break
else:
raise Exception('Mbed TLS configuration file not found',
self.default_path)
super().__init__()
self.filename = filename
self.inclusion_guard = None
super().__init__(self.default_path, 'Mbed TLS', filename)
self.current_section = 'header'
with open(filename, 'r', encoding='utf-8') as file:
self.templates = [self._parse_line(line) for line in file]
self.current_section = None
class CryptoConfigFile(config_common.ConfigFile):
"""Representation of a Crypto configuration file."""
# Temporary, while Mbed TLS does not just rely on the TF-PSA-Crypto
# build system to build its crypto library. When it does, the
# condition can just be removed.
_path_in_tree = ('include/psa/crypto_config.h'
if not os.path.isdir(os.path.join(os.path.dirname(__file__),
os.pardir,
'tf-psa-crypto')) else
'tf-psa-crypto/include/psa/crypto_config.h')
default_path = [_path_in_tree,
os.path.join(os.path.dirname(__file__),
os.pardir,
_path_in_tree),
os.path.join(os.path.dirname(os.path.abspath(os.path.dirname(__file__))),
_path_in_tree)]
def __init__(self, filename=None):
super().__init__(self.default_path, 'Crypto', filename)
class MbedTLSConfig(config_common.Config):
"""Representation of the Mbed TLS configuration.
See the documentation of the `Config` class for methods to query
and modify the configuration.
"""
def __init__(self, filename=None):
"""Read the Mbed TLS configuration file."""
super().__init__()
configfile = MbedTLSConfigFile(filename)
self.configfiles.append(configfile)
self.settings.update({name: config_common.Setting(configfile, active, name, value, section)
for (active, name, value, section)
in configfile.parse_file()})
def set(self, name, value=None):
"""Set name to the given value and make it active."""
if name not in self.settings:
self.templates.append((name, '', '#define ' + name + ' '))
self._get_configfile().templates.append((name, '', '#define ' + name + ' '))
super().set(name, value)
_define_line_regexp = (r'(?P<indentation>\s*)' +
r'(?P<commented_out>(//\s*)?)' +
r'(?P<define>#\s*define\s+)' +
r'(?P<name>\w+)' +
r'(?P<arguments>(?:\((?:\w|\s|,)*\))?)' +
r'(?P<separator>\s*)' +
r'(?P<value>.*)')
_ifndef_line_regexp = r'#ifndef (?P<inclusion_guard>\w+)'
_section_line_regexp = (r'\s*/?\*+\s*[\\@]name\s+SECTION:\s*' +
r'(?P<section>.*)[ */]*')
_config_line_regexp = re.compile(r'|'.join([_define_line_regexp,
_ifndef_line_regexp,
_section_line_regexp]))
def _parse_line(self, line):
"""Parse a line in mbedtls_config.h and return the corresponding template."""
line = line.rstrip('\r\n')
m = re.match(self._config_line_regexp, line)
if m is None:
return line
elif m.group('section'):
self.current_section = m.group('section')
return line
elif m.group('inclusion_guard') and self.inclusion_guard is None:
self.inclusion_guard = m.group('inclusion_guard')
return line
else:
active = not m.group('commented_out')
name = m.group('name')
value = m.group('value')
if name == self.inclusion_guard and value == '':
# The file double-inclusion guard is not an option.
return line
template = (name,
m.group('indentation'),
m.group('define') + name +
m.group('arguments') + m.group('separator'))
self.settings[name] = Setting(active, name, value,
self.current_section)
return template
def _format_template(self, name, indent, middle):
"""Build a line for mbedtls_config.h for the given setting.
class CryptoConfig(config_common.Config):
"""Representation of the PSA crypto configuration.
The line has the form "<indent>#define <name> <value>"
where <middle> is "#define <name> ".
"""
setting = self.settings[name]
value = setting.value
if value is None:
value = ''
# Normally the whitespace to separate the symbol name from the
# value is part of middle, and there's no whitespace for a symbol
# with no value. But if a symbol has been changed from having a
# value to not having one, the whitespace is wrong, so fix it.
if value:
if middle[-1] not in '\t ':
middle += ' '
else:
middle = middle.rstrip()
return ''.join([indent,
'' if setting.active else '//',
middle,
value]).rstrip()
See the documentation of the `Config` class for methods to query
and modify the configuration.
"""
def write_to_stream(self, output):
"""Write the whole configuration to output."""
for template in self.templates:
if isinstance(template, str):
line = template
else:
line = self._format_template(*template)
output.write(line + '\n')
def __init__(self, filename=None):
"""Read the PSA crypto configuration file."""
def write(self, filename=None):
"""Write the whole configuration to the file it was read from.
super().__init__()
configfile = CryptoConfigFile(filename)
self.configfiles.append(configfile)
self.settings.update({name: config_common.Setting(configfile, active, name, value, section)
for (active, name, value, section)
in configfile.parse_file()})
def set(self, name, value='1'):
"""Set name to the given value and make it active."""
if name in PSA_UNSUPPORTED_FEATURE:
raise ValueError(f'Feature is unsupported: \'{name}\'')
if name in PSA_UNSTABLE_FEATURE:
raise ValueError(f'Feature is unstable: \'{name}\'')
if name not in self.settings:
self._get_configfile().templates.append((name, '', '#define ' + name + ' '))
super().set(name, value)
class MbedTLSConfigTool(config_common.ConfigTool):
"""Command line mbedtls_config.h and crypto_config.h manipulation tool."""
def __init__(self):
super().__init__(MbedTLSConfigFile.default_path)
self.config = MbedTLSConfig(self.args.file)
def custom_parser_options(self):
"""Adds MbedTLS specific options for the parser."""
self.parser.add_argument(
'--cryptofile', '-c',
help="""Crypto file to read (and modify if requested). Default: {}."""
.format(CryptoConfigFile.default_path))
self.add_adapter(
'baremetal', baremetal_adapter,
"""Like full, but exclude features that require platform features
such as file input-output.
""")
self.add_adapter(
'baremetal_size', baremetal_size_adapter,
"""Like baremetal, but exclude debugging features. Useful for code size measurements.
""")
self.add_adapter(
'full', full_adapter,
"""Uncomment most features.
Exclude alternative implementations and platform support options, as well as
some options that are awkward to test.
""")
self.add_adapter(
'full_no_deprecated', no_deprecated_adapter(full_adapter),
"""Uncomment most non-deprecated features.
Like "full", but without deprecated features.
""")
self.add_adapter(
'full_no_platform', no_platform_adapter(full_adapter),
"""Uncomment most non-platform features. Like "full", but without platform features.
""")
self.add_adapter(
'realfull', realfull_adapter,
"""Uncomment all boolean #defines.
Suitable for generating documentation, but not for building.
""")
self.add_adapter(
'crypto', crypto_adapter(None),
"""Only include crypto features. Exclude X.509 and TLS.""")
self.add_adapter(
'crypto_baremetal', crypto_adapter(baremetal_adapter),
"""Like baremetal, but with only crypto features, excluding X.509 and TLS.""")
self.add_adapter(
'crypto_full', crypto_adapter(full_adapter),
"""Like full, but with only crypto features, excluding X.509 and TLS.""")
If filename is specified, write to this file instead.
"""
if filename is None:
filename = self.filename
with open(filename, 'w', encoding='utf-8') as output:
self.write_to_stream(output)
if __name__ == '__main__':
def main():
"""Command line mbedtls_config.h manipulation tool."""
parser = argparse.ArgumentParser(description="""
Mbed TLS configuration file manipulation tool.
""")
parser.add_argument('--file', '-f',
help="""File to read (and modify if requested).
Default: {}.
""".format(ConfigFile.default_path))
parser.add_argument('--force', '-o',
action='store_true',
help="""For the set command, if SYMBOL is not
present, add a definition for it.""")
parser.add_argument('--write', '-w', metavar='FILE',
help="""File to write to instead of the input file.""")
subparsers = parser.add_subparsers(dest='command',
title='Commands')
parser_get = subparsers.add_parser('get',
help="""Find the value of SYMBOL
and print it. Exit with
status 0 if a #define for SYMBOL is
found, 1 otherwise.
""")
parser_get.add_argument('symbol', metavar='SYMBOL')
parser_set = subparsers.add_parser('set',
help="""Set SYMBOL to VALUE.
If VALUE is omitted, just uncomment
the #define for SYMBOL.
Error out of a line defining
SYMBOL (commented or not) is not
found, unless --force is passed.
""")
parser_set.add_argument('symbol', metavar='SYMBOL')
parser_set.add_argument('value', metavar='VALUE', nargs='?',
default='')
parser_set_all = subparsers.add_parser('set-all',
help="""Uncomment all #define
whose name contains a match for
REGEX.""")
parser_set_all.add_argument('regexs', metavar='REGEX', nargs='*')
parser_unset = subparsers.add_parser('unset',
help="""Comment out the #define
for SYMBOL. Do nothing if none
is present.""")
parser_unset.add_argument('symbol', metavar='SYMBOL')
parser_unset_all = subparsers.add_parser('unset-all',
help="""Comment out all #define
whose name contains a match for
REGEX.""")
parser_unset_all.add_argument('regexs', metavar='REGEX', nargs='*')
def add_adapter(name, function, description):
subparser = subparsers.add_parser(name, help=description)
subparser.set_defaults(adapter=function)
add_adapter('baremetal', baremetal_adapter,
"""Like full, but exclude features that require platform
features such as file input-output.""")
add_adapter('baremetal_size', baremetal_size_adapter,
"""Like baremetal, but exclude debugging features.
Useful for code size measurements.""")
add_adapter('full', full_adapter,
"""Uncomment most features.
Exclude alternative implementations and platform support
options, as well as some options that are awkward to test.
""")
add_adapter('full_no_deprecated', no_deprecated_adapter(full_adapter),
"""Uncomment most non-deprecated features.
Like "full", but without deprecated features.
""")
add_adapter('full_no_platform', no_platform_adapter(full_adapter),
"""Uncomment most non-platform features.
Like "full", but without platform features.
""")
add_adapter('realfull', realfull_adapter,
"""Uncomment all boolean #defines.
Suitable for generating documentation, but not for building.""")
add_adapter('crypto', crypto_adapter(None),
"""Only include crypto features. Exclude X.509 and TLS.""")
add_adapter('crypto_baremetal', crypto_adapter(baremetal_adapter),
"""Like baremetal, but with only crypto features,
excluding X.509 and TLS.""")
add_adapter('crypto_full', crypto_adapter(full_adapter),
"""Like full, but with only crypto features,
excluding X.509 and TLS.""")
args = parser.parse_args()
config = ConfigFile(args.file)
if args.command is None:
parser.print_help()
return 1
elif args.command == 'get':
if args.symbol in config:
value = config[args.symbol]
if value:
sys.stdout.write(value + '\n')
return 0 if args.symbol in config else 1
elif args.command == 'set':
if not args.force and args.symbol not in config.settings:
sys.stderr.write("A #define for the symbol {} "
"was not found in {}\n"
.format(args.symbol, config.filename))
return 1
config.set(args.symbol, value=args.value)
elif args.command == 'set-all':
config.change_matching(args.regexs, True)
elif args.command == 'unset':
config.unset(args.symbol)
elif args.command == 'unset-all':
config.change_matching(args.regexs, False)
else:
config.adapt(args.adapter)
config.write(args.write)
return 0
# Import modules only used by main only if main is defined and called.
# pylint: disable=wrong-import-position
import argparse
import sys
sys.exit(main())
sys.exit(MbedTLSConfigTool().main())
@@ -11,7 +11,7 @@
},
"type": {
"type": "string",
"const": ["opaque"]
"const": "opaque"
},
"location": {
"type": ["integer","string"],
@@ -11,7 +11,7 @@
},
"type": {
"type": "string",
"const": ["transparent"]
"const": "transparent"
},
"mbedtls/h_condition": {
"type": "string"
+14 -1
View File
@@ -1,6 +1,12 @@
@rem Generate automatically-generated configuration-independent source files
@rem and build scripts.
@rem Perl and Python 3 must be on the PATH.
@rem Requirements:
@rem * Perl must be on the PATH ("perl" command).
@rem * Python 3.8 or above must be on the PATH ("python" command).
@rem * Either a C compiler called "cc" must be on the PATH, or
@rem the "CC" environment variable must point to a C compiler.
@rem @@@@ library\** @@@@
@rem psa_crypto_driver_wrappers.h needs to be generated prior to
@rem generate_visualc_files.pl being invoked.
python scripts\generate_driver_wrappers.py || exit /b 1
@@ -8,11 +14,18 @@ perl scripts\generate_errors.pl || exit /b 1
perl scripts\generate_query_config.pl || exit /b 1
perl scripts\generate_features.pl || exit /b 1
python scripts\generate_ssl_debug_helpers.py || exit /b 1
@rem @@@@ Build @@@@
perl scripts\generate_visualc_files.pl || exit /b 1
@rem @@@@ programs\** @@@@
python scripts\generate_psa_constants.py || exit /b 1
@rem @@@@ tests\** @@@@
python framework\scripts\generate_bignum_tests.py || exit /b 1
python framework\scripts\generate_config_tests.py || exit /b 1
python framework\scripts\generate_ecp_tests.py || exit /b 1
python framework\scripts\generate_psa_tests.py || exit /b 1
python framework\scripts\generate_test_keys.py --output tests\src\test_keys.h || exit /b 1
python framework\scripts\generate_test_cert_macros.py --output tests\src\test_certs.h || exit /b 1
python tests\scripts\generate_tls13_compat_tests.py || exit /b 1
+11 -10
View File
@@ -16,13 +16,14 @@
/libtestdriver1/*
####START_COMMENTED_GENERATED_FILES###
## Generated source files
#/suites/*.generated.data
#/suites/test_suite_config.mbedtls_boolean.data
#/suites/test_suite_config.psa_boolean.data
#/suites/test_suite_psa_crypto_storage_format.v[0-9]*.data
#/suites/test_suite_psa_crypto_storage_format.current.data
#/src/test_keys.h
#/src/test_certs.h
####END_COMMENTED_GENERATED_FILES###
###START_GENERATED_FILES###
# Generated source files
/opt-testcases/tls13-compat.sh
/suites/*.generated.data
/suites/test_suite_config.mbedtls_boolean.data
/suites/test_suite_config.psa_boolean.data
/suites/test_suite_psa_crypto_storage_format.v[0-9]*.data
/suites/test_suite_psa_crypto_storage_format.current.data
/src/test_keys.h
/src/test_certs.h
###END_GENERATED_FILES###
+16
View File
@@ -163,6 +163,22 @@ if(GEN_FILES)
${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_extra.h
)
add_custom_command(
OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/opt-testcases/tls13-compat.sh
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/..
COMMAND
"${MBEDTLS_PYTHON_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_tls13_compat_tests.py"
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_tls13_compat_tests.py
)
add_custom_target(tls13-compat.sh
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/opt-testcases/tls13-compat.sh)
set_target_properties(tls13-compat.sh PROPERTIES EXCLUDE_FROM_ALL NO)
add_dependencies(${ssl_opt_target} tls13-compat.sh)
else()
foreach(file ${all_generated_data_files})
link_to_source(${file})
+11
View File
@@ -55,6 +55,15 @@ GENERATED_DATA_FILES += $(GENERATED_PSA_DATA_FILES)
GENERATED_FILES = $(GENERATED_DATA_FILES)
GENERATED_FILES += src/test_keys.h src/test_certs.h
# Generated files needed to (fully) run ssl-opt.sh
.PHONY: ssl-opt
opt-testcases/tls13-compat.sh: scripts/generate_tls13_compat_tests.py
echo " Gen $@"
$(PYTHON) scripts/generate_tls13_compat_tests.py -o $@
GENERATED_FILES += opt-testcases/tls13-compat.sh
ssl-opt: opt-testcases/tls13-compat.sh
.PHONY: generated_files
generated_files: $(GENERATED_FILES)
@@ -149,9 +158,11 @@ mbedtls_test: $(MBEDTLS_TEST_OBJS)
src/test_certs.h: ../framework/scripts/generate_test_cert_macros.py \
$($(PYTHON) ../framework/scripts/generate_test_cert_macros.py --list-dependencies)
echo " Gen $@"
$(PYTHON) ../framework/scripts/generate_test_cert_macros.py --output $@
src/test_keys.h: ../framework/scripts/generate_test_keys.py
echo " Gen $@"
$(PYTHON) ../framework/scripts/generate_test_keys.py --output $@
TEST_OBJS_DEPS = $(wildcard include/test/*.h include/test/*/*.h)
@@ -0,0 +1,94 @@
/** Support for path tracking in optionally safe bignum functions
*
* The functions are called when an optionally safe path is taken and logs it with a single
* variable. This variable is at any time in one of three states:
* - MBEDTLS_MPI_IS_TEST: No optionally safe path has been taken since the last reset
* - MBEDTLS_MPI_IS_SECRET: Only safe paths were teken since the last reset
* - MBEDTLS_MPI_IS_PUBLIC: At least one unsafe path has been taken since the last reset
*
* Use a simple global variable to track execution path. Making it work with multithreading
* isn't worth the effort as multithreaded tests add little to no value here.
*/
/*
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#ifndef BIGNUM_CODEPATH_CHECK_H
#define BIGNUM_CODEPATH_CHECK_H
#include "bignum_core.h"
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
extern int mbedtls_codepath_check;
/**
* \brief Setup the codepath test hooks used by optionally safe bignum functions to signal
* the path taken.
*/
void mbedtls_codepath_test_hooks_setup(void);
/**
* \brief Teardown the codepath test hooks used by optionally safe bignum functions to
* signal the path taken.
*/
void mbedtls_codepath_test_hooks_teardown(void);
/**
* \brief Reset the state of the codepath to the initial state.
*/
static inline void mbedtls_codepath_reset(void)
{
mbedtls_codepath_check = MBEDTLS_MPI_IS_TEST;
}
/** Check the codepath taken and fail if it doesn't match.
*
* When a function returns with an error, it can do so before reaching any interesting codepath. The
* same can happen if a parameter to the function is zero. In these cases we need to allow
* the codepath tracking variable to still have its initial "not set" value.
*
* This macro expands to an instruction, not an expression.
* It may jump to the \c exit label.
*
* \param path The expected codepath.
* This expression may be evaluated multiple times.
* \param ret The expected return value.
* \param E The MPI parameter that can cause shortcuts.
*/
#define ASSERT_BIGNUM_CODEPATH(path, ret, E) \
do { \
if ((ret) != 0 || (E).n == 0) { \
TEST_ASSERT(mbedtls_codepath_check == (path) || \
mbedtls_codepath_check == MBEDTLS_MPI_IS_TEST); \
} else { \
TEST_EQUAL(mbedtls_codepath_check, (path)); \
} \
} while (0)
/** Check the codepath taken and fail if it doesn't match.
*
* When a function returns with an error, it can do so before reaching any interesting codepath. In
* this case we need to allow the codepath tracking variable to still have its
* initial "not set" value.
*
* This macro expands to an instruction, not an expression.
* It may jump to the \c exit label.
*
* \param path The expected codepath.
* This expression may be evaluated multiple times.
* \param ret The expected return value.
*/
#define ASSERT_RSA_CODEPATH(path, ret) \
do { \
if ((ret) != 0) { \
TEST_ASSERT(mbedtls_codepath_check == (path) || \
mbedtls_codepath_check == MBEDTLS_MPI_IS_TEST); \
} else { \
TEST_EQUAL(mbedtls_codepath_check, (path)); \
} \
} while (0)
#endif /* MBEDTLS_TEST_HOOKS && !MBEDTLS_THREADING_C */
#endif /* BIGNUM_CODEPATH_CHECK_H */
+374
View File
@@ -0,0 +1,374 @@
# Test that SSL sample programs can interoperate with each other
# and with OpenSSL and GnuTLS.
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
: ${PROGRAMS_DIR:=../programs/ssl}
run_test "Sample: ssl_client1, ssl_server2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server2" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
requires_protocol_version tls12
run_test "Sample: ssl_client1, openssl server, TLS 1.2" \
-P 4433 \
"$O_SRV -tls1_2" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-c "Protocol.*TLSv1.2" \
-S "ERROR" \
-C "error"
requires_protocol_version tls12
run_test "Sample: ssl_client1, gnutls server, TLS 1.2" \
-P 4433 \
"$G_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-s "Version: TLS1.2" \
-c "<TD>Protocol version:</TD><TD>TLS1.2</TD>" \
-S "Error" \
-C "error"
requires_protocol_version tls13
requires_openssl_tls1_3
run_test "Sample: ssl_client1, openssl server, TLS 1.3" \
-P 4433 \
"$O_NEXT_SRV -tls1_3" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-c "New, TLSv1.3, Cipher is" \
-S "ERROR" \
-C "error"
requires_protocol_version tls13
requires_gnutls_tls1_3
run_test "Sample: ssl_client1, gnutls server, TLS 1.3" \
-P 4433 \
"$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-s "Version: TLS1.3" \
-c "<TD>Protocol version:</TD><TD>TLS1.3</TD>" \
-S "Error" \
-C "error"
# The server complains of extra data after it closes the connection
# because the client keeps sending data, so the server receives
# more application data when it expects a new handshake. We consider
# the test a success if both sides have sent and received application
# data, no matter what happens afterwards.
run_test "Sample: dtls_client, ssl_server2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server2 dtls=1 server_addr=localhost" \
"$PROGRAMS_DIR/dtls_client" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-C "error"
# The dtls_client program connects to localhost. This test case fails on
# systems where the name "localhost" resolves to an IPv6 address, but
# the IPv6 connection is not possible. Possible reasons include:
# * OpenSSL is too old (IPv6 support was added in 1.1.0).
# * OpenSSL was built without IPv6 support.
# * A firewall blocks IPv6.
#
# To facilitate working with this test case, have it run with $OPENSSL_NEXT
# which is at least 1.1.1a. At the time it was introduced, this test case
# passed with OpenSSL 1.0.2g on an environment where IPv6 is disabled.
requires_protocol_version dtls12
run_test "Sample: dtls_client, openssl server, DTLS 1.2" \
-P 4433 \
"$O_NEXT_SRV -dtls1_2" \
"$PROGRAMS_DIR/dtls_client" \
0 \
-s "Echo this" \
-c "Echo this" \
-c "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-S "ERROR" \
-C "error"
requires_protocol_version dtls12
run_test "Sample: dtls_client, gnutls server, DTLS 1.2" \
-P 4433 \
"$G_SRV -u --echo --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \
"$PROGRAMS_DIR/dtls_client" \
0 \
-s "Server listening" \
-s "[1-9][0-9]* bytes command:" \
-c "Echo this" \
-c "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-S "Error" \
-C "error"
run_test "Sample: ssl_server, ssl_client2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server" \
"$PROGRAMS_DIR/ssl_client2" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
run_test "Sample: ssl_client1 with ssl_server" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
requires_protocol_version tls12
run_test "Sample: ssl_server, openssl client, TLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server" \
"$O_CLI -tls1_2" \
0 \
-s "Successful connection using: TLS-" \
-c "Protocol.*TLSv1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version tls12
run_test "Sample: ssl_server, gnutls client, TLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server" \
"$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
0 \
-s "Successful connection using: TLS-" \
-c "Description:.*TLS1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version tls13
requires_openssl_tls1_3
run_test "Sample: ssl_server, openssl client, TLS 1.3" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server" \
"$O_NEXT_CLI -tls1_3" \
0 \
-s "Successful connection using: TLS1-3-" \
-c "New, TLSv1.3, Cipher is" \
-S "error" \
-C "ERROR"
requires_protocol_version tls13
requires_gnutls_tls1_3
run_test "Sample: ssl_server, gnutls client, TLS 1.3" \
-P 4433 \
"$PROGRAMS_DIR/ssl_server" \
"$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
0 \
-s "Successful connection using: TLS1-3-" \
-c "Description:.*TLS1.3" \
-S "error" \
-C "ERROR"
run_test "Sample: ssl_fork_server, ssl_client2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_fork_server" \
"$PROGRAMS_DIR/ssl_client2" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
run_test "Sample: ssl_client1 with ssl_fork_server" \
-P 4433 \
"$PROGRAMS_DIR/ssl_fork_server" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
requires_protocol_version tls12
run_test "Sample: ssl_fork_server, openssl client, TLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_fork_server" \
"$O_CLI -tls1_2" \
0 \
-s "Successful connection using: TLS-" \
-c "Protocol.*TLSv1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version tls12
run_test "Sample: ssl_fork_server, gnutls client, TLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_fork_server" \
"$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
0 \
-s "Successful connection using: TLS-" \
-c "Description:.*TLS1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version tls13
requires_openssl_tls1_3
run_test "Sample: ssl_fork_server, openssl client, TLS 1.3" \
-P 4433 \
"$PROGRAMS_DIR/ssl_fork_server" \
"$O_NEXT_CLI -tls1_3" \
0 \
-s "Successful connection using: TLS1-3-" \
-c "New, TLSv1.3, Cipher is" \
-S "error" \
-C "ERROR"
requires_protocol_version tls13
requires_gnutls_tls1_3
run_test "Sample: ssl_fork_server, gnutls client, TLS 1.3" \
-P 4433 \
"$PROGRAMS_DIR/ssl_fork_server" \
"$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
0 \
-s "Successful connection using: TLS1-3-" \
-c "Description:.*TLS1.3" \
-S "error" \
-C "ERROR"
run_test "Sample: ssl_pthread_server, ssl_client2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_pthread_server" \
"$PROGRAMS_DIR/ssl_client2" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
run_test "Sample: ssl_client1 with ssl_pthread_server" \
-P 4433 \
"$PROGRAMS_DIR/ssl_pthread_server" \
"$PROGRAMS_DIR/ssl_client1" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
requires_protocol_version tls12
run_test "Sample: ssl_pthread_server, openssl client, TLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_pthread_server" \
"$O_CLI -tls1_2" \
0 \
-s "Successful connection using: TLS-" \
-c "Protocol.*TLSv1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version tls12
run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/ssl_pthread_server" \
"$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
0 \
-s "Successful connection using: TLS-" \
-c "Description:.*TLS1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version tls13
requires_openssl_tls1_3
run_test "Sample: ssl_pthread_server, openssl client, TLS 1.3" \
-P 4433 \
"$PROGRAMS_DIR/ssl_pthread_server" \
"$O_NEXT_CLI -tls1_3" \
0 \
-s "Successful connection using: TLS1-3-" \
-c "New, TLSv1.3, Cipher is" \
-S "error" \
-C "ERROR"
requires_protocol_version tls13
requires_gnutls_tls1_3
run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.3" \
-P 4433 \
"$PROGRAMS_DIR/ssl_pthread_server" \
"$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
0 \
-s "Successful connection using: TLS1-3-" \
-c "Description:.*TLS1.3" \
-S "error" \
-C "ERROR"
run_test "Sample: dtls_client with dtls_server" \
-P 4433 \
"$PROGRAMS_DIR/dtls_server" \
"$PROGRAMS_DIR/dtls_client" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
run_test "Sample: ssl_client2, dtls_server" \
-P 4433 \
"$PROGRAMS_DIR/dtls_server" \
"$PROGRAMS_DIR/ssl_client2 dtls=1" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "[1-9][0-9]* bytes read" \
-c "[1-9][0-9]* bytes written" \
-S "error" \
-C "error"
requires_protocol_version dtls12
run_test "Sample: dtls_server, openssl client, DTLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/dtls_server" \
"$O_CLI -dtls1_2" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "Protocol.*TLSv1.2" \
-S "error" \
-C "ERROR"
requires_protocol_version dtls12
run_test "Sample: dtls_server, gnutls client, DTLS 1.2" \
-P 4433 \
"$PROGRAMS_DIR/dtls_server" \
"$G_CLI -u --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
0 \
-s "[1-9][0-9]* bytes read" \
-s "[1-9][0-9]* bytes written" \
-c "Description:.*DTLS1.2" \
-S "error" \
-C "ERROR"
File diff suppressed because it is too large Load Diff
+281 -139
View File
File diff suppressed because it is too large Load Diff
+443 -331
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-1
View File
@@ -31,7 +31,6 @@ for compiler in clang gcc; do
run_in_docker programs/test/selftest
run_in_docker -e OSSL_NO_DTLS=1 tests/compat.sh
run_in_docker tests/ssl-opt.sh -e '\(DTLS\|SCSV\).*openssl'
run_in_docker tests/scripts/test-ref-configs.pl
run_in_docker tests/scripts/depends.py curves
run_in_docker tests/scripts/depends.py kex
done
+1
View File
@@ -141,6 +141,7 @@ if in_mbedtls_repo; then
check scripts/generate_query_config.pl programs/test/query_config.c
check scripts/generate_features.pl library/version_features.c
check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated.c
check tests/scripts/generate_tls13_compat_tests.py tests/opt-testcases/tls13-compat.sh
check framework/scripts/generate_test_cert_macros.py tests/src/test_certs.h
# generate_visualc_files enumerates source files (library/*.c). It doesn't
# care about their content, but the files must exist. So it must run after
-241
View File
@@ -1,241 +0,0 @@
#!/usr/bin/env python3
"""Sanity checks for test data.
This program contains a class for traversing test cases that can be used
independently of the checks.
"""
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
import argparse
import glob
import os
import re
import subprocess
import sys
class ScriptOutputError(ValueError):
"""A kind of ValueError that indicates we found
the script doesn't list test cases in an expected
pattern.
"""
@property
def script_name(self):
return super().args[0]
@property
def idx(self):
return super().args[1]
@property
def line(self):
return super().args[2]
class Results:
"""Store file and line information about errors or warnings in test suites."""
def __init__(self, options):
self.errors = 0
self.warnings = 0
self.ignore_warnings = options.quiet
def error(self, file_name, line_number, fmt, *args):
sys.stderr.write(('{}:{}:ERROR:' + fmt + '\n').
format(file_name, line_number, *args))
self.errors += 1
def warning(self, file_name, line_number, fmt, *args):
if not self.ignore_warnings:
sys.stderr.write(('{}:{}:Warning:' + fmt + '\n')
.format(file_name, line_number, *args))
self.warnings += 1
class TestDescriptionExplorer:
"""An iterator over test cases with descriptions.
The test cases that have descriptions are:
* Individual unit tests (entries in a .data file) in test suites.
* Individual test cases in ssl-opt.sh.
This is an abstract class. To use it, derive a class that implements
the process_test_case method, and call walk_all().
"""
def process_test_case(self, per_file_state,
file_name, line_number, description):
"""Process a test case.
per_file_state: an object created by new_per_file_state() at the beginning
of each file.
file_name: a relative path to the file containing the test case.
line_number: the line number in the given file.
description: the test case description as a byte string.
"""
raise NotImplementedError
def new_per_file_state(self):
"""Return a new per-file state object.
The default per-file state object is None. Child classes that require per-file
state may override this method.
"""
#pylint: disable=no-self-use
return None
def walk_test_suite(self, data_file_name):
"""Iterate over the test cases in the given unit test data file."""
in_paragraph = False
descriptions = self.new_per_file_state() # pylint: disable=assignment-from-none
with open(data_file_name, 'rb') as data_file:
for line_number, line in enumerate(data_file, 1):
line = line.rstrip(b'\r\n')
if not line:
in_paragraph = False
continue
if line.startswith(b'#'):
continue
if not in_paragraph:
# This is a test case description line.
self.process_test_case(descriptions,
data_file_name, line_number, line)
in_paragraph = True
def collect_from_script(self, script_name):
"""Collect the test cases in a script by calling its listing test cases
option"""
descriptions = self.new_per_file_state() # pylint: disable=assignment-from-none
listed = subprocess.check_output(['sh', script_name, '--list-test-cases'])
# Assume test file is responsible for printing identical format of
# test case description between --list-test-cases and its OUTCOME.CSV
#
# idx indicates the number of test case since there is no line number
# in the script for each test case.
for idx, line in enumerate(listed.splitlines()):
# We are expecting the script to list the test cases in
# `<suite_name>;<description>` pattern.
script_outputs = line.split(b';', 1)
if len(script_outputs) == 2:
suite_name, description = script_outputs
else:
raise ScriptOutputError(script_name, idx, line.decode("utf-8"))
self.process_test_case(descriptions,
suite_name.decode('utf-8'),
idx,
description.rstrip())
@staticmethod
def collect_test_directories():
"""Get the relative path for the TLS and Crypto test directories."""
if os.path.isdir('tests'):
tests_dir = 'tests'
elif os.path.isdir('suites'):
tests_dir = '.'
elif os.path.isdir('../suites'):
tests_dir = '..'
directories = [tests_dir]
return directories
def walk_all(self):
"""Iterate over all named test cases."""
test_directories = self.collect_test_directories()
for directory in test_directories:
for data_file_name in glob.glob(os.path.join(directory, 'suites',
'*.data')):
self.walk_test_suite(data_file_name)
for sh_file in ['ssl-opt.sh', 'compat.sh']:
sh_file = os.path.join(directory, sh_file)
self.collect_from_script(sh_file)
class TestDescriptions(TestDescriptionExplorer):
"""Collect the available test cases."""
def __init__(self):
super().__init__()
self.descriptions = set()
def process_test_case(self, _per_file_state,
file_name, _line_number, description):
"""Record an available test case."""
base_name = re.sub(r'\.[^.]*$', '', re.sub(r'.*/', '', file_name))
key = ';'.join([base_name, description.decode('utf-8')])
self.descriptions.add(key)
def collect_available_test_cases():
"""Collect the available test cases."""
explorer = TestDescriptions()
explorer.walk_all()
return sorted(explorer.descriptions)
class DescriptionChecker(TestDescriptionExplorer):
"""Check all test case descriptions.
* Check that each description is valid (length, allowed character set, etc.).
* Check that there is no duplicated description inside of one test suite.
"""
def __init__(self, results):
self.results = results
def new_per_file_state(self):
"""Dictionary mapping descriptions to their line number."""
return {}
def process_test_case(self, per_file_state,
file_name, line_number, description):
"""Check test case descriptions for errors."""
results = self.results
seen = per_file_state
if description in seen:
results.error(file_name, line_number,
'Duplicate description (also line {})',
seen[description])
return
if re.search(br'[\t;]', description):
results.error(file_name, line_number,
'Forbidden character \'{}\' in description',
re.search(br'[\t;]', description).group(0).decode('ascii'))
if re.search(br'[^ -~]', description):
results.error(file_name, line_number,
'Non-ASCII character in description')
if len(description) > 66:
results.warning(file_name, line_number,
'Test description too long ({} > 66)',
len(description))
seen[description] = line_number
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--list-all',
action='store_true',
help='List all test cases, without doing checks')
parser.add_argument('--quiet', '-q',
action='store_true',
help='Hide warnings')
parser.add_argument('--verbose', '-v',
action='store_false', dest='quiet',
help='Show warnings (default: on; undoes --quiet)')
options = parser.parse_args()
if options.list_all:
descriptions = collect_available_test_cases()
sys.stdout.write('\n'.join(descriptions + ['']))
return
results = Results(options)
checker = DescriptionChecker(results)
try:
checker.walk_all()
except ScriptOutputError as e:
results.error(e.script_name, e.idx,
'"{}" should be listed as "<suite_name>;<description>"',
e.line)
if (results.warnings or results.errors) and not options.quiet:
sys.stderr.write('{}: {} errors, {} warnings\n'
.format(sys.argv[0], results.errors, results.warnings))
sys.exit(1 if results.errors else 0)
if __name__ == '__main__':
main()
+1 -1
View File
@@ -68,7 +68,7 @@ component_check_test_cases () {
else
opt=''
fi
tests/scripts/check_test_cases.py -q $opt
framework/scripts/check_test_cases.py -q $opt
unset opt
}
+5
View File
@@ -108,10 +108,15 @@ component_test_cmake_as_package () {
make neat
msg "build: cmake 'as-package' build"
root_dir="$(pwd)"
cd programs/test/cmake_package
build_variant_dir="$(pwd)"
cmake .
make
./cmake_package
if [[ "$OSTYPE" == linux* ]]; then
PKG_CONFIG_PATH="${build_variant_dir}/mbedtls/pkgconfig" ${root_dir}/tests/scripts/pkgconfig.sh
fi
}
support_test_cmake_as_package () {
@@ -162,6 +162,25 @@ component_test_rsa_no_crt () {
tests/context-info.sh
}
component_test_config_no_entropy () {
msg "build: configs/config-no-entropy.h"
cp configs/config-no-entropy.h "$CONFIG_H"
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-no-entropy.h - unit tests"
make test
}
component_test_no_ctr_drbg_classic () {
msg "build: Full minus CTR_DRBG, classic crypto in TLS"
scripts/config.py full
@@ -516,6 +535,46 @@ component_test_full_no_ccm_star_no_tag () {
make test
}
component_test_config_symmetric_only_legacy () {
msg "build: configs/config-symmetric-only.h"
cp configs/config-symmetric-only.h "$CONFIG_H"
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-symmetric-only.h - unit tests"
make test
}
component_test_config_symmetric_only_psa () {
msg "build: configs/config-symmetric-only.h + USE_PSA_CRYPTO"
cp configs/config-symmetric-only.h "$CONFIG_H"
scripts/config.py set MBEDTLS_PSA_CRYPTO_C
scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-symmetric-only.h + USE_PSA_CRYPTO - unit tests"
make test
}
component_test_full_no_bignum () {
msg "build: full minus bignum"
scripts/config.py full
@@ -841,7 +900,7 @@ component_test_psa_crypto_config_accel_ecdsa () {
# -----
# These hashes are needed for some ECDSA signature tests.
loc_extra_list="ALG_SHA_224 ALG_SHA_256 ALG_SHA_384 ALG_SHA_512 \
loc_extra_list="ALG_SHA_1 ALG_SHA_224 ALG_SHA_256 ALG_SHA_384 ALG_SHA_512 \
ALG_SHA3_224 ALG_SHA3_256 ALG_SHA3_384 ALG_SHA3_512"
helper_libtestdriver1_make_drivers "$loc_accel_list" "$loc_extra_list"
@@ -1581,9 +1640,19 @@ component_test_psa_crypto_config_reference_ecc_ffdh_no_bignum () {
common_test_psa_crypto_config_reference_ecc_ffdh_no_bignum "ECC_DH"
}
component_test_tfm_config_as_is () {
msg "build: configs/config-tfm.h"
cp configs/config-tfm.h "$CONFIG_H"
CC=$ASAN_CC cmake -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-tfm.h - unit tests"
make test
}
# Helper for setting common configurations between:
# - component_test_tfm_config_p256m_driver_accel_ec()
# - component_test_tfm_config()
# - component_test_tfm_config_no_p256m()
common_tfm_config () {
# Enable TF-M config
cp configs/config-tfm.h "$CONFIG_H"
@@ -1637,14 +1706,14 @@ component_test_tfm_config_p256m_driver_accel_ec () {
# Keep this in sync with component_test_tfm_config_p256m_driver_accel_ec() as
# they are both meant to be used in analyze_outcomes.py for driver's coverage
# analysis.
component_test_tfm_config () {
component_test_tfm_config_no_p256m () {
common_tfm_config
# Disable P256M driver, which is on by default, so that analyze_outcomes
# can compare this test with test_tfm_config_p256m_driver_accel_ec
echo "#undef MBEDTLS_PSA_P256M_DRIVER_ENABLED" >> "$CONFIG_H"
msg "build: TF-M config"
msg "build: TF-M config without p256m"
make CFLAGS='-Werror -Wall -Wextra -I../tests/include/spe' tests
# Check that p256m was not built
@@ -1654,7 +1723,7 @@ component_test_tfm_config () {
# files, so we want to ensure that it has not be re-enabled accidentally.
not grep mbedtls_cipher library/cipher.o
msg "test: TF-M config"
msg "test: TF-M config without p256m"
make test
}
@@ -1697,6 +1766,8 @@ config_psa_crypto_accel_rsa () {
driver_only=$1
# Start from crypto_full config (no X.509, no TLS)
# Note: PK will be ignored when comparing driver to reference in
# analyze_outcomes.py
helper_libtestdriver1_adjust_config "crypto_full"
if [ "$driver_only" -eq 1 ]; then
@@ -9,6 +9,72 @@
#### Configuration Testing - TLS
################################################################
component_test_config_suite_b_legacy () {
msg "build: configs/config-suite-b.h"
cp configs/config-suite-b.h "$CONFIG_H"
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-suite-b.h - unit tests"
make test
msg "test: configs/config-suite-b.h - compat.sh"
tests/compat.sh -m tls12 -f 'ECDHE_ECDSA.*AES.*GCM' -p mbedTLS
msg "build: configs/config-suite-b.h + DEBUG"
MBEDTLS_TEST_CONFIGURATION="$MBEDTLS_TEST_CONFIGURATION+DEBUG"
make clean
scripts/config.py set MBEDTLS_DEBUG_C
scripts/config.py set MBEDTLS_ERROR_C
make ssl-opt
msg "test: configs/config-suite-b.h + DEBUG - ssl-opt.sh"
tests/ssl-opt.sh
}
component_test_config_suite_b_psa () {
msg "build: configs/config-suite-b.h + USE_PSA_CRYPTO"
cp configs/config-suite-b.h "$CONFIG_H"
scripts/config.py set MBEDTLS_PSA_CRYPTO_C
scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-suite-b.h + USE_PSA_CRYPTO - unit tests"
make test
msg "test: configs/config-suite-b.h + USE_PSA_CRYPTO - compat.sh"
tests/compat.sh -m tls12 -f 'ECDHE_ECDSA.*AES.*GCM' -p mbedTLS
msg "build: configs/config-suite-b.h + USE_PSA_CRYPTO + DEBUG"
MBEDTLS_TEST_CONFIGURATION="$MBEDTLS_TEST_CONFIGURATION+DEBUG"
make clean
scripts/config.py set MBEDTLS_DEBUG_C
scripts/config.py set MBEDTLS_ERROR_C
make ssl-opt
msg "test: configs/config-suite-b.h + USE_PSA_CRYPTO + DEBUG - ssl-opt.sh"
tests/ssl-opt.sh
}
component_test_no_renegotiation () {
msg "build: Default + !MBEDTLS_SSL_RENEGOTIATION (ASan build)" # ~ 6 min
scripts/config.py unset MBEDTLS_SSL_RENEGOTIATION
@@ -191,6 +257,52 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only_use_psa () {
tests/ssl-opt.sh -f "TLS 1.2"
}
component_test_config_thread_legacy () {
msg "build: configs/config-thread.h"
cp configs/config-thread.h "$CONFIG_H"
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-thread.h - unit tests"
make test
msg "test: configs/config-thread.h - ssl-opt.sh"
tests/ssl-opt.sh -f 'ECJPAKE.*nolog'
}
component_test_config_thread_psa () {
msg "build: configs/config-thread.h + USE_PSA_CRYPTO"
cp configs/config-thread.h "$CONFIG_H"
scripts/config.py set MBEDTLS_PSA_CRYPTO_C
scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-thread.h + USE_PSA_CRYPTO - unit tests"
make test
msg "test: configs/config-thread.h + USE_PSA_CRYPTO - ssl-opt.sh"
tests/ssl-opt.sh -f 'ECJPAKE.*nolog'
}
# We're not aware of any other (open source) implementation of EC J-PAKE in TLS
# that we could use for interop testing. However, we now have sort of two
# implementations ourselves: one using PSA, the other not. At least test that
@@ -224,6 +336,118 @@ component_test_tls1_2_ecjpake_compatibility () {
rm s2_no_use_psa c2_no_use_psa
}
component_test_tls1_2_ccm_psk_legacy () {
msg "build: configs/config-ccm-psk-tls1_2.h"
cp configs/config-ccm-psk-tls1_2.h "$CONFIG_H"
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-ccm-psk-tls1_2.h - unit tests"
make test
msg "test: configs/config-ccm-psk-tls1_2.h - compat.sh"
tests/compat.sh -m tls12 -f '^TLS_PSK_WITH_AES_..._CCM_8'
}
component_test_tls1_2_ccm_psk_psa () {
msg "build: configs/config-ccm-psk-tls1_2.h + USE_PSA_CRYPTO"
cp configs/config-ccm-psk-tls1_2.h "$CONFIG_H"
scripts/config.py set MBEDTLS_PSA_CRYPTO_C
scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-ccm-psk-tls1_2.h + USE_PSA_CRYPTO - unit tests"
make test
msg "test: configs/config-ccm-psk-tls1_2.h + USE_PSA_CRYPTO - compat.sh"
tests/compat.sh -m tls12 -f '^TLS_PSK_WITH_AES_..._CCM_8'
}
component_test_tls1_2_ccm_psk_dtls_legacy () {
msg "build: configs/config-ccm-psk-dtls1_2.h"
cp configs/config-ccm-psk-dtls1_2.h "$CONFIG_H"
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-ccm-psk-dtls1_2.h - unit tests"
make test
msg "test: configs/config-ccm-psk-dtls1_2.h - compat.sh"
tests/compat.sh -m dtls12 -f '^TLS_PSK_WITH_AES_..._CCM_8'
msg "build: configs/config-ccm-psk-dtls1_2.h + DEBUG"
MBEDTLS_TEST_CONFIGURATION="$MBEDTLS_TEST_CONFIGURATION+DEBUG"
make clean
scripts/config.py set MBEDTLS_DEBUG_C
scripts/config.py set MBEDTLS_ERROR_C
make ssl-opt
msg "test: configs/config-ccm-psk-dtls1_2.h + DEBUG - ssl-opt.sh"
tests/ssl-opt.sh
}
component_test_tls1_2_ccm_psk_dtls_psa () {
msg "build: configs/config-ccm-psk-dtls1_2.h + USE_PSA_CRYPTO"
cp configs/config-ccm-psk-dtls1_2.h "$CONFIG_H"
scripts/config.py set MBEDTLS_PSA_CRYPTO_C
scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
make
msg "test: configs/config-ccm-psk-dtls1_2.h + USE_PSA_CRYPTO - unit tests"
make test
msg "test: configs/config-ccm-psk-dtls1_2.h + USE_PSA_CRYPTO - compat.sh"
tests/compat.sh -m dtls12 -f '^TLS_PSK_WITH_AES_..._CCM_8'
msg "build: configs/config-ccm-psk-dtls1_2.h + USE_PSA_CRYPTO + DEBUG"
MBEDTLS_TEST_CONFIGURATION="$MBEDTLS_TEST_CONFIGURATION+DEBUG"
make clean
scripts/config.py set MBEDTLS_DEBUG_C
scripts/config.py set MBEDTLS_ERROR_C
make ssl-opt
msg "test: configs/config-ccm-psk-dtls1_2.h + USE_PSA_CRYPTO + DEBUG - ssl-opt.sh"
tests/ssl-opt.sh
}
component_test_small_ssl_out_content_len () {
msg "build: small SSL_OUT_CONTENT_LEN (ASan build)"
scripts/config.py set MBEDTLS_SSL_IN_CONTENT_LEN 16384
-15
View File
@@ -129,21 +129,6 @@ component_test_full_cmake_gcc_asan_new_bignum () {
tests/context-info.sh
}
component_test_ref_configs () {
msg "test/build: ref-configs (ASan build)" # ~ 6 min 20s
# test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
# want to re-generate generated files that depend on it, quite correctly.
# However this doesn't work as the generation script expects a specific
# format for mbedtls_config.h, which the other files don't follow. Also,
# cmake can't know this, but re-generation is actually not necessary as
# the generated files only depend on the list of available options, not
# whether they're on or off. So, disable cmake's (over-sensitive here)
# dependency resolution for generated files and just rely on them being
# present (thanks to pre_generate_files) by turning GEN_FILES off.
CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
tests/scripts/test-ref-configs.pl
}
component_test_full_cmake_clang () {
msg "build: cmake, full config, clang" # ~ 50s
scripts/config.py full
+29 -1
View File
@@ -42,6 +42,7 @@ component_test_memsan_constant_flow () {
scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
scripts/config.py unset MBEDTLS_HAVE_ASM
CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
make
@@ -60,6 +61,7 @@ component_test_memsan_constant_flow_psa () {
scripts/config.py full
scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
scripts/config.py unset MBEDTLS_HAVE_ASM
CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
make
@@ -93,7 +95,6 @@ component_release_test_valgrind_constant_flow () {
# Test asm path in constant time module - by default, it will test the plain C
# path under Valgrind or Memsan. Running only the constant_time tests is fast (<1s)
msg "test: valgrind asm constant_time"
scripts/config.py --force set MBEDTLS_TEST_CONSTANT_FLOW_ASM
skip_all_except_given_suite test_suite_constant_time
cmake -D CMAKE_BUILD_TYPE:String=Release .
make clean
@@ -101,6 +102,32 @@ component_release_test_valgrind_constant_flow () {
make memcheck
}
component_release_test_valgrind_constant_flow_no_asm () {
# This tests both (1) everything that valgrind's memcheck usually checks
# (heap buffer overflows, use of uninitialized memory, use-after-free,
# etc.) and (2) branches or memory access depending on secret values,
# which will be reported as uninitialized memory. To distinguish between
# secret and actually uninitialized:
# - unset MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND - does the failure persist?
# - or alternatively, build with debug info and manually run the offending
# test suite with valgrind --track-origins=yes, then check if the origin
# was TEST_CF_SECRET() or something else.
msg "build: cmake release GCC, full config minus MBEDTLS_USE_PSA_CRYPTO, minus MBEDTLS_HAVE_ASM with constant flow testing"
scripts/config.py full
scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
scripts/config.py unset MBEDTLS_AESNI_C
scripts/config.py unset MBEDTLS_HAVE_ASM
skip_suites_without_constant_flow
cmake -D CMAKE_BUILD_TYPE:String=Release .
make
# this only shows a summary of the results (how many of each type)
# details are left in Testing/<date>/DynamicAnalysis.xml
msg "test: some suites (full minus MBEDTLS_USE_PSA_CRYPTO, minus MBEDTLS_HAVE_ASM, valgrind + constant flow)"
make memcheck
}
component_release_test_valgrind_constant_flow_psa () {
# This tests both (1) everything that valgrind's memcheck usually checks
# (heap buffer overflows, use of uninitialized memory, use-after-free,
@@ -145,6 +172,7 @@ component_test_tsan () {
component_test_memsan () {
msg "build: MSan (clang)" # ~ 1 min 20s
scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
scripts/config.py unset MBEDTLS_HAVE_ASM
CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
make
+1 -1
View File
@@ -537,7 +537,7 @@ def main():
default=True)
options = parser.parse_args()
os.chdir(options.directory)
conf = config.ConfigFile(options.config)
conf = config.MbedTLSConfig(options.config)
domain_data = DomainData(options, conf)
if options.tasks is True:
+18 -30
View File
@@ -66,7 +66,7 @@ class TLSProgram:
# pylint: disable=too-many-arguments
def __init__(self, ciphersuite=None, signature_algorithm=None, named_group=None,
cert_sig_alg=None, compat_mode=True):
cert_sig_alg=None):
self._ciphers = []
self._sig_algs = []
self._named_groups = []
@@ -79,7 +79,6 @@ class TLSProgram:
self.add_signature_algorithms(signature_algorithm)
if cert_sig_alg:
self.add_cert_signature_algorithms(cert_sig_alg)
self._compat_mode = compat_mode
# add_ciphersuites should not override by sub class
def add_ciphersuites(self, *ciphersuites):
@@ -157,8 +156,6 @@ class OpenSSLBase(TLSProgram):
ret += ["-groups {named_groups}".format(named_groups=named_groups)]
ret += ['-msg -tls1_3']
if not self._compat_mode:
ret += ['-no_middlebox']
return ret
@@ -248,8 +245,7 @@ class GnuTLSBase(TLSProgram):
def pre_checks(self):
return ["requires_gnutls_tls1_3",
"requires_gnutls_next_no_ticket",
"requires_gnutls_next_disable_tls13_compat", ]
"requires_gnutls_next_no_ticket"]
def cmd(self):
ret = super().cmd()
@@ -288,9 +284,6 @@ class GnuTLSBase(TLSProgram):
priority_string = ':+'.join(priority_string_list)
priority_string += ':%NO_TICKETS'
if not self._compat_mode:
priority_string += [':%DISABLE_TLS13_COMPAT_MODE']
ret += ['--priority={priority_string}'.format(
priority_string=priority_string)]
return ret
@@ -370,9 +363,6 @@ class MbedTLSBase(TLSProgram):
ret = ['requires_config_enabled MBEDTLS_DEBUG_C',
'requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED']
if self._compat_mode:
ret += ['requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE']
if 'rsa_pss_rsae_sha256' in self._sig_algs + self._cert_sig_algs:
ret.append(
'requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT')
@@ -533,21 +523,13 @@ def generate_hrr_compat_test(client=None, server=None,
client_object.pre_checks() +
[cmd])
SSL_OUTPUT_HEADER = '''#!/bin/sh
# {filename}
SSL_OUTPUT_HEADER = '''\
# TLS 1.3 interoperability test cases (equivalent of compat.sh for TLS 1.3).
#
# Automatically generated by {cmd}. Do not edit!
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
# Purpose
#
# List TLS1.3 compat test cases. They are generated by
# `{cmd}`.
#
# PLEASE DO NOT EDIT THIS FILE. IF NEEDED, PLEASE MODIFY `generate_tls13_compat_tests.py`
# AND REGENERATE THIS FILE.
#
'''
DATA_FILES_PATH_VAR = '''
DATA_FILES_PATH=../framework/data_files
@@ -559,11 +541,16 @@ def main():
"""
parser = argparse.ArgumentParser()
parser.add_argument('-o', '--output', nargs='?',
default=None, help='Output file path if `-a` was set')
parser.add_argument('-o', '--output',
default='tests/opt-testcases/tls13-compat.sh',
help='Output file path (not used with -1)')
parser.add_argument('-a', '--generate-all-tls13-compat-tests', action='store_true',
default=False, help='Generate all available tls13 compat tests')
parser.add_argument('-1', '--single', action='store_true',
help='Print a single test case')
# Single mode used to be the default.
parser.add_argument('-a', '--generate-all-tls13-compat-tests',
action='store_false', dest='single',
help='Generate all test cases (negates -1) (default)')
parser.add_argument('--list-ciphers', action='store_true',
default=False, help='List supported ciphersuites')
@@ -626,11 +613,12 @@ def main():
server_named_group=server_named_group,
cert_sig_alg="ecdsa_secp256r1_sha256")
if args.generate_all_tls13_compat_tests:
if not args.single:
if args.output:
with open(args.output, 'w', encoding="utf-8") as f:
f.write(SSL_OUTPUT_HEADER.format(
filename=os.path.basename(args.output), cmd=' '.join(sys.argv)))
filename=os.path.basename(args.output),
cmd=os.path.basename(sys.argv[0])))
f.write(DATA_FILES_PATH_VAR)
f.write('\n\n'.join(get_all_test_cases()))
f.write('\n')
+37
View File
@@ -0,0 +1,37 @@
#!/bin/sh
#
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
# Purpose
#
# Test pkgconfig files.
#
# For each of the build pkg-config files, .pc files, check that
# they validate and do some basic sanity testing on the output,
# i.e. that the strings are non-empty.
#
# NOTE: This requires the built pc files to be on the pkg-config
# search path, this can be controlled with env variable
# PKG_CONFIG_PATH. See man(1) pkg-config for details.
#
set -e -u
# These are the EXPECTED package names. Renaming these could break
# consumers of pkg-config, consider carefully.
all_pcs="mbedtls mbedx509 mbedcrypto"
for pc in $all_pcs; do
printf "testing package config file: ${pc} ... "
pkg-config --validate "${pc}"
version="$(pkg-config --modversion "${pc}")"
test -n "$version"
cflags="$(pkg-config --cflags "${pc}")"
test -n "$cflags"
libs="$(pkg-config --libs "${pc}")"
test -n "$libs"
printf "passed\n"
done
exit 0
-158
View File
@@ -1,158 +0,0 @@
#!/usr/bin/env perl
# test-ref-configs.pl
#
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
# Purpose
#
# For each reference configuration file in the configs directory, build the
# configuration, run the test suites and compat.sh
#
# Usage: tests/scripts/test-ref-configs.pl [config-name [...]]
use warnings;
use strict;
my %configs = (
'config-ccm-psk-tls1_2.h' => {
'compat' => '-m tls12 -f \'^TLS_PSK_WITH_AES_..._CCM_8\'',
},
'config-ccm-psk-dtls1_2.h' => {
'compat' => '-m dtls12 -f \'^TLS_PSK_WITH_AES_..._CCM_8\'',
'opt' => ' ',
'opt_needs_debug' => 1,
},
'config-no-entropy.h' => {
},
'config-suite-b.h' => {
'compat' => "-m tls12 -f 'ECDHE_ECDSA.*AES.*GCM' -p mbedTLS",
'opt' => ' ',
'opt_needs_debug' => 1,
},
'config-symmetric-only.h' => {
},
'config-tfm.h' => {
},
'config-thread.h' => {
'opt' => '-f ECJPAKE.*nolog',
},
);
# If no config-name is provided, use all known configs.
# Otherwise, use the provided names only.
my @configs_to_test = sort keys %configs;
if ($#ARGV >= 0) {
foreach my $conf_name ( @ARGV ) {
if( ! exists $configs{$conf_name} ) {
die "Unknown configuration: $conf_name\n";
}
}
@configs_to_test = @ARGV;
}
-d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n";
my $config_h = 'include/mbedtls/mbedtls_config.h';
system( "cp $config_h $config_h.bak" ) and die;
sub abort {
system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n";
# use an exit code between 1 and 124 for git bisect (die returns 255)
warn $_[0];
exit 1;
}
# Create a seedfile for configurations that enable MBEDTLS_ENTROPY_NV_SEED.
# For test purposes, this doesn't have to be cryptographically random.
if (!-e "tests/seedfile" || -s "tests/seedfile" < 64) {
local *SEEDFILE;
open SEEDFILE, ">tests/seedfile" or die;
print SEEDFILE "*" x 64 or die;
close SEEDFILE or die;
}
sub perform_test {
my $conf_file = $_[0];
my $data = $_[1];
my $test_with_psa = $_[2];
my $conf_name = $conf_file;
if ( $test_with_psa )
{
$conf_name .= "+PSA";
}
system( "cp $config_h.bak $config_h" ) and die;
system( "make clean" ) and die;
print "\n******************************************\n";
print "* Testing configuration: $conf_name\n";
print "******************************************\n";
$ENV{MBEDTLS_TEST_CONFIGURATION} = $conf_name;
system( "cp configs/$conf_file $config_h" )
and abort "Failed to activate $conf_file\n";
if ( $test_with_psa )
{
system( "scripts/config.py set MBEDTLS_PSA_CRYPTO_C" );
system( "scripts/config.py set MBEDTLS_USE_PSA_CRYPTO" );
}
system( "CFLAGS='-Os -Werror -Wall -Wextra' make" ) and abort "Failed to build: $conf_name\n";
system( "make test" ) and abort "Failed test suite: $conf_name\n";
my $compat = $data->{'compat'};
if( $compat )
{
print "\nrunning compat.sh $compat ($conf_name)\n";
system( "tests/compat.sh $compat" )
and abort "Failed compat.sh: $conf_name\n";
}
else
{
print "\nskipping compat.sh ($conf_name)\n";
}
my $opt = $data->{'opt'};
if( $opt )
{
if( $data->{'opt_needs_debug'} )
{
print "\nrebuilding with debug traces for ssl-opt ($conf_name)\n";
$conf_name .= '+DEBUG';
$ENV{MBEDTLS_TEST_CONFIGURATION} = $conf_name;
system( "make clean" );
system( "scripts/config.py set MBEDTLS_DEBUG_C" );
system( "scripts/config.py set MBEDTLS_ERROR_C" );
system( "CFLAGS='-Os -Werror -Wall -Wextra' make" ) and abort "Failed to build: $conf_name\n";
}
print "\nrunning ssl-opt.sh $opt ($conf_name)\n";
system( "tests/ssl-opt.sh $opt" )
and abort "Failed ssl-opt.sh: $conf_name\n";
}
else
{
print "\nskipping ssl-opt.sh ($conf_name)\n";
}
}
foreach my $conf ( @configs_to_test ) {
system("grep '//#define MBEDTLS_USE_PSA_CRYPTO' configs/$conf > /dev/null");
die "grep ... configs/$conf: $!" if $? != 0 && $? != 0x100;
my $test_with_psa = $? == 0;
if ( $test_with_psa )
{
perform_test( $conf, $configs{$conf}, $test_with_psa );
}
perform_test( $conf, $configs{$conf}, 0 );
}
system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n";
system( "make clean" );
exit 0;
+38
View File
@@ -0,0 +1,38 @@
/** Support for path tracking in optionally safe bignum functions
*/
/*
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#include "test/bignum_codepath_check.h"
#include "bignum_core_invasive.h"
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
int mbedtls_codepath_check = MBEDTLS_MPI_IS_TEST;
void mbedtls_codepath_take_safe(void)
{
if (mbedtls_codepath_check == MBEDTLS_MPI_IS_TEST) {
mbedtls_codepath_check = MBEDTLS_MPI_IS_SECRET;
}
}
void mbedtls_codepath_take_unsafe(void)
{
mbedtls_codepath_check = MBEDTLS_MPI_IS_PUBLIC;
}
void mbedtls_codepath_test_hooks_setup(void)
{
mbedtls_safe_codepath_hook = mbedtls_codepath_take_safe;
mbedtls_unsafe_codepath_hook = mbedtls_codepath_take_unsafe;
}
void mbedtls_codepath_test_hooks_teardown(void)
{
mbedtls_safe_codepath_hook = NULL;
mbedtls_unsafe_codepath_hook = NULL;
}
#endif /* MBEDTLS_TEST_HOOKS && !MBEDTLS_THREADING_C */
+12
View File
@@ -16,6 +16,9 @@
#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C)
#include <test/psa_memory_poisoning_wrappers.h>
#endif
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
#include <test/bignum_codepath_check.h>
#endif
#if defined(MBEDTLS_THREADING_C)
#include "mbedtls/threading.h"
#endif
@@ -342,6 +345,11 @@ int mbedtls_test_platform_setup(void)
mbedtls_mutex_init(&mbedtls_test_info_mutex);
#endif /* MBEDTLS_THREADING_C */
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_test_hooks_setup();
#endif /* MBEDTLS_TEST_HOOKS && !MBEDTLS_THREADING_C */
return ret;
}
@@ -359,6 +367,10 @@ void mbedtls_test_platform_teardown(void)
#if defined(MBEDTLS_PLATFORM_C)
mbedtls_platform_teardown(&platform_ctx);
#endif /* MBEDTLS_PLATFORM_C */
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_test_hooks_teardown();
#endif /* MBEDTLS_TEST_HOOKS && !MBEDTLS_THREADING_C */
}
int mbedtls_test_ascii2uc(const char c, unsigned char *uc)
File diff suppressed because it is too large Load Diff
-801
View File
@@ -1,801 +0,0 @@
/*********************************************************************************
* This file was automatically generated from framework/scripts/generate_test_keys.py.
* Please do not edit it manually.
*********************************************************************************/
const unsigned char test_ec_bp256r1_priv[] = {
0x21, 0x61, 0xd6, 0xf2, 0xdb, 0x76, 0x52, 0x6f, 0xa6, 0x2c, 0x16, 0xf3, 0x56, 0xa8, 0x0f, 0x01,
0xf3, 0x2f, 0x77, 0x67, 0x84, 0xb3, 0x6a, 0xa9, 0x97, 0x99, 0xa8, 0xb7, 0x66, 0x20, 0x80, 0xff,
};
const unsigned char test_ec_bp256r1_pub[] = {
0x04, 0x76, 0x8c, 0x8c, 0xae, 0x4a, 0xbc, 0xa6, 0x30, 0x6d, 0xb0, 0xed, 0x81, 0xb0, 0xc4, 0xa6,
0x21, 0x5c, 0x37, 0x80, 0x66, 0xec, 0x6d, 0x61, 0x6c, 0x14, 0x6e, 0x13, 0xf1, 0xc7, 0xdf, 0x80,
0x9b, 0x96, 0xab, 0x69, 0x11, 0xc2, 0x7d, 0x8a, 0x02, 0x33, 0x9f, 0x09, 0x26, 0x84, 0x0e, 0x55,
0x23, 0x6d, 0x3d, 0x1e, 0xfb, 0xe2, 0x66, 0x9d, 0x09, 0x0e, 0x4c, 0x4c, 0x66, 0x0f, 0xad, 0xa9,
0x1d,
};
const unsigned char test_ec_bp384r1_priv[] = {
0x3d, 0xd9, 0x2e, 0x75, 0x0d, 0x90, 0xd7, 0xd3, 0x9f, 0xc1, 0x88, 0x5c, 0xd8, 0xad, 0x12, 0xea,
0x94, 0x41, 0xf2, 0x2b, 0x93, 0x34, 0xb4, 0xd9, 0x65, 0x20, 0x2a, 0xdb, 0x14, 0x48, 0xce, 0x24,
0xc5, 0x80, 0x8a, 0x85, 0xdd, 0x9a, 0xfc, 0x22, 0x9a, 0xf0, 0xa3, 0x12, 0x4f, 0x75, 0x5b, 0xcb,
};
const unsigned char test_ec_bp384r1_pub[] = {
0x04, 0x71, 0x9f, 0x9d, 0x09, 0x3a, 0x62, 0x7e, 0x0d, 0x35, 0x03, 0x85, 0xc6, 0x61, 0xce, 0xbf,
0x00, 0xc6, 0x19, 0x23, 0x56, 0x6f, 0xe9, 0x00, 0x6a, 0x31, 0x07, 0xaf, 0x1d, 0x87, 0x1b, 0xc6,
0xbb, 0x68, 0x98, 0x5f, 0xd7, 0x22, 0xea, 0x32, 0xbe, 0x31, 0x6f, 0x8e, 0x78, 0x3b, 0x7c, 0xd1,
0x95, 0x77, 0x85, 0xf6, 0x6c, 0xfc, 0x0c, 0xb1, 0x95, 0xdd, 0x5c, 0x99, 0xa8, 0xe7, 0xab, 0xaa,
0x84, 0x85, 0x53, 0xa5, 0x84, 0xdf, 0xd2, 0xb4, 0x8e, 0x76, 0xd4, 0x45, 0xfe, 0x00, 0xdd, 0x8b,
0xe5, 0x90, 0x96, 0xd8, 0x77, 0xd4, 0x69, 0x6d, 0x23, 0xb4, 0xbc, 0x8d, 0xb1, 0x47, 0x24, 0xe6,
0x6a,
};
const unsigned char test_ec_bp512r1_priv[] = {
0x37, 0x2c, 0x97, 0x78, 0xf6, 0x9f, 0x72, 0x6c, 0xbc, 0xa3, 0xf4, 0xa2, 0x68, 0xf1, 0x6b, 0x4d,
0x61, 0x7d, 0x10, 0x28, 0x0d, 0x79, 0xa6, 0xa0, 0x29, 0xcd, 0x51, 0x87, 0x9f, 0xe1, 0x01, 0x29,
0x34, 0xdf, 0xe5, 0x39, 0x54, 0x55, 0x33, 0x7d, 0xf6, 0x90, 0x6d, 0xc7, 0xd6, 0xd2, 0xee, 0xa4,
0xdb, 0xb2, 0x06, 0x5c, 0x02, 0x28, 0xf7, 0x3b, 0x3e, 0xd7, 0x16, 0x48, 0x0e, 0x7d, 0x71, 0xd2,
};
const unsigned char test_ec_bp512r1_pub[] = {
0x04, 0x38, 0xb7, 0xec, 0x92, 0xb6, 0x1c, 0x5c, 0x6c, 0x7f, 0xbc, 0x28, 0xa4, 0xec, 0x75, 0x9d,
0x48, 0xfc, 0xd4, 0xe2, 0xe3, 0x74, 0xde, 0xfd, 0x5c, 0x49, 0x68, 0xa5, 0x4d, 0xbe, 0xf7, 0x51,
0x0e, 0x51, 0x78, 0x86, 0xfb, 0xfc, 0x38, 0xea, 0x39, 0xaa, 0x52, 0x93, 0x59, 0xd7, 0x0a, 0x71,
0x56, 0xc3, 0x5d, 0x3c, 0xba, 0xc7, 0xce, 0x77, 0x6b, 0xdb, 0x25, 0x1d, 0xd6, 0x4b, 0xce, 0x71,
0x23, 0x44, 0x24, 0xee, 0x70, 0x49, 0xee, 0xd0, 0x72, 0xf0, 0xdb, 0xc4, 0xd7, 0x99, 0x96, 0xe1,
0x75, 0xd5, 0x57, 0xe2, 0x63, 0x76, 0x3a, 0xe9, 0x70, 0x95, 0xc0, 0x81, 0xe7, 0x3e, 0x7d, 0xb2,
0xe3, 0x8a, 0xdc, 0x3d, 0x4c, 0x9a, 0x04, 0x87, 0xb1, 0xed, 0xe8, 0x76, 0xdc, 0x1f, 0xca, 0x61,
0xc9, 0x02, 0xe9, 0xa1, 0xd8, 0x72, 0x2b, 0x86, 0x12, 0x92, 0x8f, 0x18, 0xa2, 0x48, 0x45, 0x59,
0x1a,
};
const unsigned char test_ec_curve25519_priv[] = {
0x70, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5, 0x7d, 0x3c, 0x16, 0xc1, 0x72, 0x51, 0xb2, 0x66, 0x45,
0xdf, 0x4c, 0x2f, 0x87, 0xeb, 0xc0, 0x99, 0x2a, 0xb1, 0x77, 0xfb, 0xa5, 0x1d, 0xb9, 0x2c, 0x6a,
};
const unsigned char test_ec_curve25519_pub[] = {
0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7, 0x54, 0x74, 0x8b, 0x7d, 0xdc, 0xb4, 0x3e, 0xf7, 0x5a,
0x0d, 0xbf, 0x3a, 0x0d, 0x26, 0x38, 0x1a, 0xf4, 0xeb, 0xa4, 0xa9, 0x8e, 0xaa, 0x9b, 0x4e, 0x6a,
};
const unsigned char test_ec_curve448_priv[] = {
0xe4, 0xe4, 0x9f, 0x52, 0x68, 0x6f, 0x9e, 0xe3, 0xb6, 0x38, 0x52, 0x8f, 0x72, 0x1f, 0x15, 0x96,
0x19, 0x6f, 0xfd, 0x0a, 0x1c, 0xdd, 0xb6, 0x4c, 0x3f, 0x21, 0x6f, 0x06, 0x54, 0x18, 0x05, 0xcf,
0xeb, 0x1a, 0x28, 0x6d, 0xc7, 0x80, 0x18, 0x09, 0x5c, 0xdf, 0xec, 0x05, 0x0e, 0x80, 0x07, 0xb5,
0xf4, 0x90, 0x89, 0x62, 0xba, 0x20, 0xd6, 0xc1,
};
const unsigned char test_ec_curve448_pub[] = {
0xc0, 0xd3, 0xa5, 0xa2, 0xb4, 0x16, 0xa5, 0x73, 0xdc, 0x99, 0x09, 0xf9, 0x2f, 0x13, 0x4a, 0xc0,
0x13, 0x23, 0xab, 0x8f, 0x8e, 0x36, 0x80, 0x4e, 0x57, 0x85, 0x88, 0xba, 0x2d, 0x09, 0xfe, 0x7c,
0x3e, 0x73, 0x7f, 0x77, 0x1c, 0xa1, 0x12, 0x82, 0x5b, 0x54, 0x8a, 0x0f, 0xfd, 0xed, 0x6d, 0x6a,
0x2f, 0xd0, 0x9a, 0x3e, 0x77, 0xde, 0xc3, 0x0e,
};
const unsigned char test_ec_secp192k1_priv[] = {
0x29, 0x7a, 0xc1, 0x72, 0x2c, 0xca, 0xc7, 0x58, 0x9e, 0xcb, 0x24, 0x0d, 0xc7, 0x19, 0x84, 0x25,
0x38, 0xca, 0x97, 0x4b, 0xeb, 0x79, 0xf2, 0x28,
};
const unsigned char test_ec_secp192k1_pub[] = {
0x04, 0x26, 0xb7, 0xbb, 0x38, 0xda, 0x64, 0x9a, 0xc2, 0x13, 0x8f, 0xc0, 0x50, 0xc6, 0x54, 0x8b,
0x32, 0x55, 0x3d, 0xab, 0x68, 0xaf, 0xeb, 0xc3, 0x61, 0x05, 0xd3, 0x25, 0xb7, 0x55, 0x38, 0xc1,
0x23, 0x23, 0xcb, 0x07, 0x64, 0x78, 0x9e, 0xcb, 0x99, 0x26, 0x71, 0xbe, 0xb2, 0xb6, 0xbe, 0xf2,
0xf5,
};
const unsigned char test_ec_secp256k1_priv[] = {
0x7f, 0xa0, 0x6f, 0xa0, 0x2d, 0x0e, 0x91, 0x1b, 0x9a, 0x47, 0xfd, 0xc1, 0x7d, 0x2d, 0x96, 0x2c,
0xa0, 0x1e, 0x2f, 0x31, 0xd6, 0x0c, 0x62, 0x12, 0xd0, 0xed, 0x7e, 0x3b, 0xba, 0x23, 0xa7, 0xb9,
};
const unsigned char test_ec_secp256k1_pub[] = {
0x04, 0x5c, 0x39, 0x15, 0x45, 0x79, 0xef, 0xd6, 0x67, 0xad, 0xc7, 0x3a, 0x81, 0x01, 0x5a, 0x79,
0x7d, 0x2c, 0x86, 0x82, 0xcd, 0xfb, 0xd3, 0xc3, 0x55, 0x3c, 0x4a, 0x18, 0x5d, 0x48, 0x1c, 0xdc,
0x50, 0xe4, 0x2a, 0x0e, 0x1c, 0xbc, 0x3c, 0xa2, 0x9a, 0x32, 0xa6, 0x45, 0xe9, 0x27, 0xf5, 0x4b,
0xea, 0xed, 0x14, 0xc9, 0xdb, 0xbf, 0x82, 0x79, 0xd7, 0x25, 0xf5, 0x49, 0x5c, 0xa9, 0x24, 0xb2,
0x4d,
};
const unsigned char test_ec_secp192r1_priv[] = {
0xd8, 0x3b, 0x57, 0xa5, 0x9c, 0x51, 0x35, 0x8d, 0x9c, 0x8b, 0xbb, 0x89, 0x8a, 0xff, 0x50, 0x7f,
0x44, 0xdd, 0x14, 0xcf, 0x16, 0x91, 0x71, 0x90,
};
const unsigned char test_ec_secp192r1_pub[] = {
0x04, 0xe3, 0x5f, 0xcb, 0xee, 0x11, 0xce, 0xc3, 0x15, 0x4f, 0x80, 0xa1, 0xa6, 0x1d, 0xf7, 0xd7,
0x61, 0x2d, 0xe4, 0xf2, 0xfd, 0x70, 0xc5, 0x60, 0x8d, 0x0e, 0xe3, 0xa4, 0xa1, 0xa5, 0x71, 0x94,
0x71, 0xad, 0xb3, 0x39, 0x66, 0xdd, 0x9b, 0x03, 0x5f, 0xdb, 0x77, 0x4f, 0xee, 0xba, 0x94, 0xb0,
0x4c,
};
const unsigned char test_ec_secp224r1_priv[] = {
0x87, 0x2f, 0x20, 0x3b, 0x3a, 0xd3, 0x5b, 0x7f, 0x2e, 0xcc, 0x80, 0x3c, 0x3a, 0x0e, 0x1e, 0x0b,
0x1e, 0xd6, 0x1c, 0xc1, 0xaf, 0xe7, 0x1b, 0x18, 0x9c, 0xd4, 0xc9, 0x95,
};
const unsigned char test_ec_secp224r1_pub[] = {
0x04, 0x6f, 0x00, 0xea, 0xda, 0xa9, 0x49, 0xfe, 0xe3, 0xe9, 0xe1, 0xc7, 0xfa, 0x12, 0x47, 0xee,
0xce, 0xc8, 0x6a, 0x0d, 0xce, 0x46, 0x41, 0x8b, 0x9b, 0xd3, 0x11, 0x7b, 0x98, 0x1d, 0x4b, 0xd0,
0xae, 0x7a, 0x99, 0x0d, 0xe9, 0x12, 0xf9, 0xd0, 0x60, 0xd6, 0xcb, 0x53, 0x1a, 0x42, 0xd2, 0x2e,
0x39, 0x4a, 0xc2, 0x9e, 0x81, 0x80, 0x4b, 0xf1, 0x60,
};
const unsigned char test_ec_secp256r1_priv[] = {
0x49, 0xc9, 0xa8, 0xc1, 0x8c, 0x4b, 0x88, 0x56, 0x38, 0xc4, 0x31, 0xcf, 0x1d, 0xf1, 0xc9, 0x94,
0x13, 0x16, 0x09, 0xb5, 0x80, 0xd4, 0xfd, 0x43, 0xa0, 0xca, 0xb1, 0x7d, 0xb2, 0xf1, 0x3e, 0xee,
};
const unsigned char test_ec_secp256r1_pub[] = {
0x04, 0x77, 0x72, 0x65, 0x6f, 0x81, 0x4b, 0x39, 0x92, 0x79, 0xd5, 0xe1, 0xf1, 0x78, 0x1f, 0xac,
0x6f, 0x09, 0x9a, 0x3c, 0x5c, 0xa1, 0xb0, 0xe3, 0x53, 0x51, 0x83, 0x4b, 0x08, 0xb6, 0x5e, 0x0b,
0x57, 0x25, 0x90, 0xcd, 0xaf, 0x8f, 0x76, 0x93, 0x61, 0xbc, 0xf3, 0x4a, 0xcf, 0xc1, 0x1e, 0x5e,
0x07, 0x4e, 0x84, 0x26, 0xbd, 0xde, 0x04, 0xbe, 0x6e, 0x65, 0x39, 0x45, 0x44, 0x96, 0x17, 0xde,
0x45,
};
const unsigned char test_ec_secp384r1_priv[] = {
0x3f, 0x5d, 0x8d, 0x9b, 0xe2, 0x80, 0xb5, 0x69, 0x6c, 0xc5, 0xcc, 0x9f, 0x94, 0xcf, 0x8a, 0xf7,
0xe6, 0xb6, 0x1d, 0xd6, 0x59, 0x2b, 0x2a, 0xb2, 0xb3, 0xa4, 0xc6, 0x07, 0x45, 0x04, 0x17, 0xec,
0x32, 0x7d, 0xcd, 0xca, 0xed, 0x7c, 0x10, 0x05, 0x3d, 0x71, 0x9a, 0x05, 0x74, 0xf0, 0xa7, 0x6a,
};
const unsigned char test_ec_secp384r1_pub[] = {
0x04, 0xd9, 0xc6, 0x62, 0xb5, 0x0b, 0xa2, 0x9c, 0xa4, 0x79, 0x90, 0x45, 0x0e, 0x04, 0x3a, 0xea,
0xf4, 0xf0, 0xc6, 0x9b, 0x15, 0x67, 0x6d, 0x11, 0x2f, 0x62, 0x2a, 0x71, 0xc9, 0x30, 0x59, 0xaf,
0x99, 0x96, 0x91, 0xc5, 0x68, 0x0d, 0x2b, 0x44, 0xd1, 0x11, 0x57, 0x9d, 0xb1, 0x2f, 0x4a, 0x41,
0x3a, 0x2e, 0xd5, 0xc4, 0x5f, 0xcf, 0xb6, 0x7b, 0x5b, 0x63, 0xe0, 0x0b, 0x91, 0xeb, 0xe5, 0x9d,
0x09, 0xa6, 0xb1, 0xac, 0x2c, 0x0c, 0x42, 0x82, 0xaa, 0x12, 0x31, 0x7e, 0xd5, 0x91, 0x4f, 0x99,
0x9b, 0xc4, 0x88, 0xbb, 0x13, 0x2e, 0x83, 0x42, 0xcc, 0x36, 0xf2, 0xca, 0x5e, 0x33, 0x79, 0xc7,
0x47,
};
const unsigned char test_ec_secp521r1_priv[] = {
0x01, 0xb1, 0xb6, 0xad, 0x07, 0xbb, 0x79, 0xe7, 0x32, 0x0d, 0xa5, 0x98, 0x60, 0xea, 0x28, 0xe0,
0x55, 0x28, 0x4f, 0x60, 0x58, 0xf2, 0x79, 0xde, 0x66, 0x6e, 0x06, 0xd4, 0x35, 0xd2, 0xaf, 0x7b,
0xda, 0x28, 0xd9, 0x9f, 0xa4, 0x7b, 0x7d, 0xd0, 0x96, 0x3e, 0x16, 0xb0, 0x07, 0x30, 0x78, 0xee,
0x8b, 0x8a, 0x38, 0xd9, 0x66, 0xa5, 0x82, 0xf4, 0x6d, 0x19, 0xff, 0x95, 0xdf, 0x3a, 0xd9, 0x68,
0x5a, 0xae,
};
const unsigned char test_ec_secp521r1_pub[] = {
0x04, 0x00, 0x1d, 0xe1, 0x42, 0xd5, 0x4f, 0x69, 0xeb, 0x03, 0x8e, 0xe4, 0xb7, 0xaf, 0x9d, 0x3c,
0xa0, 0x77, 0x36, 0xfd, 0x9c, 0xf7, 0x19, 0xeb, 0x35, 0x4d, 0x69, 0x87, 0x9e, 0xe7, 0xf3, 0xc1,
0x36, 0xfb, 0x0f, 0xbf, 0x9f, 0x08, 0xf8, 0x6b, 0xe5, 0xfa, 0x12, 0x8e, 0xc1, 0xa0, 0x51, 0xd3,
0xe6, 0xc6, 0x43, 0xe8, 0x5a, 0xda, 0x8f, 0xfa, 0xcf, 0x36, 0x63, 0xc2, 0x60, 0xbd, 0x2c, 0x84,
0x4b, 0x6f, 0x56, 0x00, 0xce, 0xe8, 0xe4, 0x8a, 0x9e, 0x65, 0xd0, 0x9c, 0xad, 0xd8, 0x9f, 0x23,
0x5d, 0xee, 0x05, 0xf3, 0xb8, 0xa6, 0x46, 0xbe, 0x71, 0x5f, 0x1f, 0x67, 0xd5, 0xb4, 0x34, 0xe0,
0xff, 0x23, 0xa1, 0xfc, 0x07, 0xef, 0x77, 0x40, 0x19, 0x3e, 0x40, 0xee, 0xff, 0x6f, 0x3b, 0xcd,
0xfd, 0x76, 0x5a, 0xa9, 0x15, 0x50, 0x33, 0x52, 0x4f, 0xe4, 0xf2, 0x05, 0xf5, 0x44, 0x4e, 0x29,
0x2c, 0x4c, 0x2f, 0x6a, 0xc1,
};
const unsigned char test_rsa_1024_priv[] = {
0x30, 0x82, 0x02, 0x5e, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xaf, 0x05, 0x7d, 0x39, 0x6e,
0xe8, 0x4f, 0xb7, 0x5f, 0xdb, 0xb5, 0xc2, 0xb1, 0x3c, 0x7f, 0xe5, 0xa6, 0x54, 0xaa, 0x8a, 0xa2,
0x47, 0x0b, 0x54, 0x1e, 0xe1, 0xfe, 0xb0, 0xb1, 0x2d, 0x25, 0xc7, 0x97, 0x11, 0x53, 0x12, 0x49,
0xe1, 0x12, 0x96, 0x28, 0x04, 0x2d, 0xbb, 0xb6, 0xc1, 0x20, 0xd1, 0x44, 0x35, 0x24, 0xef, 0x4c,
0x0e, 0x6e, 0x1d, 0x89, 0x56, 0xee, 0xb2, 0x07, 0x7a, 0xf1, 0x23, 0x49, 0xdd, 0xee, 0xe5, 0x44,
0x83, 0xbc, 0x06, 0xc2, 0xc6, 0x19, 0x48, 0xcd, 0x02, 0xb2, 0x02, 0xe7, 0x96, 0xae, 0xbd, 0x94,
0xd3, 0xa7, 0xcb, 0xf8, 0x59, 0xc2, 0xc1, 0x81, 0x9c, 0x32, 0x4c, 0xb8, 0x2b, 0x9c, 0xd3, 0x4e,
0xde, 0x26, 0x3a, 0x2a, 0xbf, 0xfe, 0x47, 0x33, 0xf0, 0x77, 0x86, 0x9e, 0x86, 0x60, 0xf7, 0xd6,
0x83, 0x4d, 0xa5, 0x3d, 0x69, 0x0e, 0xf7, 0x98, 0x5f, 0x6b, 0xc3, 0x02, 0x03, 0x01, 0x00, 0x01,
0x02, 0x81, 0x81, 0x00, 0x87, 0x4b, 0xf0, 0xff, 0xc2, 0xf2, 0xa7, 0x1d, 0x14, 0x67, 0x1d, 0xdd,
0x01, 0x71, 0xc9, 0x54, 0xd7, 0xfd, 0xbf, 0x50, 0x28, 0x1e, 0x4f, 0x6d, 0x99, 0xea, 0x0e, 0x1e,
0xbc, 0xf8, 0x2f, 0xaa, 0x58, 0xe7, 0xb5, 0x95, 0xff, 0xb2, 0x93, 0xd1, 0xab, 0xe1, 0x7f, 0x11,
0x0b, 0x37, 0xc4, 0x8c, 0xc0, 0xf3, 0x6c, 0x37, 0xe8, 0x4d, 0x87, 0x66, 0x21, 0xd3, 0x27, 0xf6,
0x4b, 0xbe, 0x08, 0x45, 0x7d, 0x3e, 0xc4, 0x09, 0x8b, 0xa2, 0xfa, 0x0a, 0x31, 0x9f, 0xba, 0x41,
0x1c, 0x28, 0x41, 0xed, 0x7b, 0xe8, 0x31, 0x96, 0xa8, 0xcd, 0xf9, 0xda, 0xa5, 0xd0, 0x06, 0x94,
0xbc, 0x33, 0x5f, 0xc4, 0xc3, 0x22, 0x17, 0xfe, 0x04, 0x88, 0xbc, 0xe9, 0xcb, 0x72, 0x02, 0xe5,
0x94, 0x68, 0xb1, 0xea, 0xd1, 0x19, 0x00, 0x04, 0x77, 0xdb, 0x2c, 0xa7, 0x97, 0xfa, 0xc1, 0x9e,
0xda, 0x3f, 0x58, 0xc1, 0x02, 0x41, 0x00, 0xe2, 0xab, 0x76, 0x08, 0x41, 0xbb, 0x9d, 0x30, 0xa8,
0x1d, 0x22, 0x2d, 0xe1, 0xeb, 0x73, 0x81, 0xd8, 0x22, 0x14, 0x40, 0x7f, 0x1b, 0x97, 0x5c, 0xbb,
0xfe, 0x4e, 0x1a, 0x94, 0x67, 0xfd, 0x98, 0xad, 0xbd, 0x78, 0xf6, 0x07, 0x83, 0x6c, 0xa5, 0xbe,
0x19, 0x28, 0xb9, 0xd1, 0x60, 0xd9, 0x7f, 0xd4, 0x5c, 0x12, 0xd6, 0xb5, 0x2e, 0x2c, 0x98, 0x71,
0xa1, 0x74, 0xc6, 0x6b, 0x48, 0x81, 0x13, 0x02, 0x41, 0x00, 0xc5, 0xab, 0x27, 0x60, 0x21, 0x59,
0xae, 0x7d, 0x6f, 0x20, 0xc3, 0xc2, 0xee, 0x85, 0x1e, 0x46, 0xdc, 0x11, 0x2e, 0x68, 0x9e, 0x28,
0xd5, 0xfc, 0xbb, 0xf9, 0x90, 0xa9, 0x9e, 0xf8, 0xa9, 0x0b, 0x8b, 0xb4, 0x4f, 0xd3, 0x64, 0x67,
0xe7, 0xfc, 0x17, 0x89, 0xce, 0xb6, 0x63, 0xab, 0xda, 0x33, 0x86, 0x52, 0xc3, 0xc7, 0x3f, 0x11,
0x17, 0x74, 0x90, 0x2e, 0x84, 0x05, 0x65, 0x92, 0x70, 0x91, 0x02, 0x41, 0x00, 0xb6, 0xcd, 0xbd,
0x35, 0x4f, 0x7d, 0xf5, 0x79, 0xa6, 0x3b, 0x48, 0xb3, 0x64, 0x3e, 0x35, 0x3b, 0x84, 0x89, 0x87,
0x77, 0xb4, 0x8b, 0x15, 0xf9, 0x4e, 0x0b, 0xfc, 0x05, 0x67, 0xa6, 0xae, 0x59, 0x11, 0xd5, 0x7a,
0xd6, 0x40, 0x9c, 0xf7, 0x64, 0x7b, 0xf9, 0x62, 0x64, 0xe9, 0xbd, 0x87, 0xeb, 0x95, 0xe2, 0x63,
0xb7, 0x11, 0x0b, 0x9a, 0x1f, 0x9f, 0x94, 0xac, 0xce, 0xd0, 0xfa, 0xfa, 0x4d, 0x02, 0x40, 0x71,
0x19, 0x5e, 0xec, 0x37, 0xe8, 0xd2, 0x57, 0xde, 0xcf, 0xc6, 0x72, 0xb0, 0x7a, 0xe6, 0x39, 0xf1,
0x0c, 0xbb, 0x9b, 0x0c, 0x73, 0x9d, 0x0c, 0x80, 0x99, 0x68, 0xd6, 0x44, 0xa9, 0x4e, 0x3f, 0xd6,
0xed, 0x92, 0x87, 0x07, 0x7a, 0x14, 0x58, 0x3f, 0x37, 0x90, 0x58, 0xf7, 0x6a, 0x8a, 0xec, 0xd4,
0x3c, 0x62, 0xdc, 0x8c, 0x0f, 0x41, 0x76, 0x66, 0x50, 0xd7, 0x25, 0x27, 0x5a, 0xc4, 0xa1, 0x02,
0x41, 0x00, 0xbb, 0x32, 0xd1, 0x33, 0xed, 0xc2, 0xe0, 0x48, 0xd4, 0x63, 0x38, 0x8b, 0x7b, 0xe9,
0xcb, 0x4b, 0xe2, 0x9f, 0x4b, 0x62, 0x50, 0xbe, 0x60, 0x3e, 0x70, 0xe3, 0x64, 0x75, 0x01, 0xc9,
0x7d, 0xdd, 0xe2, 0x0a, 0x4e, 0x71, 0xbe, 0x95, 0xfd, 0x5e, 0x71, 0x78, 0x4e, 0x25, 0xac, 0xa4,
0xba, 0xf2, 0x5b, 0xe5, 0x73, 0x8a, 0xae, 0x59, 0xbb, 0xfe, 0x1c, 0x99, 0x77, 0x81, 0x44, 0x7a,
0x2b, 0x24,
};
const unsigned char test_rsa_1024_pub[] = {
0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xaf, 0x05, 0x7d, 0x39, 0x6e, 0xe8, 0x4f, 0xb7, 0x5f,
0xdb, 0xb5, 0xc2, 0xb1, 0x3c, 0x7f, 0xe5, 0xa6, 0x54, 0xaa, 0x8a, 0xa2, 0x47, 0x0b, 0x54, 0x1e,
0xe1, 0xfe, 0xb0, 0xb1, 0x2d, 0x25, 0xc7, 0x97, 0x11, 0x53, 0x12, 0x49, 0xe1, 0x12, 0x96, 0x28,
0x04, 0x2d, 0xbb, 0xb6, 0xc1, 0x20, 0xd1, 0x44, 0x35, 0x24, 0xef, 0x4c, 0x0e, 0x6e, 0x1d, 0x89,
0x56, 0xee, 0xb2, 0x07, 0x7a, 0xf1, 0x23, 0x49, 0xdd, 0xee, 0xe5, 0x44, 0x83, 0xbc, 0x06, 0xc2,
0xc6, 0x19, 0x48, 0xcd, 0x02, 0xb2, 0x02, 0xe7, 0x96, 0xae, 0xbd, 0x94, 0xd3, 0xa7, 0xcb, 0xf8,
0x59, 0xc2, 0xc1, 0x81, 0x9c, 0x32, 0x4c, 0xb8, 0x2b, 0x9c, 0xd3, 0x4e, 0xde, 0x26, 0x3a, 0x2a,
0xbf, 0xfe, 0x47, 0x33, 0xf0, 0x77, 0x86, 0x9e, 0x86, 0x60, 0xf7, 0xd6, 0x83, 0x4d, 0xa5, 0x3d,
0x69, 0x0e, 0xf7, 0x98, 0x5f, 0x6b, 0xc3, 0x02, 0x03, 0x01, 0x00, 0x01,
};
const unsigned char test_rsa_1026_priv[] = {
0x30, 0x82, 0x02, 0x5e, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x02, 0xd0, 0x96, 0x61, 0xfc, 0x74,
0x22, 0x4b, 0xa7, 0xbe, 0x79, 0x07, 0xab, 0xef, 0x4f, 0x5e, 0x8b, 0xcc, 0x26, 0x4a, 0x80, 0x2c,
0x97, 0x8f, 0x7e, 0xaa, 0x58, 0x55, 0xad, 0xa0, 0x54, 0x36, 0xd7, 0x5d, 0xb7, 0x68, 0xd2, 0x0f,
0x68, 0x59, 0x5d, 0xbc, 0xc3, 0xd7, 0x25, 0xb1, 0x38, 0xe8, 0x0b, 0x24, 0x7e, 0x44, 0xa4, 0x16,
0x3a, 0x05, 0x42, 0xfa, 0xb6, 0x12, 0xac, 0xbb, 0xde, 0x45, 0xf2, 0xe9, 0x38, 0x94, 0xaa, 0x25,
0x3b, 0xdd, 0xef, 0x6a, 0x7b, 0xec, 0xdc, 0x9c, 0xc2, 0x9a, 0x99, 0xba, 0xcf, 0x48, 0xdc, 0x6e,
0x38, 0xdb, 0x7a, 0x33, 0xe9, 0xac, 0x92, 0x4c, 0x52, 0x0f, 0xc6, 0xbe, 0x7d, 0x6e, 0x56, 0x46,
0xc1, 0xd6, 0x7f, 0xb8, 0xb2, 0xb9, 0x7a, 0xc6, 0x0b, 0xee, 0xcc, 0x3b, 0xb8, 0xe7, 0x5b, 0xed,
0x83, 0x15, 0xaa, 0x3f, 0xe4, 0x6f, 0x74, 0x8a, 0x66, 0xd6, 0xef, 0x02, 0x03, 0x01, 0x00, 0x01,
0x02, 0x81, 0x80, 0x6a, 0x4a, 0x34, 0x6b, 0xeb, 0xa9, 0x7f, 0x65, 0x5f, 0xe8, 0x34, 0x64, 0x7d,
0x29, 0x44, 0xf5, 0xf4, 0x08, 0x15, 0xe7, 0x30, 0x2c, 0xaf, 0x02, 0xed, 0x17, 0x98, 0x93, 0xc2,
0xd9, 0x89, 0x39, 0x5d, 0x5e, 0x87, 0x7c, 0xac, 0xbf, 0x24, 0xa7, 0x7a, 0x07, 0x9d, 0x3d, 0xb7,
0x15, 0x80, 0xcc, 0xdb, 0xf6, 0x30, 0x23, 0xd0, 0x0f, 0x80, 0xe5, 0x2f, 0x5c, 0x1a, 0x07, 0x16,
0xb3, 0x23, 0xb7, 0xbf, 0xcb, 0xdc, 0x8a, 0x17, 0x81, 0xc4, 0x4c, 0x41, 0x53, 0xe3, 0xda, 0x22,
0x8d, 0x17, 0xb2, 0xdc, 0x78, 0xeb, 0x1f, 0x44, 0xcf, 0xf6, 0x0f, 0xe1, 0x15, 0x08, 0x08, 0xa6,
0xe3, 0x8b, 0xa2, 0x47, 0x0a, 0xee, 0x2e, 0x94, 0x8a, 0x68, 0x98, 0xdd, 0xad, 0xea, 0x56, 0xd9,
0x47, 0x09, 0x27, 0xac, 0xa8, 0xd9, 0x4a, 0x03, 0x38, 0xc1, 0x1a, 0x8e, 0x95, 0x71, 0x5b, 0x5f,
0x94, 0xe0, 0x11, 0x02, 0x41, 0x01, 0xf5, 0x41, 0x85, 0x34, 0xc3, 0x62, 0x36, 0xfc, 0x9f, 0xd3,
0x89, 0x34, 0xd7, 0xc0, 0x6d, 0xfe, 0xd3, 0x82, 0x91, 0x51, 0xcc, 0xab, 0x56, 0xb6, 0x33, 0x0c,
0x64, 0x1f, 0x77, 0x96, 0xa7, 0x19, 0x24, 0xcf, 0x81, 0x19, 0xca, 0x26, 0xe1, 0x86, 0xec, 0xd3,
0x06, 0x8d, 0x66, 0x07, 0xa0, 0x52, 0x60, 0xdb, 0x48, 0x57, 0x65, 0x19, 0x80, 0x43, 0x68, 0x91,
0xad, 0xde, 0x9e, 0xb9, 0x2a, 0xb7, 0x02, 0x41, 0x01, 0x70, 0x04, 0x2f, 0xbd, 0xba, 0xba, 0x1e,
0x10, 0x2b, 0x7f, 0x7f, 0x1d, 0xc9, 0xd9, 0x40, 0xcf, 0xdc, 0xd8, 0x5d, 0xd0, 0xea, 0x65, 0xf5,
0x43, 0xc6, 0x43, 0x2e, 0x9c, 0x54, 0x80, 0x72, 0x4b, 0xb4, 0x9b, 0x1e, 0x5f, 0x80, 0xca, 0x2b,
0x9f, 0x84, 0xcd, 0x66, 0x44, 0xbf, 0xb2, 0xe3, 0xd0, 0x96, 0x80, 0x90, 0xb8, 0x9f, 0x53, 0x4d,
0xc2, 0x95, 0x1e, 0x60, 0x6d, 0xb9, 0x09, 0xdd, 0x89, 0x02, 0x41, 0x01, 0x4b, 0x6c, 0x1a, 0xeb,
0x1c, 0x14, 0xa0, 0x4e, 0xc0, 0x4e, 0x59, 0x75, 0xfb, 0x01, 0x5c, 0xb9, 0x14, 0x98, 0x4c, 0x05,
0x4d, 0xd2, 0x2b, 0xef, 0x24, 0x29, 0x99, 0x39, 0xc5, 0x14, 0x73, 0x3f, 0x88, 0xbb, 0x3a, 0x9d,
0x16, 0xb0, 0x46, 0x85, 0xb3, 0xa8, 0x83, 0xb8, 0x92, 0x31, 0x90, 0xab, 0x67, 0x27, 0x15, 0xd9,
0xd3, 0x1a, 0xdd, 0x57, 0xb4, 0x98, 0x3d, 0xe1, 0xe8, 0x08, 0x7e, 0x59, 0x02, 0x41, 0x01, 0x17,
0xbf, 0x76, 0xf3, 0x08, 0xb0, 0x56, 0x0e, 0x00, 0xa2, 0xc8, 0x64, 0x42, 0x7d, 0xcd, 0x50, 0xb5,
0x16, 0x1c, 0x2a, 0xa5, 0x23, 0xa0, 0x0f, 0x46, 0xf4, 0xe6, 0xc7, 0x9b, 0x4c, 0x90, 0x95, 0x8f,
0xd2, 0xa2, 0x82, 0x02, 0x8a, 0xac, 0x22, 0x74, 0x77, 0x16, 0x98, 0x88, 0x08, 0x5a, 0x38, 0xc3,
0x4f, 0x33, 0xb3, 0xc4, 0x19, 0x34, 0xf1, 0x07, 0x1d, 0xb2, 0x3b, 0x75, 0xff, 0x53, 0xd1, 0x02,
0x41, 0x01, 0x20, 0xa4, 0x28, 0xb4, 0xe0, 0xc4, 0xa6, 0xf2, 0x02, 0x92, 0x0f, 0xd4, 0x9c, 0xc9,
0x88, 0x6e, 0x6b, 0x67, 0x19, 0xd4, 0x0a, 0x3a, 0xd0, 0x60, 0x4f, 0x5d, 0x5e, 0xfd, 0x5e, 0xf6,
0x97, 0x3a, 0x57, 0x3a, 0xb3, 0x24, 0xf3, 0x8e, 0xcb, 0x8e, 0x66, 0x9a, 0x69, 0x34, 0x15, 0x97,
0x08, 0x1e, 0x24, 0x0b, 0x6a, 0xe4, 0xe2, 0x71, 0x48, 0x87, 0xdd, 0x78, 0xda, 0xda, 0xeb, 0x0b,
0x92, 0x16,
};
const unsigned char test_rsa_1026_pub[] = {
0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x02, 0xd0, 0x96, 0x61, 0xfc, 0x74, 0x22, 0x4b, 0xa7, 0xbe,
0x79, 0x07, 0xab, 0xef, 0x4f, 0x5e, 0x8b, 0xcc, 0x26, 0x4a, 0x80, 0x2c, 0x97, 0x8f, 0x7e, 0xaa,
0x58, 0x55, 0xad, 0xa0, 0x54, 0x36, 0xd7, 0x5d, 0xb7, 0x68, 0xd2, 0x0f, 0x68, 0x59, 0x5d, 0xbc,
0xc3, 0xd7, 0x25, 0xb1, 0x38, 0xe8, 0x0b, 0x24, 0x7e, 0x44, 0xa4, 0x16, 0x3a, 0x05, 0x42, 0xfa,
0xb6, 0x12, 0xac, 0xbb, 0xde, 0x45, 0xf2, 0xe9, 0x38, 0x94, 0xaa, 0x25, 0x3b, 0xdd, 0xef, 0x6a,
0x7b, 0xec, 0xdc, 0x9c, 0xc2, 0x9a, 0x99, 0xba, 0xcf, 0x48, 0xdc, 0x6e, 0x38, 0xdb, 0x7a, 0x33,
0xe9, 0xac, 0x92, 0x4c, 0x52, 0x0f, 0xc6, 0xbe, 0x7d, 0x6e, 0x56, 0x46, 0xc1, 0xd6, 0x7f, 0xb8,
0xb2, 0xb9, 0x7a, 0xc6, 0x0b, 0xee, 0xcc, 0x3b, 0xb8, 0xe7, 0x5b, 0xed, 0x83, 0x15, 0xaa, 0x3f,
0xe4, 0x6f, 0x74, 0x8a, 0x66, 0xd6, 0xef, 0x02, 0x03, 0x01, 0x00, 0x01,
};
const unsigned char test_rsa_1028_priv[] = {
0x30, 0x82, 0x02, 0x5e, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x0e, 0x62, 0xa7, 0x6f, 0x0e, 0x0b,
0x59, 0x68, 0x3a, 0x7e, 0xbf, 0x7c, 0xbf, 0xd3, 0x7b, 0x1d, 0x17, 0x81, 0xd8, 0xf1, 0xb9, 0x00,
0x60, 0x4b, 0x50, 0x7f, 0x0f, 0x04, 0xc7, 0x2a, 0x3d, 0x34, 0x0d, 0x06, 0x7b, 0xcd, 0x53, 0xbe,
0xa3, 0xca, 0xff, 0x4e, 0x4a, 0xe6, 0x94, 0xf0, 0xb6, 0xd8, 0xf5, 0x91, 0xa4, 0x16, 0x7f, 0xbf,
0x7f, 0x37, 0x2a, 0xb5, 0x7e, 0x83, 0xa6, 0x9a, 0x3f, 0x26, 0xf4, 0x47, 0xbc, 0xf5, 0x82, 0xbc,
0x96, 0x21, 0xa3, 0x0a, 0x3b, 0x44, 0xd6, 0xb4, 0x3e, 0x98, 0x6d, 0x1a, 0x86, 0x7b, 0x07, 0x48,
0x9e, 0x4f, 0x9b, 0xfc, 0xad, 0xaa, 0x82, 0xa2, 0x78, 0x2d, 0xc2, 0x72, 0x9a, 0x63, 0x1f, 0xb1,
0xfb, 0x9f, 0xfb, 0x79, 0x4b, 0x4e, 0x53, 0xc7, 0x62, 0x39, 0xe0, 0x4d, 0x4a, 0x8f, 0x80, 0x35,
0x25, 0x88, 0xdb, 0x29, 0x46, 0x2d, 0xde, 0x18, 0x23, 0x7c, 0xf5, 0x02, 0x03, 0x01, 0x00, 0x01,
0x02, 0x81, 0x81, 0x01, 0xcf, 0xa0, 0x42, 0x2e, 0x3b, 0xb6, 0x0c, 0x15, 0xef, 0x2e, 0x96, 0xdb,
0x44, 0x99, 0xe7, 0x89, 0xf5, 0xd6, 0x34, 0xea, 0x64, 0x56, 0x7b, 0x2c, 0xdd, 0x6e, 0x2b, 0xdd,
0x12, 0x1f, 0x85, 0xed, 0xcc, 0xde, 0xe9, 0xb4, 0xed, 0x17, 0x8c, 0x5f, 0x33, 0x81, 0x61, 0x01,
0xa7, 0xc3, 0x71, 0x51, 0x8b, 0x3e, 0x23, 0xf9, 0xfd, 0xc7, 0x1b, 0x90, 0x24, 0x2c, 0xd3, 0x10,
0xb6, 0xb3, 0x14, 0x28, 0xb0, 0xb6, 0x4e, 0xb9, 0x59, 0x6b, 0xe0, 0xcc, 0x04, 0x4c, 0xc8, 0x50,
0x48, 0x98, 0x2f, 0x90, 0xb7, 0x06, 0xe6, 0x6c, 0xcd, 0xd3, 0x9a, 0xd5, 0xa1, 0xa7, 0xb6, 0x4c,
0xf0, 0x34, 0xea, 0xc0, 0xc3, 0x5d, 0x7a, 0xce, 0x93, 0xf2, 0xbc, 0xd3, 0xce, 0x24, 0x3b, 0xd8,
0xf8, 0x3b, 0x46, 0xf5, 0x09, 0xca, 0x2f, 0x80, 0x50, 0x63, 0x00, 0x2a, 0xf2, 0xbb, 0x2d, 0x88,
0xb6, 0xee, 0x36, 0xa9, 0x02, 0x41, 0x03, 0xf0, 0x88, 0x6d, 0x29, 0x77, 0x52, 0x6f, 0x3f, 0x3f,
0x6a, 0x07, 0x56, 0x00, 0x23, 0x2c, 0xe3, 0x00, 0x85, 0x17, 0x27, 0x6d, 0xd3, 0x72, 0x1d, 0xee,
0x08, 0xfd, 0x6c, 0x99, 0x9f, 0xc9, 0x76, 0xb9, 0xe8, 0xdd, 0x2b, 0xc1, 0x43, 0x38, 0x5f, 0xa4,
0xb4, 0x87, 0x35, 0xce, 0x81, 0xc6, 0x6b, 0x50, 0x1d, 0x71, 0x29, 0xee, 0x78, 0x60, 0xcf, 0xbe,
0xf2, 0x3b, 0x5d, 0xa9, 0x1e, 0x6c, 0x2d, 0x02, 0x41, 0x03, 0xa6, 0xc8, 0x73, 0x4a, 0xac, 0xe5,
0x9d, 0x5f, 0x38, 0x6f, 0x97, 0xde, 0x45, 0x0f, 0x8a, 0x12, 0xd6, 0x3a, 0xe6, 0xac, 0x15, 0xd3,
0x36, 0xe0, 0x10, 0xc9, 0xfc, 0xf0, 0x3a, 0x32, 0xf0, 0x61, 0x18, 0x81, 0xac, 0x6c, 0xd8, 0xb3,
0xf9, 0x89, 0x92, 0x5c, 0x0f, 0x02, 0x5a, 0xf2, 0x6c, 0xf2, 0x6a, 0xeb, 0xd7, 0xd9, 0xb0, 0x4e,
0xb5, 0x03, 0x04, 0x8d, 0xca, 0x2f, 0x50, 0x3c, 0x28, 0xe9, 0x02, 0x41, 0x01, 0x9b, 0x30, 0x04,
0x51, 0xc3, 0xb4, 0x78, 0x66, 0xf1, 0x13, 0xe9, 0xa9, 0xc6, 0xa4, 0x90, 0xc8, 0x7c, 0x8d, 0xc6,
0xc2, 0xec, 0xa4, 0x29, 0x02, 0xca, 0xea, 0x1f, 0x69, 0x07, 0xb9, 0x7e, 0x0a, 0x4a, 0x02, 0x07,
0x2a, 0xaf, 0xc1, 0x18, 0x5a, 0xe6, 0x6c, 0x34, 0x34, 0x5b, 0xdd, 0xcd, 0x68, 0x33, 0x61, 0xcd,
0xa1, 0xaa, 0xf8, 0xa9, 0x80, 0x09, 0xf9, 0xf8, 0xfa, 0x56, 0xd9, 0x70, 0x81, 0x02, 0x40, 0x1b,
0xcc, 0xa8, 0x49, 0x17, 0x3d, 0x38, 0xe1, 0xe5, 0x0e, 0xc4, 0x88, 0x72, 0xab, 0x54, 0xa2, 0xdc,
0xc6, 0x21, 0xa8, 0x0a, 0x7a, 0x1e, 0x8e, 0xa9, 0x51, 0x28, 0x79, 0x88, 0x71, 0x8d, 0x5e, 0x85,
0xd9, 0x0d, 0x64, 0xab, 0x49, 0x26, 0xe9, 0xa5, 0x75, 0xa1, 0x68, 0xa3, 0x85, 0xc4, 0x21, 0xad,
0x76, 0x58, 0x13, 0xfc, 0x3f, 0x4a, 0xf8, 0xcd, 0x00, 0xde, 0x7b, 0x6b, 0xba, 0x6e, 0x49, 0x02,
0x41, 0x03, 0x6d, 0xcf, 0x69, 0xf6, 0xe5, 0x48, 0xc8, 0xac, 0xfb, 0x53, 0x6f, 0xb6, 0xcd, 0x18,
0x6f, 0x8b, 0x8f, 0x20, 0xd3, 0x13, 0x36, 0x1d, 0x04, 0x47, 0xc1, 0xb5, 0xe3, 0x80, 0xf4, 0x11,
0x3e, 0x57, 0x8b, 0x31, 0xe8, 0x67, 0xdd, 0xa4, 0x7d, 0x44, 0xad, 0x37, 0x61, 0xe7, 0x93, 0xf7,
0x25, 0x03, 0x1b, 0x8d, 0x37, 0x9f, 0x38, 0x9d, 0xe2, 0x77, 0xa9, 0xa0, 0x13, 0x76, 0x51, 0xdf,
0x54, 0x8a,
};
const unsigned char test_rsa_1028_pub[] = {
0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x0e, 0x62, 0xa7, 0x6f, 0x0e, 0x0b, 0x59, 0x68, 0x3a, 0x7e,
0xbf, 0x7c, 0xbf, 0xd3, 0x7b, 0x1d, 0x17, 0x81, 0xd8, 0xf1, 0xb9, 0x00, 0x60, 0x4b, 0x50, 0x7f,
0x0f, 0x04, 0xc7, 0x2a, 0x3d, 0x34, 0x0d, 0x06, 0x7b, 0xcd, 0x53, 0xbe, 0xa3, 0xca, 0xff, 0x4e,
0x4a, 0xe6, 0x94, 0xf0, 0xb6, 0xd8, 0xf5, 0x91, 0xa4, 0x16, 0x7f, 0xbf, 0x7f, 0x37, 0x2a, 0xb5,
0x7e, 0x83, 0xa6, 0x9a, 0x3f, 0x26, 0xf4, 0x47, 0xbc, 0xf5, 0x82, 0xbc, 0x96, 0x21, 0xa3, 0x0a,
0x3b, 0x44, 0xd6, 0xb4, 0x3e, 0x98, 0x6d, 0x1a, 0x86, 0x7b, 0x07, 0x48, 0x9e, 0x4f, 0x9b, 0xfc,
0xad, 0xaa, 0x82, 0xa2, 0x78, 0x2d, 0xc2, 0x72, 0x9a, 0x63, 0x1f, 0xb1, 0xfb, 0x9f, 0xfb, 0x79,
0x4b, 0x4e, 0x53, 0xc7, 0x62, 0x39, 0xe0, 0x4d, 0x4a, 0x8f, 0x80, 0x35, 0x25, 0x88, 0xdb, 0x29,
0x46, 0x2d, 0xde, 0x18, 0x23, 0x7c, 0xf5, 0x02, 0x03, 0x01, 0x00, 0x01,
};
const unsigned char test_rsa_1030_priv[] = {
0x30, 0x82, 0x02, 0x5f, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x2b, 0x7c, 0xd1, 0x97, 0xf5, 0x79,
0x6d, 0x1f, 0x8e, 0x57, 0x6b, 0x2b, 0x37, 0x72, 0x3f, 0xd9, 0x21, 0x08, 0x14, 0xef, 0x1c, 0x19,
0x95, 0xf9, 0x89, 0x9d, 0x50, 0x05, 0x8f, 0x37, 0x9d, 0x23, 0x9c, 0x66, 0x87, 0x8e, 0x92, 0x2f,
0x34, 0xc6, 0xae, 0x36, 0x72, 0xc8, 0x59, 0x8f, 0xcd, 0x5d, 0x47, 0xb7, 0x64, 0xd2, 0xec, 0x15,
0x6e, 0x13, 0x4d, 0x03, 0xcf, 0x6a, 0x94, 0xd3, 0x8d, 0x2e, 0xa8, 0xbc, 0x76, 0xdb, 0xbc, 0x60,
0xc4, 0xb9, 0x74, 0x21, 0x90, 0x90, 0xea, 0xf2, 0x87, 0x49, 0x7d, 0x7d, 0xcf, 0x7f, 0x11, 0x9c,
0xfa, 0x86, 0x74, 0x96, 0xf7, 0xe9, 0x1c, 0x12, 0xb5, 0xd5, 0x52, 0xe1, 0xd1, 0x46, 0x1a, 0x80,
0xdb, 0xe9, 0xa5, 0x9d, 0xb3, 0xb0, 0x16, 0xc6, 0xc0, 0x14, 0x1c, 0x3b, 0x2a, 0x0e, 0x22, 0x60,
0x89, 0xb8, 0x55, 0xcb, 0x88, 0xef, 0x65, 0x64, 0x08, 0xbd, 0x89, 0x02, 0x03, 0x01, 0x00, 0x01,
0x02, 0x81, 0x81, 0x02, 0x10, 0xd5, 0xff, 0x53, 0x1c, 0xac, 0xb2, 0x2f, 0x8c, 0xf7, 0xdd, 0x1f,
0xd9, 0xfb, 0x03, 0x76, 0xf3, 0x64, 0x7f, 0x2e, 0x9a, 0xb3, 0xdf, 0x9c, 0x89, 0xb9, 0xad, 0x3c,
0x98, 0xe6, 0x8b, 0x89, 0xad, 0xeb, 0x29, 0x90, 0x1d, 0xd2, 0xf2, 0xcf, 0x2a, 0xc1, 0xf8, 0x17,
0x72, 0x62, 0x78, 0x83, 0x0e, 0xc8, 0xa8, 0xd0, 0xfd, 0xd1, 0x9d, 0x49, 0x6e, 0xc6, 0xbc, 0x68,
0x36, 0x71, 0x17, 0x47, 0x86, 0xb7, 0xd6, 0xa8, 0xe8, 0x22, 0xfa, 0x71, 0xd6, 0x5a, 0xd3, 0x5a,
0xbb, 0xdf, 0x0e, 0x6e, 0x55, 0xff, 0x2c, 0x18, 0x21, 0xb6, 0x2b, 0xc6, 0x30, 0x19, 0x21, 0x60,
0xe5, 0xc9, 0xb3, 0xdc, 0xaf, 0xc6, 0x5a, 0xe6, 0xb2, 0xa0, 0x88, 0xfb, 0xc5, 0x59, 0x1d, 0xa5,
0x8a, 0x45, 0xdd, 0x7a, 0x30, 0x96, 0x0f, 0x7d, 0x3d, 0xef, 0x75, 0xb8, 0x0c, 0xdf, 0x73, 0x24,
0x73, 0x60, 0xe8, 0xfb, 0x02, 0x41, 0x07, 0x2e, 0x37, 0x1a, 0x3b, 0xa8, 0x61, 0xe7, 0x8e, 0x3e,
0xb9, 0x31, 0x30, 0x65, 0xfa, 0xab, 0x0a, 0x97, 0x21, 0x6e, 0x95, 0x44, 0xbf, 0xc2, 0xd5, 0xb4,
0x03, 0x84, 0x4b, 0x43, 0x27, 0x37, 0x05, 0x75, 0x5a, 0x85, 0xaa, 0x0b, 0xaf, 0x71, 0x14, 0x77,
0x0c, 0xfe, 0xca, 0x20, 0xbc, 0xa1, 0x7a, 0xc1, 0x9b, 0xc4, 0xcb, 0xba, 0x10, 0x6a, 0x33, 0xb3,
0xdd, 0xdc, 0xa0, 0xfb, 0x53, 0x5f, 0x33, 0x02, 0x41, 0x06, 0x0e, 0x6a, 0xf3, 0x7a, 0xb4, 0xea,
0x11, 0xf5, 0x2b, 0x93, 0x44, 0xe7, 0x16, 0x0e, 0xb2, 0xa5, 0x3f, 0x10, 0x75, 0xe1, 0x22, 0x9a,
0x7f, 0x10, 0xa3, 0x01, 0xde, 0x33, 0x59, 0xf5, 0x3e, 0x98, 0x1e, 0xa0, 0xe1, 0x7d, 0xf0, 0xfb,
0x38, 0x0f, 0x08, 0x9e, 0x5c, 0x37, 0xdd, 0x40, 0xda, 0xa2, 0x9e, 0xef, 0xd2, 0x05, 0xf5, 0xc8,
0x7b, 0x38, 0xf8, 0xfe, 0xf6, 0x36, 0xb5, 0x7b, 0xa0, 0x53, 0x02, 0x41, 0x02, 0x3a, 0x5d, 0xd0,
0x9e, 0xf8, 0x35, 0x40, 0xb3, 0x0b, 0x55, 0x4d, 0x24, 0xf6, 0x4f, 0x9c, 0x28, 0xd2, 0x12, 0x06,
0x8c, 0xfc, 0x62, 0xff, 0xe2, 0x6d, 0x53, 0xb6, 0x05, 0xe0, 0x55, 0x57, 0xa6, 0x32, 0xee, 0x9e,
0x90, 0xcf, 0xc5, 0x65, 0x31, 0xf3, 0x6a, 0xad, 0xd8, 0x2b, 0xe6, 0x3b, 0xb8, 0xaa, 0x40, 0x5a,
0x04, 0xd8, 0xbb, 0xe5, 0x28, 0x1b, 0xc4, 0x58, 0x83, 0xfe, 0xd7, 0xb4, 0xaf, 0x02, 0x41, 0x04,
0x1d, 0xe6, 0xdb, 0xad, 0x4c, 0xaf, 0x54, 0x17, 0xa9, 0x50, 0x49, 0x65, 0x20, 0x1c, 0x4b, 0x99,
0x82, 0x7d, 0xe8, 0xf3, 0x69, 0xf7, 0x45, 0x6a, 0x84, 0xb3, 0xef, 0x5c, 0x4e, 0xc9, 0x23, 0x8c,
0x7a, 0x3d, 0x78, 0x2a, 0x89, 0x15, 0xeb, 0xec, 0x64, 0x3a, 0x69, 0x8b, 0x5b, 0xee, 0x0a, 0xf0,
0xc2, 0x43, 0x59, 0x2b, 0xce, 0x00, 0x42, 0xaa, 0xde, 0xaf, 0x49, 0xa4, 0xb4, 0xc6, 0xdd, 0x9b,
0x02, 0x41, 0x05, 0xd3, 0x2d, 0xee, 0x95, 0x2b, 0x50, 0x3b, 0x53, 0x6f, 0xce, 0xcf, 0x19, 0xec,
0x08, 0x23, 0x6a, 0x9c, 0xd9, 0x45, 0xc4, 0x95, 0x51, 0xbf, 0x99, 0xf1, 0x5b, 0x67, 0x4f, 0xc2,
0x1a, 0xa1, 0x99, 0xf4, 0xc4, 0x21, 0x1f, 0x0f, 0x00, 0x07, 0xc4, 0x17, 0xc1, 0xfb, 0x41, 0x55,
0x32, 0x6a, 0x21, 0x42, 0xfc, 0xa4, 0x54, 0xbb, 0xd3, 0x8d, 0x6d, 0xbc, 0x6c, 0xaa, 0x7a, 0xc3,
0x35, 0xa1, 0x7c,
};
const unsigned char test_rsa_1030_pub[] = {
0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x2b, 0x7c, 0xd1, 0x97, 0xf5, 0x79, 0x6d, 0x1f, 0x8e, 0x57,
0x6b, 0x2b, 0x37, 0x72, 0x3f, 0xd9, 0x21, 0x08, 0x14, 0xef, 0x1c, 0x19, 0x95, 0xf9, 0x89, 0x9d,
0x50, 0x05, 0x8f, 0x37, 0x9d, 0x23, 0x9c, 0x66, 0x87, 0x8e, 0x92, 0x2f, 0x34, 0xc6, 0xae, 0x36,
0x72, 0xc8, 0x59, 0x8f, 0xcd, 0x5d, 0x47, 0xb7, 0x64, 0xd2, 0xec, 0x15, 0x6e, 0x13, 0x4d, 0x03,
0xcf, 0x6a, 0x94, 0xd3, 0x8d, 0x2e, 0xa8, 0xbc, 0x76, 0xdb, 0xbc, 0x60, 0xc4, 0xb9, 0x74, 0x21,
0x90, 0x90, 0xea, 0xf2, 0x87, 0x49, 0x7d, 0x7d, 0xcf, 0x7f, 0x11, 0x9c, 0xfa, 0x86, 0x74, 0x96,
0xf7, 0xe9, 0x1c, 0x12, 0xb5, 0xd5, 0x52, 0xe1, 0xd1, 0x46, 0x1a, 0x80, 0xdb, 0xe9, 0xa5, 0x9d,
0xb3, 0xb0, 0x16, 0xc6, 0xc0, 0x14, 0x1c, 0x3b, 0x2a, 0x0e, 0x22, 0x60, 0x89, 0xb8, 0x55, 0xcb,
0x88, 0xef, 0x65, 0x64, 0x08, 0xbd, 0x89, 0x02, 0x03, 0x01, 0x00, 0x01,
};
const unsigned char test_rsa_1536_priv[] = {
0x30, 0x82, 0x03, 0x7b, 0x02, 0x01, 0x00, 0x02, 0x81, 0xc1, 0x00, 0xc8, 0x70, 0xfe, 0xb6, 0xca,
0x6b, 0x1d, 0x2b, 0xd9, 0xf2, 0xdd, 0x99, 0xe2, 0x0f, 0x1f, 0xe2, 0xd7, 0xe5, 0x19, 0x2d, 0xe6,
0x62, 0x22, 0x9d, 0xbe, 0x16, 0x2b, 0xd1, 0xba, 0x66, 0x33, 0x6a, 0x71, 0x82, 0x90, 0x3c, 0xa0,
0xb7, 0x27, 0x96, 0xcd, 0x44, 0x1c, 0x83, 0xd2, 0x4b, 0xcd, 0xc3, 0xe9, 0xa2, 0xf5, 0xe4, 0x39,
0x9c, 0x8a, 0x04, 0x3f, 0x1c, 0x3d, 0xdf, 0x04, 0x75, 0x4a, 0x66, 0xd4, 0xcf, 0xe7, 0xb3, 0x67,
0x1a, 0x37, 0xdd, 0x31, 0xa9, 0xb4, 0xc1, 0x3b, 0xfe, 0x06, 0xee, 0x90, 0xf9, 0xd9, 0x4d, 0xda,
0xa0, 0x6d, 0xe6, 0x7a, 0x52, 0xac, 0x86, 0x3e, 0x68, 0xf7, 0x56, 0x73, 0x6c, 0xeb, 0x01, 0x44,
0x05, 0xa6, 0x16, 0x05, 0x79, 0x64, 0x0f, 0x83, 0x1d, 0xdd, 0xcc, 0xc3, 0x4a, 0xd0, 0xb0, 0x50,
0x70, 0xe3, 0xf9, 0x95, 0x4a, 0x58, 0xd1, 0x81, 0x58, 0x13, 0xe1, 0xb8, 0x3b, 0xca, 0xdb, 0xa8,
0x14, 0x78, 0x9c, 0x87, 0xf1, 0xef, 0x2b, 0xa5, 0xd7, 0x38, 0xb7, 0x93, 0xec, 0x45, 0x6a, 0x67,
0x36, 0x0e, 0xea, 0x1b, 0x5f, 0xaf, 0x1c, 0x7c, 0xc7, 0xbf, 0x24, 0xf3, 0xb2, 0xa9, 0xd0, 0xf8,
0x95, 0x8b, 0x10, 0x96, 0xe0, 0xf0, 0xc3, 0x35, 0xf8, 0x88, 0x8d, 0x0c, 0x63, 0xa5, 0x1c, 0x3c,
0x03, 0x37, 0x21, 0x4f, 0xa3, 0xf5, 0xef, 0xdf, 0x6d, 0xcc, 0x35, 0x02, 0x03, 0x01, 0x00, 0x01,
0x02, 0x81, 0xc0, 0x6d, 0x2d, 0x67, 0x00, 0x47, 0x97, 0x3a, 0x87, 0x75, 0x2a, 0x9d, 0x5b, 0xc1,
0x4f, 0x3d, 0xae, 0x00, 0xac, 0xb0, 0x1f, 0x59, 0x3a, 0xa0, 0xe2, 0x4c, 0xf4, 0xa4, 0x9f, 0x93,
0x29, 0x31, 0xde, 0x4b, 0xbf, 0xb3, 0x32, 0xe2, 0xd3, 0x80, 0x83, 0xda, 0x80, 0xbc, 0x0b, 0x6d,
0x53, 0x8e, 0xdb, 0xa4, 0x79, 0xf7, 0xf7, 0x7d, 0x0d, 0xef, 0xfb, 0x4a, 0x28, 0xe6, 0xe6, 0x7f,
0xf6, 0x27, 0x35, 0x85, 0xbb, 0x4c, 0xd8, 0x62, 0x53, 0x5c, 0x94, 0x66, 0x05, 0xab, 0x08, 0x09,
0xd6, 0x5f, 0x0e, 0x38, 0xf7, 0x6e, 0x4e, 0xc2, 0xc3, 0xd9, 0xb8, 0xcd, 0x6e, 0x14, 0xbc, 0xf6,
0x67, 0x94, 0x38, 0x92, 0xcd, 0x4b, 0x34, 0xcc, 0x64, 0x20, 0xa4, 0x39, 0xab, 0xbf, 0x3d, 0x7d,
0x35, 0xef, 0x73, 0x97, 0x6d, 0xd6, 0xf9, 0xcb, 0xde, 0x35, 0xa5, 0x1f, 0xa5, 0x21, 0x3f, 0x01,
0x07, 0xf8, 0x3e, 0x34, 0x25, 0x83, 0x5d, 0x16, 0xd3, 0xc9, 0x14, 0x6f, 0xc9, 0xe3, 0x6c, 0xe7,
0x5a, 0x09, 0xbb, 0x66, 0xcd, 0xff, 0x21, 0xdd, 0x5a, 0x77, 0x68, 0x99, 0xf1, 0xcb, 0x07, 0xe2,
0x82, 0xcc, 0xa2, 0x7b, 0xe4, 0x65, 0x10, 0xe9, 0xc7, 0x99, 0xf0, 0xd8, 0xdb, 0x27, 0x5a, 0x6b,
0xe0, 0x85, 0xd9, 0xf3, 0xf8, 0x03, 0x21, 0x8e, 0xe3, 0x38, 0x42, 0x65, 0xbf, 0xb1, 0xa3, 0x64,
0x0e, 0x8c, 0xa1, 0x02, 0x61, 0x00, 0xe6, 0x84, 0x8c, 0x31, 0xd4, 0x66, 0xff, 0xfe, 0xfc, 0x54,
0x7e, 0x3a, 0x3b, 0x0d, 0x37, 0x85, 0xde, 0x6f, 0x78, 0xb0, 0xdd, 0x12, 0x61, 0x08, 0x43, 0x51,
0x2e, 0x49, 0x56, 0x11, 0xa0, 0x67, 0x55, 0x09, 0xb1, 0x65, 0x0b, 0x27, 0x41, 0x50, 0x09, 0x83,
0x8d, 0xd8, 0xe6, 0x8e, 0xec, 0x6e, 0x75, 0x30, 0x55, 0x3b, 0x63, 0x7d, 0x60, 0x24, 0x24, 0x64,
0x3b, 0x33, 0xe8, 0xbc, 0x5b, 0x76, 0x2e, 0x17, 0x99, 0xbc, 0x79, 0xd5, 0x6b, 0x13, 0x25, 0x1d,
0x36, 0xd4, 0xf2, 0x01, 0xda, 0x21, 0x82, 0x41, 0x6c, 0xe1, 0x35, 0x74, 0xe8, 0x82, 0x78, 0xff,
0x04, 0x46, 0x7a, 0xd6, 0x02, 0xd9, 0x02, 0x61, 0x00, 0xde, 0x99, 0x4f, 0xdf, 0x18, 0x1f, 0x02,
0xbe, 0x2b, 0xf9, 0xe5, 0xf5, 0xe4, 0xe5, 0x17, 0xa9, 0x49, 0x93, 0xb8, 0x27, 0xd1, 0xea, 0xf6,
0x09, 0x03, 0x3e, 0x3a, 0x6a, 0x6f, 0x23, 0x96, 0xae, 0x7c, 0x44, 0xe9, 0xeb, 0x59, 0x4c, 0xf1,
0x04, 0x4c, 0xb3, 0xad, 0x32, 0xea, 0x25, 0x8f, 0x0c, 0x82, 0x96, 0x3b, 0x27, 0xbb, 0x65, 0x0e,
0xd2, 0x00, 0xcd, 0xe8, 0x2c, 0xb9, 0x93, 0x37, 0x4b, 0xe3, 0x4b, 0xe5, 0xb1, 0xc7, 0xea, 0xd5,
0x44, 0x6a, 0x2b, 0x82, 0xa4, 0x48, 0x6e, 0x8c, 0x18, 0x10, 0xa0, 0xb0, 0x15, 0x51, 0x60, 0x9f,
0xb0, 0x84, 0x1d, 0x47, 0x4b, 0xad, 0xa8, 0x02, 0xbd, 0x02, 0x60, 0x76, 0xdd, 0xae, 0x75, 0x1b,
0x73, 0xa9, 0x59, 0xd0, 0xbf, 0xb8, 0xff, 0x49, 0xe7, 0xfc, 0xd3, 0x78, 0xe9, 0xbe, 0x30, 0x65,
0x2e, 0xce, 0xfe, 0x35, 0xc8, 0x2c, 0xb8, 0x00, 0x3b, 0xc2, 0x9c, 0xc6, 0x0a, 0xe3, 0x80, 0x99,
0x09, 0xba, 0xf2, 0x0c, 0x95, 0xdb, 0x95, 0x16, 0xfe, 0x68, 0x08, 0x65, 0x41, 0x71, 0x11, 0xd8,
0xb1, 0x93, 0xdb, 0xcf, 0x30, 0x28, 0x1f, 0x12, 0x49, 0xde, 0x57, 0xc8, 0x58, 0xbf, 0x1b, 0xa3,
0x2f, 0x5b, 0xb1, 0x59, 0x98, 0x00, 0xe8, 0x39, 0x8a, 0x9e, 0xf2, 0x5c, 0x7a, 0x64, 0x2c, 0x95,
0x26, 0x1d, 0xa6, 0xf9, 0xc1, 0x76, 0x70, 0xe9, 0x72, 0x65, 0xb1, 0x02, 0x60, 0x73, 0x24, 0x82,
0xb8, 0x37, 0xd5, 0xf2, 0xa9, 0x44, 0x3e, 0x23, 0xc1, 0xaa, 0x01, 0x06, 0xd8, 0x3e, 0x82, 0xf6,
0xc3, 0x42, 0x46, 0x73, 0xb5, 0xfd, 0xc3, 0x76, 0x9c, 0x0f, 0x99, 0x2d, 0x1c, 0x5c, 0x93, 0x99,
0x1c, 0x70, 0x38, 0xe8, 0x82, 0xfc, 0xda, 0x04, 0x41, 0x4d, 0xf4, 0xd7, 0xa5, 0xf4, 0xf6, 0x98,
0xea, 0xd8, 0x78, 0x51, 0xce, 0x37, 0x34, 0x4b, 0x60, 0xb7, 0x2d, 0x7b, 0x70, 0xf9, 0xc6, 0x0c,
0xae, 0x85, 0x66, 0xe7, 0xa2, 0x57, 0xf8, 0xe1, 0xbe, 0xf0, 0xe8, 0x9d, 0xf6, 0xe4, 0xc2, 0xf9,
0xd2, 0x4d, 0x21, 0xd9, 0xf8, 0x88, 0x9e, 0x4c, 0x7e, 0xcc, 0xf9, 0x17, 0x51, 0x02, 0x60, 0x09,
0x05, 0x0d, 0x94, 0x49, 0x3d, 0xa8, 0xf0, 0x0a, 0x4d, 0xdb, 0xe9, 0xc8, 0x00, 0xaf, 0xe3, 0xd4,
0x4b, 0x43, 0xf7, 0x8a, 0x48, 0x94, 0x1a, 0x79, 0xb2, 0x81, 0x4a, 0x1f, 0x0b, 0x81, 0xa1, 0x8a,
0x8b, 0x23, 0x47, 0x64, 0x2a, 0x03, 0xb2, 0x79, 0x98, 0xf5, 0xa1, 0x8d, 0xe9, 0xab, 0xc9, 0xae,
0x0e, 0x54, 0xab, 0x82, 0x94, 0xfe, 0xac, 0x66, 0xdc, 0x87, 0xe8, 0x54, 0xcc, 0xe6, 0xf7, 0x27,
0x8a, 0xc2, 0x71, 0x0c, 0xb5, 0x87, 0x8b, 0x59, 0x2f, 0xfe, 0xb1, 0xf4, 0xf0, 0xa1, 0x85, 0x3e,
0x4e, 0x8d, 0x1d, 0x05, 0x61, 0xb6, 0xef, 0xcc, 0x83, 0x1a, 0x29, 0x6c, 0xf7, 0xee, 0xaf,
};
const unsigned char test_rsa_1536_pub[] = {
0x30, 0x81, 0xc9, 0x02, 0x81, 0xc1, 0x00, 0xc8, 0x70, 0xfe, 0xb6, 0xca, 0x6b, 0x1d, 0x2b, 0xd9,
0xf2, 0xdd, 0x99, 0xe2, 0x0f, 0x1f, 0xe2, 0xd7, 0xe5, 0x19, 0x2d, 0xe6, 0x62, 0x22, 0x9d, 0xbe,
0x16, 0x2b, 0xd1, 0xba, 0x66, 0x33, 0x6a, 0x71, 0x82, 0x90, 0x3c, 0xa0, 0xb7, 0x27, 0x96, 0xcd,
0x44, 0x1c, 0x83, 0xd2, 0x4b, 0xcd, 0xc3, 0xe9, 0xa2, 0xf5, 0xe4, 0x39, 0x9c, 0x8a, 0x04, 0x3f,
0x1c, 0x3d, 0xdf, 0x04, 0x75, 0x4a, 0x66, 0xd4, 0xcf, 0xe7, 0xb3, 0x67, 0x1a, 0x37, 0xdd, 0x31,
0xa9, 0xb4, 0xc1, 0x3b, 0xfe, 0x06, 0xee, 0x90, 0xf9, 0xd9, 0x4d, 0xda, 0xa0, 0x6d, 0xe6, 0x7a,
0x52, 0xac, 0x86, 0x3e, 0x68, 0xf7, 0x56, 0x73, 0x6c, 0xeb, 0x01, 0x44, 0x05, 0xa6, 0x16, 0x05,
0x79, 0x64, 0x0f, 0x83, 0x1d, 0xdd, 0xcc, 0xc3, 0x4a, 0xd0, 0xb0, 0x50, 0x70, 0xe3, 0xf9, 0x95,
0x4a, 0x58, 0xd1, 0x81, 0x58, 0x13, 0xe1, 0xb8, 0x3b, 0xca, 0xdb, 0xa8, 0x14, 0x78, 0x9c, 0x87,
0xf1, 0xef, 0x2b, 0xa5, 0xd7, 0x38, 0xb7, 0x93, 0xec, 0x45, 0x6a, 0x67, 0x36, 0x0e, 0xea, 0x1b,
0x5f, 0xaf, 0x1c, 0x7c, 0xc7, 0xbf, 0x24, 0xf3, 0xb2, 0xa9, 0xd0, 0xf8, 0x95, 0x8b, 0x10, 0x96,
0xe0, 0xf0, 0xc3, 0x35, 0xf8, 0x88, 0x8d, 0x0c, 0x63, 0xa5, 0x1c, 0x3c, 0x03, 0x37, 0x21, 0x4f,
0xa3, 0xf5, 0xef, 0xdf, 0x6d, 0xcc, 0x35, 0x02, 0x03, 0x01, 0x00, 0x01,
};
const unsigned char test_rsa_2048_priv[] = {
0x30, 0x82, 0x04, 0xa3, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, 0xf7, 0xbb, 0x6b, 0x8e,
0xab, 0x40, 0x49, 0x1c, 0xd6, 0x44, 0x55, 0xec, 0x04, 0xd4, 0xed, 0x8d, 0xb5, 0x05, 0x1a, 0x97,
0x38, 0xfc, 0x7a, 0xf7, 0x3f, 0xf3, 0xb0, 0x97, 0x51, 0x1c, 0xce, 0x40, 0xaa, 0xf7, 0x65, 0x37,
0xb1, 0x35, 0x35, 0x04, 0x42, 0x79, 0x86, 0xb7, 0xb2, 0xb5, 0x3a, 0x96, 0x4a, 0x69, 0x37, 0xb5,
0x58, 0xec, 0x0d, 0x1d, 0xea, 0x27, 0x4a, 0xf2, 0xb8, 0xff, 0xf2, 0xf0, 0x94, 0xc2, 0x43, 0xfa,
0x57, 0x72, 0x66, 0xa7, 0x9d, 0xb0, 0xc2, 0x6f, 0xfe, 0x30, 0x41, 0x6d, 0x23, 0xef, 0x05, 0xdd,
0x5f, 0xec, 0xab, 0x41, 0x3e, 0xbb, 0xb4, 0xf8, 0x52, 0x6a, 0xe7, 0x20, 0xa9, 0x45, 0x84, 0x22,
0x6b, 0x37, 0xd9, 0x2e, 0xf4, 0x63, 0xfc, 0x73, 0x6c, 0xb3, 0x8e, 0x53, 0x0e, 0x74, 0x88, 0xd9,
0x16, 0x2f, 0x57, 0x26, 0x80, 0x7b, 0xc5, 0x43, 0x13, 0x8a, 0x2d, 0x25, 0x8a, 0xdb, 0x4d, 0x68,
0x02, 0x21, 0xc2, 0x53, 0x23, 0x81, 0xcc, 0xfa, 0x81, 0xbc, 0x89, 0xbc, 0x3d, 0x7b, 0x84, 0x03,
0x9c, 0x2d, 0xf4, 0x1c, 0xe3, 0xec, 0x8d, 0xb9, 0x1c, 0x23, 0x80, 0xe7, 0x81, 0xba, 0x3a, 0xa9,
0xe2, 0x3b, 0x74, 0xed, 0x99, 0x73, 0xd4, 0x90, 0x8e, 0xfc, 0xa4, 0x7a, 0xa8, 0xd9, 0xb7, 0xb0,
0xa4, 0x42, 0x32, 0x97, 0xa4, 0x04, 0x42, 0x7c, 0x3f, 0x3c, 0xd6, 0xe0, 0x78, 0x2e, 0x45, 0x53,
0x88, 0x0f, 0x06, 0xba, 0x39, 0xa6, 0x4f, 0x4a, 0x7b, 0x0e, 0xef, 0x92, 0x1a, 0x60, 0x50, 0xa2,
0x07, 0xce, 0xfa, 0xdc, 0xf0, 0x73, 0x94, 0xa3, 0xe1, 0x8e, 0xa9, 0x15, 0xdc, 0x84, 0x97, 0xe7,
0xae, 0x61, 0xfc, 0x31, 0x62, 0xf6, 0x2f, 0x50, 0x65, 0xa6, 0x92, 0xaf, 0x07, 0x72, 0x66, 0xf7,
0x36, 0x0c, 0x20, 0x76, 0xce, 0xbe, 0xaf, 0x14, 0xcb, 0x22, 0xc1, 0xed, 0x02, 0x03, 0x01, 0x00,
0x01, 0x02, 0x82, 0x01, 0x00, 0x00, 0xb8, 0x96, 0x2d, 0xce, 0x60, 0x4b, 0xc6, 0x2e, 0x76, 0x78,
0xf4, 0x8c, 0xa8, 0x0c, 0xff, 0xf4, 0x56, 0xad, 0x36, 0xe2, 0xf6, 0xd3, 0x29, 0xcc, 0x91, 0x1a,
0x42, 0xba, 0x7c, 0xf5, 0xb9, 0xb8, 0xf5, 0xaa, 0xe1, 0x00, 0x5e, 0x4a, 0x06, 0xf6, 0xe5, 0x91,
0x27, 0x90, 0x38, 0xd8, 0x50, 0x8f, 0x2b, 0x62, 0xba, 0xdf, 0xa5, 0x22, 0x3d, 0xa3, 0xcc, 0x94,
0xfa, 0x83, 0x60, 0xd5, 0x55, 0x6f, 0x6d, 0x68, 0x52, 0xbe, 0x75, 0xea, 0x08, 0x13, 0x5c, 0xac,
0x18, 0x34, 0xda, 0x71, 0x9a, 0x4e, 0x78, 0x37, 0xe1, 0x66, 0xd1, 0xd2, 0xc6, 0xc8, 0x16, 0xb6,
0x46, 0x61, 0xc1, 0x07, 0x66, 0xb0, 0x2f, 0x70, 0x5c, 0xc4, 0x48, 0x9f, 0x94, 0x74, 0x28, 0x25,
0x58, 0x35, 0xa9, 0x09, 0x21, 0x43, 0x41, 0xc2, 0x13, 0x35, 0xae, 0x12, 0x18, 0x1d, 0xd8, 0x1e,
0x61, 0x1d, 0x59, 0xb1, 0xdb, 0x70, 0x66, 0x7b, 0xeb, 0xd7, 0xe9, 0x2b, 0x71, 0xe1, 0xd3, 0x88,
0x31, 0x8d, 0x3e, 0xc1, 0x4d, 0x61, 0x6f, 0x72, 0xc2, 0x31, 0xf6, 0x72, 0x7a, 0x18, 0x3e, 0x68,
0x18, 0x28, 0x5b, 0xd6, 0x5f, 0x65, 0x72, 0xca, 0xdc, 0x90, 0x12, 0x24, 0x88, 0x21, 0xb2, 0xd0,
0xae, 0x6c, 0xed, 0xd3, 0x0c, 0xa4, 0x40, 0xd4, 0xd3, 0x4c, 0xd7, 0x7e, 0x2c, 0xf6, 0xb4, 0x0e,
0xd2, 0xc7, 0xd8, 0x56, 0xb3, 0x0d, 0x47, 0x47, 0x33, 0xfc, 0xe0, 0xfb, 0x69, 0x5c, 0x3e, 0x65,
0x30, 0xc0, 0x79, 0xae, 0xd9, 0x55, 0xe4, 0x07, 0x30, 0x55, 0xf2, 0x65, 0x5d, 0x4b, 0x67, 0x1e,
0x29, 0x1f, 0xde, 0x40, 0x0f, 0x2f, 0x06, 0xd0, 0xb3, 0x3f, 0x87, 0xd2, 0x61, 0xe0, 0xad, 0x3d,
0xae, 0x48, 0xa9, 0x13, 0x84, 0x1b, 0x34, 0xcf, 0xed, 0x03, 0x79, 0x0f, 0xca, 0xee, 0x00, 0xde,
0x2e, 0x90, 0xfb, 0x96, 0x21, 0x02, 0x81, 0x81, 0x00, 0xfc, 0xbe, 0x89, 0xcd, 0x1a, 0xa3, 0x19,
0xe4, 0x9e, 0xf4, 0xf7, 0x21, 0x49, 0xbf, 0x06, 0xda, 0x57, 0xdc, 0xc6, 0x4d, 0x3d, 0xe6, 0x05,
0xe9, 0xff, 0x3e, 0x76, 0xfc, 0x66, 0xf4, 0xb1, 0xe2, 0x87, 0x82, 0x45, 0xff, 0xd7, 0x19, 0x90,
0x51, 0x1b, 0x17, 0xe9, 0x7f, 0x33, 0x81, 0x88, 0x89, 0xa8, 0xc2, 0x1b, 0x55, 0x27, 0xfd, 0x18,
0x13, 0x27, 0xaf, 0xfe, 0x88, 0xf9, 0xbb, 0xa6, 0x70, 0xc4, 0xe6, 0xf1, 0xe6, 0x30, 0x9b, 0xd0,
0x32, 0x30, 0x74, 0xe4, 0xcb, 0xcf, 0x23, 0xdc, 0xe3, 0xc1, 0x9b, 0x8d, 0x54, 0x95, 0xf5, 0x6a,
0x93, 0x05, 0x9b, 0xa7, 0x41, 0x4f, 0x28, 0xed, 0x1e, 0xc9, 0x06, 0xad, 0x18, 0xc6, 0x3d, 0xe1,
0x14, 0x8a, 0xbc, 0xfe, 0x9b, 0xe7, 0x98, 0x60, 0x00, 0xf4, 0x25, 0xe5, 0x80, 0xb7, 0x0e, 0x43,
0xe4, 0x8e, 0x24, 0xfa, 0x9d, 0x51, 0xaa, 0xae, 0x4d, 0x02, 0x81, 0x81, 0x00, 0xfa, 0xec, 0x5a,
0x7b, 0xed, 0x2e, 0x53, 0xcf, 0xca, 0x1e, 0x16, 0x7d, 0xb4, 0x64, 0x1d, 0xb5, 0xa0, 0x0f, 0xe2,
0xc3, 0x28, 0x12, 0x54, 0x23, 0xd5, 0x94, 0x78, 0x9f, 0x3e, 0xc0, 0x72, 0xc6, 0x23, 0xe7, 0xaf,
0xbd, 0xee, 0x00, 0x89, 0xfd, 0x26, 0x30, 0x76, 0x51, 0xf6, 0xd3, 0x61, 0x1a, 0x88, 0xaf, 0x28,
0xc3, 0x45, 0x85, 0xd5, 0xcb, 0x71, 0x3a, 0x65, 0x0c, 0x35, 0x93, 0x3f, 0x58, 0x94, 0x4d, 0xb9,
0xbd, 0x15, 0xba, 0x9f, 0xc2, 0x8b, 0x07, 0xe6, 0x70, 0x5b, 0x7b, 0x3e, 0xf1, 0xcc, 0xb4, 0x8d,
0x21, 0xa5, 0x35, 0x69, 0xc8, 0xb8, 0x4c, 0x44, 0x4b, 0x61, 0xea, 0x5c, 0x6e, 0x67, 0xb5, 0x4f,
0x0a, 0xfd, 0x85, 0x2f, 0xfb, 0x8c, 0x92, 0xa1, 0x11, 0xfa, 0xb8, 0x67, 0x72, 0x63, 0xee, 0xb8,
0x0c, 0xf1, 0xa3, 0x40, 0x3b, 0x4a, 0x9a, 0x20, 0x97, 0x76, 0x94, 0x72, 0x21, 0x02, 0x81, 0x80,
0x2f, 0xf9, 0x9a, 0xfe, 0xab, 0xc7, 0xb9, 0xea, 0x83, 0xa1, 0xcc, 0x27, 0x2d, 0x70, 0x6d, 0x44,
0x94, 0xd8, 0xfb, 0x6b, 0x3e, 0x0c, 0xa3, 0xa2, 0xbf, 0x28, 0x84, 0x3d, 0x74, 0xed, 0x8d, 0xb6,
0x8a, 0x32, 0x58, 0x47, 0x2f, 0xf5, 0x52, 0x47, 0x92, 0xf4, 0xff, 0x05, 0x7e, 0x29, 0x60, 0x59,
0x81, 0x07, 0x17, 0x59, 0x1a, 0xb6, 0x18, 0x13, 0xca, 0xbc, 0xc5, 0x7c, 0x0a, 0xab, 0x6b, 0xf4,
0x8b, 0xeb, 0xaa, 0x8f, 0x1f, 0x3a, 0xf4, 0x52, 0x12, 0x90, 0x9d, 0xbd, 0x72, 0x1c, 0x44, 0x99,
0x96, 0xee, 0x87, 0xed, 0x3e, 0x69, 0xcf, 0x49, 0x09, 0x0f, 0x7a, 0xb8, 0x12, 0xe6, 0x99, 0xdb,
0xf6, 0x1c, 0xa6, 0x4e, 0xc5, 0x92, 0x89, 0x5e, 0xf4, 0xd6, 0xdb, 0x1d, 0x8c, 0xe0, 0x87, 0x98,
0xa6, 0xbf, 0x6a, 0xc8, 0xfb, 0xf6, 0x61, 0x3c, 0xc9, 0x1e, 0x8b, 0xd3, 0xc0, 0xe4, 0xbd, 0x21,
0x02, 0x81, 0x81, 0x00, 0xb2, 0x9b, 0x34, 0x59, 0x0b, 0xdd, 0xb3, 0x08, 0xaf, 0xec, 0xb4, 0xc3,
0xab, 0x78, 0xab, 0xf1, 0x11, 0x4a, 0xdd, 0x75, 0x5e, 0x7b, 0x95, 0x6a, 0xa0, 0x67, 0x7b, 0x68,
0x96, 0xa9, 0x33, 0xc9, 0x37, 0xdb, 0x7d, 0xab, 0xaa, 0xd2, 0xb5, 0x65, 0xfd, 0x1d, 0xf7, 0xca,
0xa5, 0xef, 0x96, 0x29, 0xe5, 0xeb, 0x10, 0x0f, 0xd6, 0xd7, 0xc9, 0xf3, 0x72, 0xd8, 0x46, 0xfe,
0xe6, 0xcf, 0xb6, 0x02, 0x5e, 0x25, 0xe9, 0x34, 0xdf, 0x57, 0xa4, 0xca, 0x3c, 0x5e, 0x56, 0x37,
0xd9, 0xd6, 0x23, 0x5a, 0xc8, 0x04, 0x28, 0x85, 0x2f, 0x6c, 0x92, 0xac, 0xae, 0x0a, 0x93, 0x7e,
0x38, 0xe7, 0x31, 0xfd, 0xe0, 0x52, 0x1d, 0x3e, 0x4c, 0x70, 0xd6, 0x53, 0xae, 0x9e, 0xdc, 0x89,
0xc8, 0xb6, 0x23, 0xe4, 0x37, 0x9f, 0xbf, 0x60, 0x6f, 0x4b, 0x6d, 0xb8, 0x06, 0x85, 0x28, 0xf7,
0xc7, 0x0f, 0x29, 0x21, 0x02, 0x81, 0x80, 0x0e, 0xd4, 0x7a, 0xe0, 0x5b, 0x27, 0x5a, 0x23, 0xa7,
0xdf, 0xe3, 0xff, 0xb7, 0x27, 0xe3, 0xa2, 0x68, 0xe6, 0x26, 0xa5, 0x9d, 0x40, 0x1d, 0x2d, 0x84,
0x6d, 0xe2, 0x69, 0x54, 0xff, 0x54, 0xfc, 0x9e, 0xd9, 0x3a, 0x9a, 0xf3, 0x3f, 0xac, 0x2c, 0x96,
0x7a, 0x18, 0xe0, 0xf8, 0x61, 0x45, 0x08, 0x3e, 0x39, 0x92, 0x34, 0x54, 0xbc, 0x10, 0xda, 0x5f,
0x49, 0x37, 0xe8, 0x36, 0xb9, 0x98, 0x51, 0x95, 0x6b, 0xff, 0xb3, 0x01, 0xce, 0x9e, 0x06, 0x78,
0x97, 0x86, 0x69, 0x32, 0x13, 0xfc, 0xde, 0x6d, 0x5f, 0x29, 0x33, 0xd5, 0x2b, 0xb2, 0x9d, 0xc3,
0x40, 0xea, 0x01, 0x12, 0x57, 0x78, 0x8d, 0x3c, 0x57, 0x75, 0xeb, 0x65, 0x69, 0x23, 0x0a, 0xaf,
0xbf, 0x08, 0x75, 0x2d, 0x40, 0xa8, 0x41, 0x9d, 0xe7, 0x1b, 0x01, 0xd4, 0x92, 0x7e, 0x27, 0xc1,
0x07, 0x9c, 0xaa, 0xda, 0x05, 0x68, 0xb1,
};
const unsigned char test_rsa_2048_pub[] = {
0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xf7, 0xbb, 0x6b, 0x8e, 0xab, 0x40, 0x49,
0x1c, 0xd6, 0x44, 0x55, 0xec, 0x04, 0xd4, 0xed, 0x8d, 0xb5, 0x05, 0x1a, 0x97, 0x38, 0xfc, 0x7a,
0xf7, 0x3f, 0xf3, 0xb0, 0x97, 0x51, 0x1c, 0xce, 0x40, 0xaa, 0xf7, 0x65, 0x37, 0xb1, 0x35, 0x35,
0x04, 0x42, 0x79, 0x86, 0xb7, 0xb2, 0xb5, 0x3a, 0x96, 0x4a, 0x69, 0x37, 0xb5, 0x58, 0xec, 0x0d,
0x1d, 0xea, 0x27, 0x4a, 0xf2, 0xb8, 0xff, 0xf2, 0xf0, 0x94, 0xc2, 0x43, 0xfa, 0x57, 0x72, 0x66,
0xa7, 0x9d, 0xb0, 0xc2, 0x6f, 0xfe, 0x30, 0x41, 0x6d, 0x23, 0xef, 0x05, 0xdd, 0x5f, 0xec, 0xab,
0x41, 0x3e, 0xbb, 0xb4, 0xf8, 0x52, 0x6a, 0xe7, 0x20, 0xa9, 0x45, 0x84, 0x22, 0x6b, 0x37, 0xd9,
0x2e, 0xf4, 0x63, 0xfc, 0x73, 0x6c, 0xb3, 0x8e, 0x53, 0x0e, 0x74, 0x88, 0xd9, 0x16, 0x2f, 0x57,
0x26, 0x80, 0x7b, 0xc5, 0x43, 0x13, 0x8a, 0x2d, 0x25, 0x8a, 0xdb, 0x4d, 0x68, 0x02, 0x21, 0xc2,
0x53, 0x23, 0x81, 0xcc, 0xfa, 0x81, 0xbc, 0x89, 0xbc, 0x3d, 0x7b, 0x84, 0x03, 0x9c, 0x2d, 0xf4,
0x1c, 0xe3, 0xec, 0x8d, 0xb9, 0x1c, 0x23, 0x80, 0xe7, 0x81, 0xba, 0x3a, 0xa9, 0xe2, 0x3b, 0x74,
0xed, 0x99, 0x73, 0xd4, 0x90, 0x8e, 0xfc, 0xa4, 0x7a, 0xa8, 0xd9, 0xb7, 0xb0, 0xa4, 0x42, 0x32,
0x97, 0xa4, 0x04, 0x42, 0x7c, 0x3f, 0x3c, 0xd6, 0xe0, 0x78, 0x2e, 0x45, 0x53, 0x88, 0x0f, 0x06,
0xba, 0x39, 0xa6, 0x4f, 0x4a, 0x7b, 0x0e, 0xef, 0x92, 0x1a, 0x60, 0x50, 0xa2, 0x07, 0xce, 0xfa,
0xdc, 0xf0, 0x73, 0x94, 0xa3, 0xe1, 0x8e, 0xa9, 0x15, 0xdc, 0x84, 0x97, 0xe7, 0xae, 0x61, 0xfc,
0x31, 0x62, 0xf6, 0x2f, 0x50, 0x65, 0xa6, 0x92, 0xaf, 0x07, 0x72, 0x66, 0xf7, 0x36, 0x0c, 0x20,
0x76, 0xce, 0xbe, 0xaf, 0x14, 0xcb, 0x22, 0xc1, 0xed, 0x02, 0x03, 0x01, 0x00, 0x01,
};
const unsigned char test_rsa_4096_priv[] = {
0x30, 0x82, 0x09, 0x29, 0x02, 0x01, 0x00, 0x02, 0x82, 0x02, 0x01, 0x00, 0xcc, 0x87, 0x25, 0xf6,
0xb3, 0x8d, 0x5d, 0x01, 0xae, 0xeb, 0x07, 0xd3, 0x6e, 0x03, 0xde, 0x4d, 0x31, 0xa0, 0x26, 0x1c,
0xe7, 0x4f, 0xe1, 0x1a, 0x89, 0x5e, 0xcf, 0xd1, 0x3d, 0x16, 0x8a, 0xee, 0x93, 0x2a, 0xf1, 0x35,
0xff, 0xbb, 0x84, 0x98, 0x77, 0x27, 0x38, 0x97, 0x08, 0x1f, 0x3f, 0x75, 0x93, 0xc1, 0x4a, 0xe8,
0x2b, 0xc2, 0x66, 0xc1, 0x05, 0x44, 0xf7, 0x26, 0xae, 0x1c, 0xcf, 0x13, 0x3d, 0x8a, 0x40, 0x18,
0xd3, 0x80, 0xdf, 0xa2, 0x52, 0x51, 0xc0, 0x11, 0x10, 0x7b, 0x75, 0x13, 0xa9, 0x43, 0x34, 0x6a,
0xa0, 0xe0, 0xde, 0xc1, 0x1d, 0x8d, 0x7f, 0xa2, 0x56, 0x44, 0x65, 0x3c, 0x11, 0x8d, 0xaa, 0xbc,
0xe6, 0xd4, 0x1f, 0x06, 0x6f, 0x66, 0x21, 0x76, 0x88, 0x01, 0x47, 0x80, 0x55, 0x78, 0x0e, 0x91,
0xb6, 0x8e, 0xa3, 0xc9, 0x58, 0x56, 0xd1, 0x72, 0xa8, 0x90, 0x32, 0xb3, 0x9c, 0x82, 0x4e, 0x8b,
0x7d, 0xc1, 0xa3, 0xf8, 0xae, 0xe4, 0xf6, 0xb3, 0x68, 0xba, 0xa3, 0xcd, 0x68, 0xf5, 0x0d, 0x52,
0x68, 0x01, 0x17, 0xe9, 0xb9, 0x13, 0xd7, 0xf8, 0xc8, 0x52, 0xa0, 0xd1, 0x00, 0x8e, 0x8b, 0x87,
0xa5, 0xc9, 0x7e, 0x37, 0xaf, 0xc1, 0x1a, 0x08, 0x05, 0x50, 0x55, 0x7b, 0x8b, 0x4d, 0xcb, 0xd8,
0xe1, 0x92, 0xed, 0x33, 0x66, 0xd8, 0x3a, 0x09, 0xd2, 0x7c, 0x77, 0xe1, 0x50, 0xf6, 0x68, 0x55,
0xb5, 0xdc, 0xfd, 0xb2, 0xdf, 0x15, 0x1b, 0xd7, 0xf4, 0x44, 0x25, 0x0e, 0xaf, 0x6f, 0xe3, 0xf2,
0x36, 0x82, 0x6c, 0x81, 0xfa, 0x84, 0x81, 0x01, 0xbf, 0xaa, 0xd5, 0x35, 0xff, 0xb5, 0x22, 0xd6,
0xff, 0x97, 0xc9, 0xdd, 0x1e, 0x43, 0xb8, 0x2c, 0xce, 0x29, 0x21, 0xd1, 0x53, 0xc1, 0x54, 0x50,
0xc4, 0x72, 0x4f, 0xfd, 0x3e, 0xfd, 0xca, 0x57, 0x8e, 0x01, 0x36, 0x50, 0xa0, 0x3a, 0x5c, 0xf5,
0x01, 0xfc, 0x58, 0x60, 0x0f, 0xb5, 0xc8, 0x60, 0xc0, 0xef, 0x0c, 0xfe, 0x0a, 0xc0, 0x71, 0x2d,
0x44, 0x13, 0x13, 0xdc, 0xa4, 0x1a, 0x4d, 0x7d, 0x41, 0x1e, 0x6c, 0x83, 0xb2, 0x15, 0x17, 0x49,
0xd2, 0x8b, 0xe4, 0x69, 0x2f, 0x62, 0x37, 0x3d, 0xb0, 0x7e, 0x4a, 0x79, 0x05, 0x1c, 0x56, 0x82,
0xec, 0x20, 0xd4, 0x91, 0xc4, 0xcf, 0xc7, 0xbc, 0x14, 0x0f, 0x35, 0xfa, 0x15, 0xe5, 0xa1, 0xfa,
0x75, 0x6d, 0x65, 0xb8, 0xef, 0x93, 0xad, 0xdf, 0x4c, 0x47, 0xc4, 0xa3, 0x5b, 0x18, 0x4f, 0x22,
0xa1, 0xef, 0x08, 0x99, 0x48, 0xf9, 0x46, 0xf6, 0xfa, 0xeb, 0x64, 0x70, 0xf2, 0x67, 0x46, 0xe6,
0x58, 0xcf, 0x9b, 0x41, 0x77, 0x41, 0x78, 0x42, 0xe6, 0xd3, 0x73, 0x55, 0x80, 0x89, 0xaf, 0xf7,
0x21, 0xb9, 0x30, 0xe9, 0xec, 0x61, 0xb4, 0xf6, 0xa0, 0x2c, 0x05, 0x2c, 0x69, 0x24, 0xd3, 0x9a,
0x5b, 0xbb, 0x15, 0xed, 0x11, 0x06, 0xc4, 0x01, 0x0f, 0x4d, 0xd6, 0x9c, 0x79, 0xd0, 0x42, 0xc8,
0xb3, 0x16, 0x61, 0xb1, 0xee, 0x48, 0x6b, 0xc6, 0x9d, 0xb5, 0xf2, 0xf0, 0x7a, 0x50, 0xd8, 0x5b,
0x20, 0x69, 0x9d, 0x60, 0x13, 0x15, 0x62, 0x5b, 0xb8, 0x69, 0x62, 0x9c, 0x7f, 0x4c, 0x5d, 0x48,
0xb2, 0x11, 0xd0, 0x97, 0xf4, 0x38, 0xac, 0xec, 0x95, 0x97, 0x3a, 0x38, 0xd4, 0x21, 0x09, 0x0a,
0xf0, 0xf1, 0x34, 0x84, 0xe4, 0xe9, 0x4b, 0x8c, 0xb5, 0xef, 0xc1, 0x85, 0x07, 0xf4, 0xb9, 0x31,
0xdf, 0x39, 0x98, 0x7f, 0xfb, 0x28, 0x30, 0x29, 0x3e, 0x4d, 0xa3, 0x81, 0xaa, 0xf7, 0x0b, 0x32,
0x92, 0x95, 0x2e, 0xf9, 0x34, 0xe2, 0xb4, 0x0f, 0xde, 0xbb, 0xa3, 0xd9, 0x70, 0x1b, 0x76, 0xe1,
0xbe, 0x54, 0x82, 0x74, 0xb2, 0x60, 0x2d, 0x88, 0x85, 0x37, 0x48, 0x2d, 0x02, 0x03, 0x01, 0x00,
0x01, 0x02, 0x82, 0x02, 0x00, 0x1a, 0x94, 0x3e, 0x9c, 0x00, 0x89, 0xf0, 0xaa, 0x01, 0x16, 0x04,
0x8a, 0x96, 0xab, 0xb4, 0x86, 0x32, 0x1a, 0x86, 0x91, 0x6f, 0x82, 0xfb, 0x35, 0x24, 0x60, 0x78,
0x9f, 0xcf, 0xb1, 0x40, 0x05, 0x50, 0x85, 0x3e, 0x5a, 0xfe, 0xdc, 0x9a, 0xd6, 0xe8, 0x77, 0x25,
0x9c, 0xc4, 0xfe, 0xb0, 0x93, 0xc2, 0x4b, 0x96, 0x85, 0x34, 0xf8, 0x9a, 0xbb, 0x5f, 0x48, 0xae,
0xd8, 0xad, 0x3c, 0x4b, 0xb1, 0xcb, 0xa7, 0xcd, 0x7c, 0x1c, 0x72, 0x4d, 0x3d, 0xae, 0x36, 0x77,
0x00, 0x10, 0xb5, 0x06, 0x8a, 0x33, 0x4f, 0x2b, 0x3e, 0xe7, 0x20, 0xc9, 0xf9, 0xed, 0x32, 0x00,
0x01, 0xf3, 0xf5, 0x87, 0xf5, 0x66, 0x2f, 0x93, 0x9e, 0x60, 0x5d, 0xf5, 0x19, 0x34, 0x3d, 0x60,
0xc0, 0x63, 0x5c, 0xcd, 0x32, 0xb1, 0x88, 0xbc, 0x55, 0xf5, 0xd4, 0x34, 0x17, 0x3c, 0x9e, 0x6d,
0xb2, 0x19, 0x93, 0x41, 0xaf, 0x83, 0x39, 0x90, 0xe5, 0x02, 0x46, 0xf9, 0x9c, 0xdd, 0xf7, 0x9d,
0xd2, 0xc3, 0x5b, 0xab, 0xe1, 0x4c, 0x10, 0x3a, 0x76, 0xb8, 0xd2, 0xd9, 0x8d, 0x73, 0x52, 0x8f,
0x98, 0xc2, 0x49, 0xb0, 0xa1, 0xf0, 0x91, 0x55, 0xb3, 0x1f, 0x59, 0x9f, 0xc8, 0x33, 0x54, 0x24,
0x22, 0xa2, 0x34, 0x26, 0x23, 0xbb, 0xbe, 0xf4, 0xac, 0x7e, 0xe6, 0x05, 0xe2, 0xcd, 0xec, 0xf0,
0x1f, 0xea, 0x25, 0x68, 0x3b, 0xd4, 0xf6, 0x6c, 0xa9, 0x24, 0xcc, 0xef, 0x00, 0x41, 0x8a, 0xdf,
0xf7, 0x30, 0xc4, 0x71, 0x4f, 0x66, 0xff, 0xa2, 0xaf, 0x0d, 0xa3, 0xe5, 0xdf, 0x7f, 0x53, 0x9c,
0x63, 0x42, 0x89, 0xfc, 0x12, 0xbc, 0x24, 0x09, 0x3e, 0xc8, 0xf0, 0xec, 0x18, 0x0a, 0xf0, 0x90,
0x7c, 0xec, 0x1e, 0xbe, 0xc9, 0x11, 0xfa, 0x18, 0x0f, 0xb5, 0xf3, 0xc8, 0x0e, 0xd8, 0x52, 0x89,
0x6a, 0xd6, 0xe6, 0xb3, 0xec, 0xcb, 0x44, 0xde, 0x62, 0x19, 0x3d, 0x52, 0x11, 0x8c, 0xab, 0x2b,
0x17, 0x10, 0x71, 0xd5, 0xfd, 0xaa, 0x7c, 0x42, 0x88, 0xfc, 0x77, 0x66, 0xd5, 0x77, 0x74, 0xf4,
0xbe, 0x46, 0x15, 0x1b, 0xb9, 0x0a, 0xce, 0x7c, 0x10, 0xc2, 0x15, 0xf6, 0x2e, 0xd2, 0x6e, 0x52,
0xe6, 0x12, 0x24, 0x36, 0xf5, 0x32, 0xbd, 0x54, 0xfc, 0x08, 0x27, 0x2a, 0xdb, 0x21, 0x6a, 0x2d,
0xb4, 0x33, 0xd5, 0x69, 0x9c, 0x40, 0xad, 0x58, 0xfa, 0xa2, 0x66, 0x08, 0x98, 0xff, 0xcc, 0xfc,
0x98, 0x00, 0x2f, 0x8b, 0xb0, 0x36, 0x1b, 0x4c, 0xf9, 0xed, 0x6e, 0x93, 0xc1, 0xca, 0x96, 0xd3,
0x4a, 0x1e, 0xf4, 0x04, 0x60, 0xf8, 0x59, 0x18, 0xcf, 0xde, 0x4a, 0x81, 0x93, 0xb5, 0x1e, 0xce,
0xa4, 0xb3, 0x90, 0x3c, 0xae, 0x92, 0x4a, 0x8f, 0xad, 0x5f, 0x83, 0x08, 0x95, 0x4c, 0x9f, 0x19,
0xa7, 0x59, 0x7b, 0xf0, 0xa7, 0x51, 0x26, 0xa5, 0x57, 0xe4, 0x9f, 0x8b, 0xbd, 0x31, 0xfc, 0x4e,
0x85, 0x56, 0xf2, 0x30, 0x64, 0x0b, 0xf3, 0x62, 0x04, 0xc6, 0xcf, 0x3d, 0x56, 0xdc, 0xa5, 0xa4,
0x1d, 0x86, 0x03, 0x07, 0xba, 0x67, 0x05, 0xa6, 0x98, 0x68, 0x11, 0x00, 0xa3, 0x27, 0xf9, 0x17,
0x39, 0xc4, 0x86, 0xc4, 0x70, 0xba, 0x71, 0xd0, 0x3d, 0x28, 0x53, 0x14, 0xb0, 0xd7, 0xd0, 0x40,
0x08, 0xe0, 0x3f, 0x2a, 0x2b, 0x85, 0xe7, 0xc2, 0x43, 0xd6, 0xfd, 0x9b, 0x97, 0xa0, 0x21, 0x68,
0xc0, 0x69, 0xec, 0x57, 0x2d, 0x3f, 0x0c, 0xa1, 0x5e, 0xbc, 0xb1, 0x73, 0x9f, 0x3a, 0x0b, 0x3c,
0x14, 0x7a, 0x88, 0xe0, 0xb7, 0x4f, 0x45, 0xa0, 0x07, 0xae, 0x92, 0x7d, 0x6f, 0x82, 0x2b, 0xf5,
0x0b, 0x87, 0xb1, 0xe9, 0x3f, 0xe7, 0xd9, 0x18, 0x0b, 0xc6, 0xbc, 0x12, 0xbd, 0xe6, 0xc8, 0x07,
0x0d, 0x10, 0xc9, 0x73, 0x31, 0x02, 0x82, 0x01, 0x01, 0x00, 0xf5, 0x0e, 0xbc, 0xea, 0xc9, 0xd3,
0xc6, 0x44, 0x82, 0xa8, 0xc2, 0x65, 0xd6, 0x36, 0x54, 0x61, 0xaa, 0x4a, 0x31, 0xa6, 0xa7, 0x63,
0x3a, 0x24, 0xc8, 0xe3, 0x47, 0x94, 0xec, 0xdf, 0xca, 0xb1, 0xd6, 0xb5, 0x2f, 0xb6, 0xa5, 0xf3,
0x80, 0x55, 0xcc, 0x32, 0xd6, 0xa6, 0x1b, 0x88, 0x95, 0x50, 0xde, 0x27, 0xb3, 0xd0, 0xbd, 0x68,
0xb6, 0xd4, 0xfd, 0xa0, 0x41, 0x59, 0x8a, 0xb9, 0x88, 0x87, 0x14, 0x39, 0x88, 0x57, 0x68, 0x06,
0xb1, 0xc4, 0x87, 0x20, 0x79, 0x49, 0x02, 0x95, 0x2e, 0xbe, 0x1b, 0xf0, 0xde, 0xf6, 0x5a, 0x0e,
0x6f, 0x94, 0x06, 0x70, 0x56, 0xe6, 0x86, 0x4f, 0xa2, 0x88, 0x2e, 0x3a, 0x16, 0xf2, 0x46, 0x28,
0x20, 0x93, 0xd0, 0x37, 0x63, 0x90, 0x78, 0x18, 0x2d, 0xd0, 0xa6, 0xeb, 0x21, 0xd3, 0xba, 0xd0,
0x63, 0x79, 0x01, 0xa2, 0x68, 0xb1, 0x4c, 0x63, 0x2c, 0x9d, 0x0b, 0x16, 0x90, 0xed, 0x88, 0xab,
0xdd, 0xe0, 0x3f, 0x52, 0x82, 0x47, 0xaa, 0x2e, 0x41, 0x55, 0x7d, 0x08, 0x65, 0xad, 0x34, 0xe5,
0x3f, 0xf5, 0x3a, 0xe0, 0xe5, 0xde, 0xa1, 0x95, 0xd9, 0x3f, 0xe6, 0x5c, 0x25, 0x87, 0x1f, 0x6f,
0x23, 0xad, 0xf3, 0x4b, 0x6e, 0x96, 0x0c, 0x29, 0x78, 0xf2, 0xb7, 0x47, 0x5d, 0xaf, 0xce, 0x6c,
0xbb, 0x26, 0xa5, 0x39, 0x34, 0xd2, 0x6c, 0x19, 0x3d, 0x67, 0xf3, 0x2d, 0xe9, 0x10, 0x35, 0xee,
0xb8, 0x90, 0x22, 0xbe, 0xb7, 0xd5, 0xdf, 0x78, 0x4a, 0xc2, 0x0c, 0xa6, 0xab, 0x91, 0xbf, 0x6b,
0x77, 0x5b, 0x6c, 0x94, 0x16, 0xf6, 0x05, 0xb4, 0x84, 0x17, 0x36, 0xcb, 0xfb, 0xd2, 0x2a, 0xd9,
0x8a, 0xb2, 0xe8, 0x42, 0x84, 0x57, 0xe0, 0x79, 0x3f, 0x5a, 0xf4, 0x0e, 0x55, 0x0b, 0x48, 0x76,
0x5d, 0x59, 0xe6, 0xe1, 0xb4, 0xa4, 0xa1, 0xf5, 0x71, 0xf1, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd5,
0xa9, 0x1d, 0x4d, 0x44, 0xbb, 0x9b, 0x73, 0xc1, 0xfe, 0x02, 0x48, 0x92, 0x5e, 0x2c, 0x0e, 0xc1,
0xde, 0x51, 0x39, 0x0b, 0xd8, 0xa7, 0x3b, 0x45, 0x3d, 0xa5, 0x1a, 0xe2, 0x93, 0x25, 0xae, 0x76,
0x57, 0x08, 0x9f, 0xd4, 0xee, 0x4a, 0x2f, 0xd9, 0x6e, 0x34, 0x5b, 0x57, 0xf6, 0x72, 0xd7, 0xd4,
0x84, 0xfd, 0xe9, 0x91, 0x89, 0xab, 0x0a, 0x63, 0x65, 0xbf, 0x2b, 0x38, 0x68, 0x0d, 0x6b, 0xb9,
0x47, 0xf4, 0xb2, 0x17, 0xbe, 0x66, 0x03, 0x23, 0xc2, 0x6b, 0x86, 0xd6, 0x43, 0xae, 0x68, 0x6d,
0x82, 0xe3, 0x6e, 0xc0, 0x0c, 0xfd, 0x03, 0x89, 0x42, 0x44, 0x3c, 0xaa, 0x04, 0xa0, 0xf9, 0x1e,
0x68, 0xec, 0x71, 0x79, 0x35, 0xb4, 0x5e, 0x79, 0x03, 0x11, 0xbe, 0x56, 0x44, 0x0d, 0x71, 0x76,
0x94, 0x95, 0x94, 0x68, 0x8e, 0xd1, 0xdd, 0x5c, 0x91, 0x03, 0xc5, 0x7c, 0x15, 0x8d, 0x05, 0xe4,
0xc3, 0x7b, 0x98, 0xd8, 0x18, 0x98, 0x03, 0x07, 0x44, 0xa6, 0x4f, 0x6e, 0xbd, 0xbf, 0x75, 0x0a,
0xab, 0x79, 0x75, 0x7e, 0x34, 0xda, 0xc4, 0x22, 0x16, 0x3e, 0xa7, 0xc0, 0xf4, 0x2b, 0x97, 0x71,
0x0c, 0x86, 0x19, 0x78, 0xb2, 0x41, 0x00, 0x38, 0x5a, 0xad, 0x72, 0x7e, 0x5f, 0x38, 0x36, 0xa7,
0x4e, 0xa4, 0xbf, 0x1d, 0x36, 0xef, 0x2a, 0x5e, 0xdf, 0x9c, 0x9e, 0x8f, 0x99, 0x6e, 0xf3, 0x19,
0x13, 0x48, 0x45, 0x0e, 0xa9, 0xf1, 0xd4, 0xa6, 0x3d, 0xb2, 0x9c, 0xb0, 0x6f, 0x63, 0xe5, 0xba,
0xdb, 0x18, 0xe4, 0xd4, 0x0f, 0x51, 0x12, 0xb6, 0x58, 0xd1, 0xcc, 0x23, 0xcb, 0x65, 0x38, 0x8a,
0xca, 0x03, 0xd1, 0x41, 0xa6, 0xbc, 0x5f, 0xbd, 0x94, 0x29, 0xfe, 0x33, 0xd3, 0x40, 0xd3, 0xe8,
0x5b, 0xfa, 0x84, 0x89, 0x08, 0xd6, 0x0b, 0x56, 0x2f, 0x89, 0x4e, 0x8a, 0x33, 0x7d, 0xfd, 0x02,
0x82, 0x01, 0x01, 0x00, 0xc4, 0x95, 0x0f, 0x0d, 0x95, 0xdc, 0x51, 0xd7, 0x91, 0xad, 0x09, 0x4d,
0x22, 0x3b, 0x31, 0x13, 0xab, 0xc4, 0x9a, 0xf1, 0xe2, 0xa3, 0x61, 0xf8, 0x32, 0x42, 0xc8, 0xa0,
0x7a, 0x28, 0xc8, 0x74, 0x43, 0x15, 0xd3, 0xf1, 0xc4, 0x4c, 0x82, 0xed, 0xd0, 0xc2, 0x13, 0x98,
0xea, 0xcb, 0x75, 0x64, 0x8a, 0xe1, 0xf4, 0x88, 0x85, 0xf9, 0x23, 0x79, 0xd6, 0xff, 0xa0, 0x8c,
0xd1, 0x11, 0x26, 0xa9, 0x9d, 0x9a, 0xcd, 0x79, 0xb8, 0x94, 0x6e, 0x34, 0x86, 0x65, 0x91, 0x85,
0xf5, 0x11, 0x71, 0x8e, 0xc5, 0xe1, 0x43, 0x2b, 0x02, 0x71, 0x44, 0x26, 0xcd, 0xc7, 0x7e, 0x9e,
0xac, 0xad, 0xe3, 0x67, 0x35, 0x16, 0x1a, 0x64, 0x3d, 0xcd, 0x60, 0xdc, 0xd2, 0x92, 0x2c, 0x47,
0xaf, 0x5f, 0x4e, 0x19, 0x6c, 0x5d, 0x81, 0x24, 0x55, 0x5f, 0x67, 0xfc, 0xa1, 0x48, 0x04, 0x8d,
0xfe, 0x06, 0x2c, 0xba, 0xca, 0x33, 0x4f, 0x0d, 0x8d, 0xae, 0xb9, 0x6d, 0x73, 0xbe, 0x9f, 0x8e,
0x17, 0xc1, 0xc5, 0x5d, 0x6b, 0xd0, 0xb9, 0xa7, 0xe9, 0x9f, 0xe1, 0xdf, 0xba, 0x5c, 0xc1, 0x6a,
0x07, 0xdb, 0xaa, 0x8c, 0x6d, 0x22, 0x0c, 0x64, 0xc9, 0xdd, 0xa1, 0x14, 0xa0, 0xf0, 0x29, 0x05,
0x2b, 0x3a, 0x75, 0xb0, 0xd7, 0x3f, 0xe3, 0xb2, 0xed, 0x78, 0x21, 0xe5, 0xcd, 0x73, 0x07, 0xa1,
0xa9, 0x5f, 0xd1, 0xf7, 0xba, 0x87, 0x60, 0xc8, 0x45, 0x4b, 0x7c, 0x38, 0xfb, 0xf6, 0x5c, 0x88,
0xb0, 0x1c, 0xd2, 0x73, 0xba, 0x2c, 0x55, 0xc3, 0xb4, 0x77, 0xe4, 0x26, 0xae, 0x02, 0x5a, 0x2c,
0xff, 0xc4, 0xa0, 0x95, 0xf2, 0xba, 0x4e, 0x07, 0x79, 0xa2, 0x4b, 0x76, 0x5b, 0x85, 0x48, 0x9f,
0x2a, 0x0e, 0x79, 0xb9, 0x5f, 0xc0, 0xc3, 0x8e, 0x2a, 0x91, 0xf1, 0x2e, 0xf6, 0x5c, 0xa7, 0x49,
0xce, 0x36, 0x94, 0x31, 0x02, 0x82, 0x01, 0x00, 0x2a, 0xa4, 0x8e, 0x0c, 0x95, 0xe3, 0x3b, 0xab,
0x66, 0xd4, 0x63, 0x70, 0x48, 0x86, 0x33, 0x14, 0xde, 0xec, 0x98, 0x19, 0x62, 0x9b, 0xe3, 0x04,
0x99, 0x55, 0x2c, 0x56, 0xa9, 0x51, 0xe4, 0xfb, 0x64, 0xf3, 0x09, 0xed, 0x9c, 0x79, 0xd2, 0xa4,
0xaa, 0x28, 0xac, 0x9a, 0x6e, 0x7b, 0xe9, 0x7f, 0xda, 0x12, 0x90, 0xfa, 0xc4, 0xe9, 0x4d, 0x11,
0xcd, 0xb4, 0xc8, 0xea, 0xbf, 0x5f, 0x45, 0x0e, 0x72, 0xf4, 0x41, 0x8a, 0x29, 0xe2, 0xfe, 0x49,
0x32, 0x21, 0xe3, 0x84, 0x0d, 0xcf, 0x84, 0x47, 0xa3, 0x53, 0xb4, 0x40, 0xae, 0x63, 0xe9, 0x3b,
0x83, 0x71, 0x8e, 0x5c, 0xed, 0x31, 0xef, 0x4e, 0xc9, 0x1a, 0xf7, 0xd5, 0xcd, 0xf3, 0x42, 0x04,
0x78, 0xf2, 0x7b, 0xe0, 0x19, 0x27, 0x8b, 0xe7, 0x51, 0x5b, 0x66, 0x5f, 0x30, 0x5f, 0x10, 0xd3,
0xb5, 0x5d, 0xdb, 0xfa, 0xd6, 0x41, 0x16, 0xdc, 0x4e, 0x44, 0x15, 0xae, 0xf3, 0xb2, 0x34, 0xe4,
0xa5, 0xd6, 0xb5, 0xba, 0xb4, 0xc7, 0x7a, 0x26, 0xc9, 0xf2, 0x5f, 0x53, 0x6b, 0xd4, 0xf0, 0xb4,
0xa4, 0x78, 0xfc, 0x18, 0x4f, 0x12, 0x6c, 0x80, 0xd5, 0x37, 0x42, 0xac, 0x62, 0xc2, 0x70, 0xe6,
0xb2, 0x58, 0xa6, 0xb5, 0x6b, 0x33, 0x65, 0xec, 0xc2, 0x87, 0x97, 0xa9, 0xed, 0x12, 0xc1, 0xb9,
0x1b, 0x26, 0x56, 0x03, 0xef, 0x75, 0x18, 0x07, 0xbc, 0xc1, 0x74, 0x73, 0x13, 0xf2, 0x27, 0x29,
0xe1, 0xe3, 0xfe, 0x79, 0xf7, 0x5c, 0xc3, 0xfb, 0x5d, 0xc7, 0xcc, 0xb8, 0x1e, 0xfa, 0xcf, 0x9b,
0x84, 0x79, 0x45, 0xa6, 0x10, 0x9e, 0xcf, 0x9c, 0xf1, 0x56, 0x50, 0x5c, 0xbb, 0x55, 0xa3, 0xd3,
0x17, 0xeb, 0x32, 0x56, 0x61, 0xd1, 0x8f, 0xe6, 0xbb, 0x41, 0x60, 0x46, 0x83, 0x73, 0x18, 0x05,
0x3b, 0x36, 0x51, 0x99, 0x33, 0x4c, 0x03, 0xa1, 0x02, 0x82, 0x01, 0x01, 0x00, 0xee, 0x63, 0x70,
0x60, 0x30, 0xa4, 0xec, 0xe9, 0xfe, 0x3b, 0xdd, 0xcf, 0xc4, 0x9f, 0x5a, 0x83, 0xf3, 0x7f, 0x63,
0xeb, 0xcb, 0x29, 0xdb, 0xdc, 0x99, 0x9f, 0x6f, 0xf5, 0x4b, 0x59, 0x6f, 0x11, 0x5c, 0xf1, 0xec,
0xa0, 0x99, 0x90, 0x10, 0x8a, 0x43, 0x95, 0x18, 0xe9, 0x96, 0xf6, 0x89, 0xfd, 0xde, 0x89, 0xb2,
0xc6, 0x7e, 0xdc, 0x04, 0xbf, 0x8e, 0x36, 0x67, 0x34, 0xc2, 0xae, 0x30, 0x17, 0xec, 0x14, 0xe0,
0x42, 0x05, 0x0e, 0x7c, 0x65, 0x68, 0x40, 0x14, 0x6c, 0xa0, 0x48, 0x39, 0x4d, 0xce, 0xbe, 0x90,
0xdd, 0x21, 0x95, 0x34, 0x9b, 0xba, 0xd3, 0x06, 0x56, 0x90, 0x31, 0xb2, 0xef, 0x6e, 0x91, 0x71,
0xd2, 0xae, 0x77, 0x97, 0xc8, 0x84, 0x4e, 0x54, 0x83, 0x94, 0xca, 0x3b, 0x76, 0x8d, 0x84, 0x96,
0xe9, 0x9e, 0xf6, 0x3a, 0xbb, 0x59, 0xb0, 0xff, 0x7f, 0xc7, 0x0e, 0xb5, 0x31, 0x53, 0xdd, 0x0f,
0x59, 0x01, 0x8a, 0x27, 0x5a, 0xcb, 0xa7, 0x01, 0xf2, 0xc7, 0x6a, 0x15, 0xc8, 0x94, 0xf5, 0x34,
0x61, 0xfe, 0xdf, 0x65, 0xbc, 0x25, 0xc2, 0xc5, 0xce, 0xc3, 0x96, 0xe5, 0x56, 0xa1, 0xa9, 0x19,
0xbc, 0x7a, 0x05, 0x63, 0x93, 0xd5, 0x06, 0x44, 0x12, 0x6d, 0xcd, 0xef, 0x92, 0x56, 0x64, 0x2e,
0x65, 0xa6, 0x04, 0x3c, 0xbc, 0xe9, 0x49, 0x7e, 0x19, 0x2c, 0xf2, 0xcb, 0x33, 0x64, 0x8e, 0x11,
0x7f, 0x41, 0xdb, 0xf0, 0x19, 0x00, 0xac, 0xb9, 0x3b, 0x0c, 0x78, 0xdd, 0xf3, 0x1f, 0x38, 0x1f,
0x4d, 0xb3, 0xf9, 0xcc, 0xbb, 0xb6, 0x90, 0x93, 0xda, 0xbf, 0x2e, 0x89, 0xdb, 0xbc, 0x0c, 0xb7,
0x2f, 0x20, 0xc0, 0x05, 0xa2, 0x51, 0x9e, 0x3a, 0x87, 0x41, 0x46, 0x49, 0x5d, 0x7a, 0xac, 0xf3,
0x41, 0x6a, 0x42, 0x2e, 0x56, 0x09, 0x86, 0xf2, 0x2f, 0x39, 0x45, 0x6e, 0x7f,
};
const unsigned char test_rsa_4096_pub[] = {
0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xcc, 0x87, 0x25, 0xf6, 0xb3, 0x8d, 0x5d,
0x01, 0xae, 0xeb, 0x07, 0xd3, 0x6e, 0x03, 0xde, 0x4d, 0x31, 0xa0, 0x26, 0x1c, 0xe7, 0x4f, 0xe1,
0x1a, 0x89, 0x5e, 0xcf, 0xd1, 0x3d, 0x16, 0x8a, 0xee, 0x93, 0x2a, 0xf1, 0x35, 0xff, 0xbb, 0x84,
0x98, 0x77, 0x27, 0x38, 0x97, 0x08, 0x1f, 0x3f, 0x75, 0x93, 0xc1, 0x4a, 0xe8, 0x2b, 0xc2, 0x66,
0xc1, 0x05, 0x44, 0xf7, 0x26, 0xae, 0x1c, 0xcf, 0x13, 0x3d, 0x8a, 0x40, 0x18, 0xd3, 0x80, 0xdf,
0xa2, 0x52, 0x51, 0xc0, 0x11, 0x10, 0x7b, 0x75, 0x13, 0xa9, 0x43, 0x34, 0x6a, 0xa0, 0xe0, 0xde,
0xc1, 0x1d, 0x8d, 0x7f, 0xa2, 0x56, 0x44, 0x65, 0x3c, 0x11, 0x8d, 0xaa, 0xbc, 0xe6, 0xd4, 0x1f,
0x06, 0x6f, 0x66, 0x21, 0x76, 0x88, 0x01, 0x47, 0x80, 0x55, 0x78, 0x0e, 0x91, 0xb6, 0x8e, 0xa3,
0xc9, 0x58, 0x56, 0xd1, 0x72, 0xa8, 0x90, 0x32, 0xb3, 0x9c, 0x82, 0x4e, 0x8b, 0x7d, 0xc1, 0xa3,
0xf8, 0xae, 0xe4, 0xf6, 0xb3, 0x68, 0xba, 0xa3, 0xcd, 0x68, 0xf5, 0x0d, 0x52, 0x68, 0x01, 0x17,
0xe9, 0xb9, 0x13, 0xd7, 0xf8, 0xc8, 0x52, 0xa0, 0xd1, 0x00, 0x8e, 0x8b, 0x87, 0xa5, 0xc9, 0x7e,
0x37, 0xaf, 0xc1, 0x1a, 0x08, 0x05, 0x50, 0x55, 0x7b, 0x8b, 0x4d, 0xcb, 0xd8, 0xe1, 0x92, 0xed,
0x33, 0x66, 0xd8, 0x3a, 0x09, 0xd2, 0x7c, 0x77, 0xe1, 0x50, 0xf6, 0x68, 0x55, 0xb5, 0xdc, 0xfd,
0xb2, 0xdf, 0x15, 0x1b, 0xd7, 0xf4, 0x44, 0x25, 0x0e, 0xaf, 0x6f, 0xe3, 0xf2, 0x36, 0x82, 0x6c,
0x81, 0xfa, 0x84, 0x81, 0x01, 0xbf, 0xaa, 0xd5, 0x35, 0xff, 0xb5, 0x22, 0xd6, 0xff, 0x97, 0xc9,
0xdd, 0x1e, 0x43, 0xb8, 0x2c, 0xce, 0x29, 0x21, 0xd1, 0x53, 0xc1, 0x54, 0x50, 0xc4, 0x72, 0x4f,
0xfd, 0x3e, 0xfd, 0xca, 0x57, 0x8e, 0x01, 0x36, 0x50, 0xa0, 0x3a, 0x5c, 0xf5, 0x01, 0xfc, 0x58,
0x60, 0x0f, 0xb5, 0xc8, 0x60, 0xc0, 0xef, 0x0c, 0xfe, 0x0a, 0xc0, 0x71, 0x2d, 0x44, 0x13, 0x13,
0xdc, 0xa4, 0x1a, 0x4d, 0x7d, 0x41, 0x1e, 0x6c, 0x83, 0xb2, 0x15, 0x17, 0x49, 0xd2, 0x8b, 0xe4,
0x69, 0x2f, 0x62, 0x37, 0x3d, 0xb0, 0x7e, 0x4a, 0x79, 0x05, 0x1c, 0x56, 0x82, 0xec, 0x20, 0xd4,
0x91, 0xc4, 0xcf, 0xc7, 0xbc, 0x14, 0x0f, 0x35, 0xfa, 0x15, 0xe5, 0xa1, 0xfa, 0x75, 0x6d, 0x65,
0xb8, 0xef, 0x93, 0xad, 0xdf, 0x4c, 0x47, 0xc4, 0xa3, 0x5b, 0x18, 0x4f, 0x22, 0xa1, 0xef, 0x08,
0x99, 0x48, 0xf9, 0x46, 0xf6, 0xfa, 0xeb, 0x64, 0x70, 0xf2, 0x67, 0x46, 0xe6, 0x58, 0xcf, 0x9b,
0x41, 0x77, 0x41, 0x78, 0x42, 0xe6, 0xd3, 0x73, 0x55, 0x80, 0x89, 0xaf, 0xf7, 0x21, 0xb9, 0x30,
0xe9, 0xec, 0x61, 0xb4, 0xf6, 0xa0, 0x2c, 0x05, 0x2c, 0x69, 0x24, 0xd3, 0x9a, 0x5b, 0xbb, 0x15,
0xed, 0x11, 0x06, 0xc4, 0x01, 0x0f, 0x4d, 0xd6, 0x9c, 0x79, 0xd0, 0x42, 0xc8, 0xb3, 0x16, 0x61,
0xb1, 0xee, 0x48, 0x6b, 0xc6, 0x9d, 0xb5, 0xf2, 0xf0, 0x7a, 0x50, 0xd8, 0x5b, 0x20, 0x69, 0x9d,
0x60, 0x13, 0x15, 0x62, 0x5b, 0xb8, 0x69, 0x62, 0x9c, 0x7f, 0x4c, 0x5d, 0x48, 0xb2, 0x11, 0xd0,
0x97, 0xf4, 0x38, 0xac, 0xec, 0x95, 0x97, 0x3a, 0x38, 0xd4, 0x21, 0x09, 0x0a, 0xf0, 0xf1, 0x34,
0x84, 0xe4, 0xe9, 0x4b, 0x8c, 0xb5, 0xef, 0xc1, 0x85, 0x07, 0xf4, 0xb9, 0x31, 0xdf, 0x39, 0x98,
0x7f, 0xfb, 0x28, 0x30, 0x29, 0x3e, 0x4d, 0xa3, 0x81, 0xaa, 0xf7, 0x0b, 0x32, 0x92, 0x95, 0x2e,
0xf9, 0x34, 0xe2, 0xb4, 0x0f, 0xde, 0xbb, 0xa3, 0xd9, 0x70, 0x1b, 0x76, 0xe1, 0xbe, 0x54, 0x82,
0x74, 0xb2, 0x60, 0x2d, 0x88, 0x85, 0x37, 0x48, 0x2d, 0x02, 0x03, 0x01, 0x00, 0x01,
};
struct predefined_key_element {
int group_id; // EC group ID; 0 for RSA keys
int keybits; // bits size of RSA key; 0 for EC keys
const unsigned char *priv_key;
size_t priv_key_len;
const unsigned char *pub_key;
size_t pub_key_len;
};
struct predefined_key_element predefined_keys[] = {
{ MBEDTLS_ECP_DP_BP256R1, 0,
test_ec_bp256r1_priv, sizeof(test_ec_bp256r1_priv),
test_ec_bp256r1_pub, sizeof(test_ec_bp256r1_pub) },
{ MBEDTLS_ECP_DP_BP384R1, 0,
test_ec_bp384r1_priv, sizeof(test_ec_bp384r1_priv),
test_ec_bp384r1_pub, sizeof(test_ec_bp384r1_pub) },
{ MBEDTLS_ECP_DP_BP512R1, 0,
test_ec_bp512r1_priv, sizeof(test_ec_bp512r1_priv),
test_ec_bp512r1_pub, sizeof(test_ec_bp512r1_pub) },
{ MBEDTLS_ECP_DP_CURVE25519, 0,
test_ec_curve25519_priv, sizeof(test_ec_curve25519_priv),
test_ec_curve25519_pub, sizeof(test_ec_curve25519_pub) },
{ MBEDTLS_ECP_DP_CURVE448, 0,
test_ec_curve448_priv, sizeof(test_ec_curve448_priv),
test_ec_curve448_pub, sizeof(test_ec_curve448_pub) },
{ MBEDTLS_ECP_DP_SECP192K1, 0,
test_ec_secp192k1_priv, sizeof(test_ec_secp192k1_priv),
test_ec_secp192k1_pub, sizeof(test_ec_secp192k1_pub) },
{ MBEDTLS_ECP_DP_SECP256K1, 0,
test_ec_secp256k1_priv, sizeof(test_ec_secp256k1_priv),
test_ec_secp256k1_pub, sizeof(test_ec_secp256k1_pub) },
{ MBEDTLS_ECP_DP_SECP192R1, 0,
test_ec_secp192r1_priv, sizeof(test_ec_secp192r1_priv),
test_ec_secp192r1_pub, sizeof(test_ec_secp192r1_pub) },
{ MBEDTLS_ECP_DP_SECP224R1, 0,
test_ec_secp224r1_priv, sizeof(test_ec_secp224r1_priv),
test_ec_secp224r1_pub, sizeof(test_ec_secp224r1_pub) },
{ MBEDTLS_ECP_DP_SECP256R1, 0,
test_ec_secp256r1_priv, sizeof(test_ec_secp256r1_priv),
test_ec_secp256r1_pub, sizeof(test_ec_secp256r1_pub) },
{ MBEDTLS_ECP_DP_SECP384R1, 0,
test_ec_secp384r1_priv, sizeof(test_ec_secp384r1_priv),
test_ec_secp384r1_pub, sizeof(test_ec_secp384r1_pub) },
{ MBEDTLS_ECP_DP_SECP521R1, 0,
test_ec_secp521r1_priv, sizeof(test_ec_secp521r1_priv),
test_ec_secp521r1_pub, sizeof(test_ec_secp521r1_pub) },
{ 0, 1024,
test_rsa_1024_priv, sizeof(test_rsa_1024_priv),
test_rsa_1024_pub, sizeof(test_rsa_1024_pub) },
{ 0, 1026,
test_rsa_1026_priv, sizeof(test_rsa_1026_priv),
test_rsa_1026_pub, sizeof(test_rsa_1026_pub) },
{ 0, 1028,
test_rsa_1028_priv, sizeof(test_rsa_1028_priv),
test_rsa_1028_pub, sizeof(test_rsa_1028_pub) },
{ 0, 1030,
test_rsa_1030_priv, sizeof(test_rsa_1030_priv),
test_rsa_1030_pub, sizeof(test_rsa_1030_pub) },
{ 0, 1536,
test_rsa_1536_priv, sizeof(test_rsa_1536_priv),
test_rsa_1536_pub, sizeof(test_rsa_1536_pub) },
{ 0, 2048,
test_rsa_2048_priv, sizeof(test_rsa_2048_priv),
test_rsa_2048_pub, sizeof(test_rsa_2048_pub) },
{ 0, 4096,
test_rsa_4096_priv, sizeof(test_rsa_4096_priv),
test_rsa_4096_pub, sizeof(test_rsa_4096_pub) },
};
/* End of generated file */
+432 -408
View File
File diff suppressed because it is too large Load Diff
+52
View File
@@ -5,6 +5,7 @@
#include "bignum_core.h"
#include "bignum_internal.h"
#include "test/constant_flow.h"
#include "test/bignum_codepath_check.h"
#if MBEDTLS_MPI_MAX_BITS > 792
#define MPI_MAX_BITS_LARGER_THAN_792
@@ -989,7 +990,13 @@ void mpi_exp_mod_min_RR(char *input_A, char *input_E,
* against a smaller RR. */
TEST_LE_U(RR.n, N.n - 1);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_SECRET, res, E);
#endif
/* We know that exp_mod internally needs RR to be as large as N.
* Validate that it is the case now, otherwise there was probably
* a buffer overread. */
@@ -1022,7 +1029,26 @@ void mpi_exp_mod(char *input_A, char *input_E,
TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0);
TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, NULL);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_SECRET, res, E);
#endif
TEST_ASSERT(res == exp_result);
if (res == 0) {
TEST_ASSERT(sign_is_valid(&Z));
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &X) == 0);
}
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
res = mbedtls_mpi_exp_mod_unsafe(&Z, &A, &E, &N, NULL);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_PUBLIC, res, E);
#endif
TEST_ASSERT(res == exp_result);
if (res == 0) {
TEST_ASSERT(sign_is_valid(&Z));
@@ -1030,7 +1056,13 @@ void mpi_exp_mod(char *input_A, char *input_E,
}
/* Now test again with the speed-up parameter supplied as an output. */
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_SECRET, res, E);
#endif
TEST_ASSERT(res == exp_result);
if (res == 0) {
TEST_ASSERT(sign_is_valid(&Z));
@@ -1038,7 +1070,13 @@ void mpi_exp_mod(char *input_A, char *input_E,
}
/* Now test again with the speed-up parameter supplied in calculated form. */
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_SECRET, res, E);
#endif
TEST_ASSERT(res == exp_result);
if (res == 0) {
TEST_ASSERT(sign_is_valid(&Z));
@@ -1078,7 +1116,21 @@ void mpi_exp_mod_size(int A_bytes, int E_bytes, int N_bytes,
TEST_ASSERT(mbedtls_test_read_mpi(&RR, input_RR) == 0);
}
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
TEST_ASSERT(mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR) == exp_result);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_SECRET, exp_result, E);
#endif
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_codepath_reset();
#endif
TEST_ASSERT(mbedtls_mpi_exp_mod_unsafe(&Z, &A, &E, &N, &RR) == exp_result);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
ASSERT_BIGNUM_CODEPATH(MBEDTLS_MPI_IS_PUBLIC, exp_result, E);
#endif
exit:
mbedtls_mpi_free(&A); mbedtls_mpi_free(&E); mbedtls_mpi_free(&N);
@@ -1,975 +0,0 @@
# Automatically generated by generate_bignum_tests.py. Do not edit!
MPI add #1 0 (null) + 0 (null)
mpi_add_mpi:"":"":"0"
MPI add #2 0 (null) + 0 (1 limb)
mpi_add_mpi:"":"0":"0"
MPI add #3 0 (null) + negative 0 (null)
mpi_add_mpi:"":"-":"0"
MPI add #4 0 (null) + negative with leading zero limb
mpi_add_mpi:"":"-0":"0"
MPI add #5 0 (null) + positive
mpi_add_mpi:"":"7b":"7b"
MPI add #6 0 (null) + negative
mpi_add_mpi:"":"-7b":"-7b"
MPI add #7 0 (null) + positive with leading zero limb
mpi_add_mpi:"":"0000000000000000123":"123"
MPI add #8 0 (null) + negative with leading zero limb
mpi_add_mpi:"":"-0000000000000000123":"-123"
MPI add #9 0 (null) + large positive
mpi_add_mpi:"":"1230000000000000000":"1230000000000000000"
MPI add #10 0 (null) + large negative
mpi_add_mpi:"":"-1230000000000000000":"-1230000000000000000"
MPI add #11 0 (1 limb) + 0 (null)
mpi_add_mpi:"0":"":"0"
MPI add #12 0 (1 limb) + 0 (1 limb)
mpi_add_mpi:"0":"0":"0"
MPI add #13 0 (1 limb) + negative 0 (null)
mpi_add_mpi:"0":"-":"0"
MPI add #14 0 (1 limb) + negative with leading zero limb
mpi_add_mpi:"0":"-0":"0"
MPI add #15 0 (1 limb) + positive
mpi_add_mpi:"0":"7b":"7b"
MPI add #16 0 (1 limb) + negative
mpi_add_mpi:"0":"-7b":"-7b"
MPI add #17 0 (1 limb) + positive with leading zero limb
mpi_add_mpi:"0":"0000000000000000123":"123"
MPI add #18 0 (1 limb) + negative with leading zero limb
mpi_add_mpi:"0":"-0000000000000000123":"-123"
MPI add #19 0 (1 limb) + large positive
mpi_add_mpi:"0":"1230000000000000000":"1230000000000000000"
MPI add #20 0 (1 limb) + large negative
mpi_add_mpi:"0":"-1230000000000000000":"-1230000000000000000"
MPI add #21 negative 0 (null) + 0 (null)
mpi_add_mpi:"-":"":"0"
MPI add #22 negative 0 (null) + 0 (1 limb)
mpi_add_mpi:"-":"0":"0"
MPI add #23 negative 0 (null) + negative 0 (null)
mpi_add_mpi:"-":"-":"0"
MPI add #24 negative 0 (null) + negative with leading zero limb
mpi_add_mpi:"-":"-0":"0"
MPI add #25 negative 0 (null) + positive
mpi_add_mpi:"-":"7b":"7b"
MPI add #26 negative 0 (null) + negative
mpi_add_mpi:"-":"-7b":"-7b"
MPI add #27 negative 0 (null) + positive with leading zero limb
mpi_add_mpi:"-":"0000000000000000123":"123"
MPI add #28 negative 0 (null) + negative with leading zero limb
mpi_add_mpi:"-":"-0000000000000000123":"-123"
MPI add #29 negative 0 (null) + large positive
mpi_add_mpi:"-":"1230000000000000000":"1230000000000000000"
MPI add #30 negative 0 (null) + large negative
mpi_add_mpi:"-":"-1230000000000000000":"-1230000000000000000"
MPI add #31 negative with leading zero limb + 0 (null)
mpi_add_mpi:"-0":"":"0"
MPI add #32 negative with leading zero limb + 0 (1 limb)
mpi_add_mpi:"-0":"0":"0"
MPI add #33 negative with leading zero limb + negative 0 (null)
mpi_add_mpi:"-0":"-":"0"
MPI add #34 negative with leading zero limb + negative with leading zero limb
mpi_add_mpi:"-0":"-0":"0"
MPI add #35 negative with leading zero limb + positive
mpi_add_mpi:"-0":"7b":"7b"
MPI add #36 negative with leading zero limb + negative
mpi_add_mpi:"-0":"-7b":"-7b"
MPI add #37 negative with leading zero limb + positive with leading zero limb
mpi_add_mpi:"-0":"0000000000000000123":"123"
MPI add #38 negative with leading zero limb + negative with leading zero limb
mpi_add_mpi:"-0":"-0000000000000000123":"-123"
MPI add #39 negative with leading zero limb + large positive
mpi_add_mpi:"-0":"1230000000000000000":"1230000000000000000"
MPI add #40 negative with leading zero limb + large negative
mpi_add_mpi:"-0":"-1230000000000000000":"-1230000000000000000"
MPI add #41 positive + 0 (null)
mpi_add_mpi:"7b":"":"7b"
MPI add #42 positive + 0 (1 limb)
mpi_add_mpi:"7b":"0":"7b"
MPI add #43 positive + negative 0 (null)
mpi_add_mpi:"7b":"-":"7b"
MPI add #44 positive + negative with leading zero limb
mpi_add_mpi:"7b":"-0":"7b"
MPI add #45 positive + positive
mpi_add_mpi:"7b":"7b":"f6"
MPI add #46 positive + negative , result=0
mpi_add_mpi:"7b":"-7b":"0"
MPI add #47 positive + positive with leading zero limb
mpi_add_mpi:"7b":"0000000000000000123":"19e"
MPI add #48 positive + negative with leading zero limb , result<0
mpi_add_mpi:"7b":"-0000000000000000123":"-a8"
MPI add #49 positive + large positive
mpi_add_mpi:"7b":"1230000000000000000":"123000000000000007b"
MPI add #50 positive + large negative , result<0
mpi_add_mpi:"7b":"-1230000000000000000":"-122ffffffffffffff85"
MPI add #51 negative + 0 (null)
mpi_add_mpi:"-7b":"":"-7b"
MPI add #52 negative + 0 (1 limb)
mpi_add_mpi:"-7b":"0":"-7b"
MPI add #53 negative + negative 0 (null)
mpi_add_mpi:"-7b":"-":"-7b"
MPI add #54 negative + negative with leading zero limb
mpi_add_mpi:"-7b":"-0":"-7b"
MPI add #55 negative + positive , result=0
mpi_add_mpi:"-7b":"7b":"0"
MPI add #56 negative + negative
mpi_add_mpi:"-7b":"-7b":"-f6"
MPI add #57 negative + positive with leading zero limb , result>0
mpi_add_mpi:"-7b":"0000000000000000123":"a8"
MPI add #58 negative + negative with leading zero limb
mpi_add_mpi:"-7b":"-0000000000000000123":"-19e"
MPI add #59 negative + large positive , result>0
mpi_add_mpi:"-7b":"1230000000000000000":"122ffffffffffffff85"
MPI add #60 negative + large negative
mpi_add_mpi:"-7b":"-1230000000000000000":"-123000000000000007b"
MPI add #61 positive with leading zero limb + 0 (null)
mpi_add_mpi:"0000000000000000123":"":"123"
MPI add #62 positive with leading zero limb + 0 (1 limb)
mpi_add_mpi:"0000000000000000123":"0":"123"
MPI add #63 positive with leading zero limb + negative 0 (null)
mpi_add_mpi:"0000000000000000123":"-":"123"
MPI add #64 positive with leading zero limb + negative with leading zero limb
mpi_add_mpi:"0000000000000000123":"-0":"123"
MPI add #65 positive with leading zero limb + positive
mpi_add_mpi:"0000000000000000123":"7b":"19e"
MPI add #66 positive with leading zero limb + negative , result>0
mpi_add_mpi:"0000000000000000123":"-7b":"a8"
MPI add #67 positive with leading zero limb + positive with leading zero limb
mpi_add_mpi:"0000000000000000123":"0000000000000000123":"246"
MPI add #68 positive with leading zero limb + negative with leading zero limb , result=0
mpi_add_mpi:"0000000000000000123":"-0000000000000000123":"0"
MPI add #69 positive with leading zero limb + large positive
mpi_add_mpi:"0000000000000000123":"1230000000000000000":"1230000000000000123"
MPI add #70 positive with leading zero limb + large negative , result<0
mpi_add_mpi:"0000000000000000123":"-1230000000000000000":"-122fffffffffffffedd"
MPI add #71 negative with leading zero limb + 0 (null)
mpi_add_mpi:"-0000000000000000123":"":"-123"
MPI add #72 negative with leading zero limb + 0 (1 limb)
mpi_add_mpi:"-0000000000000000123":"0":"-123"
MPI add #73 negative with leading zero limb + negative 0 (null)
mpi_add_mpi:"-0000000000000000123":"-":"-123"
MPI add #74 negative with leading zero limb + negative with leading zero limb
mpi_add_mpi:"-0000000000000000123":"-0":"-123"
MPI add #75 negative with leading zero limb + positive , result<0
mpi_add_mpi:"-0000000000000000123":"7b":"-a8"
MPI add #76 negative with leading zero limb + negative
mpi_add_mpi:"-0000000000000000123":"-7b":"-19e"
MPI add #77 negative with leading zero limb + positive with leading zero limb , result=0
mpi_add_mpi:"-0000000000000000123":"0000000000000000123":"0"
MPI add #78 negative with leading zero limb + negative with leading zero limb
mpi_add_mpi:"-0000000000000000123":"-0000000000000000123":"-246"
MPI add #79 negative with leading zero limb + large positive , result>0
mpi_add_mpi:"-0000000000000000123":"1230000000000000000":"122fffffffffffffedd"
MPI add #80 negative with leading zero limb + large negative
mpi_add_mpi:"-0000000000000000123":"-1230000000000000000":"-1230000000000000123"
MPI add #81 large positive + 0 (null)
mpi_add_mpi:"1230000000000000000":"":"1230000000000000000"
MPI add #82 large positive + 0 (1 limb)
mpi_add_mpi:"1230000000000000000":"0":"1230000000000000000"
MPI add #83 large positive + negative 0 (null)
mpi_add_mpi:"1230000000000000000":"-":"1230000000000000000"
MPI add #84 large positive + negative with leading zero limb
mpi_add_mpi:"1230000000000000000":"-0":"1230000000000000000"
MPI add #85 large positive + positive
mpi_add_mpi:"1230000000000000000":"7b":"123000000000000007b"
MPI add #86 large positive + negative , result>0
mpi_add_mpi:"1230000000000000000":"-7b":"122ffffffffffffff85"
MPI add #87 large positive + positive with leading zero limb
mpi_add_mpi:"1230000000000000000":"0000000000000000123":"1230000000000000123"
MPI add #88 large positive + negative with leading zero limb , result>0
mpi_add_mpi:"1230000000000000000":"-0000000000000000123":"122fffffffffffffedd"
MPI add #89 large positive + large positive
mpi_add_mpi:"1230000000000000000":"1230000000000000000":"2460000000000000000"
MPI add #90 large positive + large negative , result=0
mpi_add_mpi:"1230000000000000000":"-1230000000000000000":"0"
MPI add #91 large negative + 0 (null)
mpi_add_mpi:"-1230000000000000000":"":"-1230000000000000000"
MPI add #92 large negative + 0 (1 limb)
mpi_add_mpi:"-1230000000000000000":"0":"-1230000000000000000"
MPI add #93 large negative + negative 0 (null)
mpi_add_mpi:"-1230000000000000000":"-":"-1230000000000000000"
MPI add #94 large negative + negative with leading zero limb
mpi_add_mpi:"-1230000000000000000":"-0":"-1230000000000000000"
MPI add #95 large negative + positive , result<0
mpi_add_mpi:"-1230000000000000000":"7b":"-122ffffffffffffff85"
MPI add #96 large negative + negative
mpi_add_mpi:"-1230000000000000000":"-7b":"-123000000000000007b"
MPI add #97 large negative + positive with leading zero limb , result<0
mpi_add_mpi:"-1230000000000000000":"0000000000000000123":"-122fffffffffffffedd"
MPI add #98 large negative + negative with leading zero limb
mpi_add_mpi:"-1230000000000000000":"-0000000000000000123":"-1230000000000000123"
MPI add #99 large negative + large positive , result=0
mpi_add_mpi:"-1230000000000000000":"1230000000000000000":"0"
MPI add #100 large negative + large negative
mpi_add_mpi:"-1230000000000000000":"-1230000000000000000":"-2460000000000000000"
MPI add #101 large positive + large positive
mpi_add_mpi:"1c67967269c6":"1c67967269c6":"38cf2ce4d38c"
MPI add #102 large positive + positive
mpi_add_mpi:"1c67967269c6":"9cde3":"1c67967c37a9"
MPI add #103 large positive + large negative , result=0
mpi_add_mpi:"1c67967269c6":"-1c67967269c6":"0"
MPI add #104 large positive + negative , result>0
mpi_add_mpi:"1c67967269c6":"-9cde3":"1c6796689be3"
MPI add #105 positive + large positive
mpi_add_mpi:"9cde3":"1c67967269c6":"1c67967c37a9"
MPI add #106 positive + positive
mpi_add_mpi:"9cde3":"9cde3":"139bc6"
MPI add #107 positive + large negative , result<0
mpi_add_mpi:"9cde3":"-1c67967269c6":"-1c6796689be3"
MPI add #108 positive + negative , result=0
mpi_add_mpi:"9cde3":"-9cde3":"0"
MPI add #109 large negative + large positive , result=0
mpi_add_mpi:"-1c67967269c6":"1c67967269c6":"0"
MPI add #110 large negative + positive , result<0
mpi_add_mpi:"-1c67967269c6":"9cde3":"-1c6796689be3"
MPI add #111 large negative + large negative
mpi_add_mpi:"-1c67967269c6":"-1c67967269c6":"-38cf2ce4d38c"
MPI add #112 large negative + negative
mpi_add_mpi:"-1c67967269c6":"-9cde3":"-1c67967c37a9"
MPI add #113 negative + large positive , result>0
mpi_add_mpi:"-9cde3":"1c67967269c6":"1c6796689be3"
MPI add #114 negative + positive , result=0
mpi_add_mpi:"-9cde3":"9cde3":"0"
MPI add #115 negative + large negative
mpi_add_mpi:"-9cde3":"-1c67967269c6":"-1c67967c37a9"
MPI add #116 negative + negative
mpi_add_mpi:"-9cde3":"-9cde3":"-139bc6"
MPI compare #1 0 (null) == 0 (null)
mpi_cmp_mpi:"":"":0
MPI compare #2 0 (null) == 0 (1 limb)
mpi_cmp_mpi:"":"0":0
MPI compare #3 0 (null) == negative 0 (null)
mpi_cmp_mpi:"":"-":0
MPI compare #4 0 (null) == negative with leading zero limb
mpi_cmp_mpi:"":"-0":0
MPI compare #5 0 (null) < positive
mpi_cmp_mpi:"":"7b":-1
MPI compare #6 0 (null) > negative
mpi_cmp_mpi:"":"-7b":1
MPI compare #7 0 (null) < positive with leading zero limb
mpi_cmp_mpi:"":"0000000000000000123":-1
MPI compare #8 0 (null) > negative with leading zero limb
mpi_cmp_mpi:"":"-0000000000000000123":1
MPI compare #9 0 (null) < large positive
mpi_cmp_mpi:"":"1230000000000000000":-1
MPI compare #10 0 (null) > large negative
mpi_cmp_mpi:"":"-1230000000000000000":1
MPI compare #11 0 (1 limb) == 0 (null)
mpi_cmp_mpi:"0":"":0
MPI compare #12 0 (1 limb) == 0 (1 limb)
mpi_cmp_mpi:"0":"0":0
MPI compare #13 0 (1 limb) == negative 0 (null)
mpi_cmp_mpi:"0":"-":0
MPI compare #14 0 (1 limb) == negative with leading zero limb
mpi_cmp_mpi:"0":"-0":0
MPI compare #15 0 (1 limb) < positive
mpi_cmp_mpi:"0":"7b":-1
MPI compare #16 0 (1 limb) > negative
mpi_cmp_mpi:"0":"-7b":1
MPI compare #17 0 (1 limb) < positive with leading zero limb
mpi_cmp_mpi:"0":"0000000000000000123":-1
MPI compare #18 0 (1 limb) > negative with leading zero limb
mpi_cmp_mpi:"0":"-0000000000000000123":1
MPI compare #19 0 (1 limb) < large positive
mpi_cmp_mpi:"0":"1230000000000000000":-1
MPI compare #20 0 (1 limb) > large negative
mpi_cmp_mpi:"0":"-1230000000000000000":1
MPI compare #21 negative 0 (null) == 0 (null)
mpi_cmp_mpi:"-":"":0
MPI compare #22 negative 0 (null) == 0 (1 limb)
mpi_cmp_mpi:"-":"0":0
MPI compare #23 negative 0 (null) == negative 0 (null)
mpi_cmp_mpi:"-":"-":0
MPI compare #24 negative 0 (null) == negative with leading zero limb
mpi_cmp_mpi:"-":"-0":0
MPI compare #25 negative 0 (null) < positive
mpi_cmp_mpi:"-":"7b":-1
MPI compare #26 negative 0 (null) > negative
mpi_cmp_mpi:"-":"-7b":1
MPI compare #27 negative 0 (null) < positive with leading zero limb
mpi_cmp_mpi:"-":"0000000000000000123":-1
MPI compare #28 negative 0 (null) > negative with leading zero limb
mpi_cmp_mpi:"-":"-0000000000000000123":1
MPI compare #29 negative 0 (null) < large positive
mpi_cmp_mpi:"-":"1230000000000000000":-1
MPI compare #30 negative 0 (null) > large negative
mpi_cmp_mpi:"-":"-1230000000000000000":1
MPI compare #31 negative with leading zero limb == 0 (null)
mpi_cmp_mpi:"-0":"":0
MPI compare #32 negative with leading zero limb == 0 (1 limb)
mpi_cmp_mpi:"-0":"0":0
MPI compare #33 negative with leading zero limb == negative 0 (null)
mpi_cmp_mpi:"-0":"-":0
MPI compare #34 negative with leading zero limb == negative with leading zero limb
mpi_cmp_mpi:"-0":"-0":0
MPI compare #35 negative with leading zero limb < positive
mpi_cmp_mpi:"-0":"7b":-1
MPI compare #36 negative with leading zero limb > negative
mpi_cmp_mpi:"-0":"-7b":1
MPI compare #37 negative with leading zero limb < positive with leading zero limb
mpi_cmp_mpi:"-0":"0000000000000000123":-1
MPI compare #38 negative with leading zero limb > negative with leading zero limb
mpi_cmp_mpi:"-0":"-0000000000000000123":1
MPI compare #39 negative with leading zero limb < large positive
mpi_cmp_mpi:"-0":"1230000000000000000":-1
MPI compare #40 negative with leading zero limb > large negative
mpi_cmp_mpi:"-0":"-1230000000000000000":1
MPI compare #41 positive > 0 (null)
mpi_cmp_mpi:"7b":"":1
MPI compare #42 positive > 0 (1 limb)
mpi_cmp_mpi:"7b":"0":1
MPI compare #43 positive > negative 0 (null)
mpi_cmp_mpi:"7b":"-":1
MPI compare #44 positive > negative with leading zero limb
mpi_cmp_mpi:"7b":"-0":1
MPI compare #45 positive == positive
mpi_cmp_mpi:"7b":"7b":0
MPI compare #46 positive > negative
mpi_cmp_mpi:"7b":"-7b":1
MPI compare #47 positive < positive with leading zero limb
mpi_cmp_mpi:"7b":"0000000000000000123":-1
MPI compare #48 positive > negative with leading zero limb
mpi_cmp_mpi:"7b":"-0000000000000000123":1
MPI compare #49 positive < large positive
mpi_cmp_mpi:"7b":"1230000000000000000":-1
MPI compare #50 positive > large negative
mpi_cmp_mpi:"7b":"-1230000000000000000":1
MPI compare #51 negative < 0 (null)
mpi_cmp_mpi:"-7b":"":-1
MPI compare #52 negative < 0 (1 limb)
mpi_cmp_mpi:"-7b":"0":-1
MPI compare #53 negative < negative 0 (null)
mpi_cmp_mpi:"-7b":"-":-1
MPI compare #54 negative < negative with leading zero limb
mpi_cmp_mpi:"-7b":"-0":-1
MPI compare #55 negative < positive
mpi_cmp_mpi:"-7b":"7b":-1
MPI compare #56 negative == negative
mpi_cmp_mpi:"-7b":"-7b":0
MPI compare #57 negative < positive with leading zero limb
mpi_cmp_mpi:"-7b":"0000000000000000123":-1
MPI compare #58 negative > negative with leading zero limb
mpi_cmp_mpi:"-7b":"-0000000000000000123":1
MPI compare #59 negative < large positive
mpi_cmp_mpi:"-7b":"1230000000000000000":-1
MPI compare #60 negative > large negative
mpi_cmp_mpi:"-7b":"-1230000000000000000":1
MPI compare #61 positive with leading zero limb > 0 (null)
mpi_cmp_mpi:"0000000000000000123":"":1
MPI compare #62 positive with leading zero limb > 0 (1 limb)
mpi_cmp_mpi:"0000000000000000123":"0":1
MPI compare #63 positive with leading zero limb > negative 0 (null)
mpi_cmp_mpi:"0000000000000000123":"-":1
MPI compare #64 positive with leading zero limb > negative with leading zero limb
mpi_cmp_mpi:"0000000000000000123":"-0":1
MPI compare #65 positive with leading zero limb > positive
mpi_cmp_mpi:"0000000000000000123":"7b":1
MPI compare #66 positive with leading zero limb > negative
mpi_cmp_mpi:"0000000000000000123":"-7b":1
MPI compare #67 positive with leading zero limb == positive with leading zero limb
mpi_cmp_mpi:"0000000000000000123":"0000000000000000123":0
MPI compare #68 positive with leading zero limb > negative with leading zero limb
mpi_cmp_mpi:"0000000000000000123":"-0000000000000000123":1
MPI compare #69 positive with leading zero limb < large positive
mpi_cmp_mpi:"0000000000000000123":"1230000000000000000":-1
MPI compare #70 positive with leading zero limb > large negative
mpi_cmp_mpi:"0000000000000000123":"-1230000000000000000":1
MPI compare #71 negative with leading zero limb < 0 (null)
mpi_cmp_mpi:"-0000000000000000123":"":-1
MPI compare #72 negative with leading zero limb < 0 (1 limb)
mpi_cmp_mpi:"-0000000000000000123":"0":-1
MPI compare #73 negative with leading zero limb < negative 0 (null)
mpi_cmp_mpi:"-0000000000000000123":"-":-1
MPI compare #74 negative with leading zero limb < negative with leading zero limb
mpi_cmp_mpi:"-0000000000000000123":"-0":-1
MPI compare #75 negative with leading zero limb < positive
mpi_cmp_mpi:"-0000000000000000123":"7b":-1
MPI compare #76 negative with leading zero limb < negative
mpi_cmp_mpi:"-0000000000000000123":"-7b":-1
MPI compare #77 negative with leading zero limb < positive with leading zero limb
mpi_cmp_mpi:"-0000000000000000123":"0000000000000000123":-1
MPI compare #78 negative with leading zero limb == negative with leading zero limb
mpi_cmp_mpi:"-0000000000000000123":"-0000000000000000123":0
MPI compare #79 negative with leading zero limb < large positive
mpi_cmp_mpi:"-0000000000000000123":"1230000000000000000":-1
MPI compare #80 negative with leading zero limb > large negative
mpi_cmp_mpi:"-0000000000000000123":"-1230000000000000000":1
MPI compare #81 large positive > 0 (null)
mpi_cmp_mpi:"1230000000000000000":"":1
MPI compare #82 large positive > 0 (1 limb)
mpi_cmp_mpi:"1230000000000000000":"0":1
MPI compare #83 large positive > negative 0 (null)
mpi_cmp_mpi:"1230000000000000000":"-":1
MPI compare #84 large positive > negative with leading zero limb
mpi_cmp_mpi:"1230000000000000000":"-0":1
MPI compare #85 large positive > positive
mpi_cmp_mpi:"1230000000000000000":"7b":1
MPI compare #86 large positive > negative
mpi_cmp_mpi:"1230000000000000000":"-7b":1
MPI compare #87 large positive > positive with leading zero limb
mpi_cmp_mpi:"1230000000000000000":"0000000000000000123":1
MPI compare #88 large positive > negative with leading zero limb
mpi_cmp_mpi:"1230000000000000000":"-0000000000000000123":1
MPI compare #89 large positive == large positive
mpi_cmp_mpi:"1230000000000000000":"1230000000000000000":0
MPI compare #90 large positive > large negative
mpi_cmp_mpi:"1230000000000000000":"-1230000000000000000":1
MPI compare #91 large negative < 0 (null)
mpi_cmp_mpi:"-1230000000000000000":"":-1
MPI compare #92 large negative < 0 (1 limb)
mpi_cmp_mpi:"-1230000000000000000":"0":-1
MPI compare #93 large negative < negative 0 (null)
mpi_cmp_mpi:"-1230000000000000000":"-":-1
MPI compare #94 large negative < negative with leading zero limb
mpi_cmp_mpi:"-1230000000000000000":"-0":-1
MPI compare #95 large negative < positive
mpi_cmp_mpi:"-1230000000000000000":"7b":-1
MPI compare #96 large negative < negative
mpi_cmp_mpi:"-1230000000000000000":"-7b":-1
MPI compare #97 large negative < positive with leading zero limb
mpi_cmp_mpi:"-1230000000000000000":"0000000000000000123":-1
MPI compare #98 large negative < negative with leading zero limb
mpi_cmp_mpi:"-1230000000000000000":"-0000000000000000123":-1
MPI compare #99 large negative < large positive
mpi_cmp_mpi:"-1230000000000000000":"1230000000000000000":-1
MPI compare #100 large negative == large negative
mpi_cmp_mpi:"-1230000000000000000":"-1230000000000000000":0
MPI compare #101 negative > negative
mpi_cmp_mpi:"-2":"-3":1
MPI compare #102 negative == negative
mpi_cmp_mpi:"-2":"-2":0
MPI compare #103 positive < positive
mpi_cmp_mpi:"2b4":"2b5":-1
MPI compare #104 positive < positive
mpi_cmp_mpi:"2b5":"2b6":-1
MPI compare (abs) #1 0 (null) == 0 (null)
mpi_cmp_abs:"":"":0
MPI compare (abs) #2 0 (null) == 0 (1 limb)
mpi_cmp_abs:"":"0":0
MPI compare (abs) #3 0 (null) == 0 (null)
mpi_cmp_abs:"":"":0
MPI compare (abs) #4 0 (null) == 0 (1 limb)
mpi_cmp_abs:"":"0":0
MPI compare (abs) #5 0 (null) < positive
mpi_cmp_abs:"":"7b":-1
MPI compare (abs) #6 0 (null) < positive
mpi_cmp_abs:"":"7b":-1
MPI compare (abs) #7 0 (null) < positive with leading zero limb
mpi_cmp_abs:"":"0000000000000000123":-1
MPI compare (abs) #8 0 (null) < positive with leading zero limb
mpi_cmp_abs:"":"0000000000000000123":-1
MPI compare (abs) #9 0 (null) < large positive
mpi_cmp_abs:"":"1230000000000000000":-1
MPI compare (abs) #10 0 (null) < large positive
mpi_cmp_abs:"":"1230000000000000000":-1
MPI compare (abs) #11 0 (1 limb) == 0 (null)
mpi_cmp_abs:"0":"":0
MPI compare (abs) #12 0 (1 limb) == 0 (1 limb)
mpi_cmp_abs:"0":"0":0
MPI compare (abs) #13 0 (1 limb) == 0 (null)
mpi_cmp_abs:"0":"":0
MPI compare (abs) #14 0 (1 limb) == 0 (1 limb)
mpi_cmp_abs:"0":"0":0
MPI compare (abs) #15 0 (1 limb) < positive
mpi_cmp_abs:"0":"7b":-1
MPI compare (abs) #16 0 (1 limb) < positive
mpi_cmp_abs:"0":"7b":-1
MPI compare (abs) #17 0 (1 limb) < positive with leading zero limb
mpi_cmp_abs:"0":"0000000000000000123":-1
MPI compare (abs) #18 0 (1 limb) < positive with leading zero limb
mpi_cmp_abs:"0":"0000000000000000123":-1
MPI compare (abs) #19 0 (1 limb) < large positive
mpi_cmp_abs:"0":"1230000000000000000":-1
MPI compare (abs) #20 0 (1 limb) < large positive
mpi_cmp_abs:"0":"1230000000000000000":-1
MPI compare (abs) #21 0 (null) == 0 (null)
mpi_cmp_abs:"":"":0
MPI compare (abs) #22 0 (null) == 0 (1 limb)
mpi_cmp_abs:"":"0":0
MPI compare (abs) #23 0 (null) == 0 (null)
mpi_cmp_abs:"":"":0
MPI compare (abs) #24 0 (null) == 0 (1 limb)
mpi_cmp_abs:"":"0":0
MPI compare (abs) #25 0 (null) < positive
mpi_cmp_abs:"":"7b":-1
MPI compare (abs) #26 0 (null) < positive
mpi_cmp_abs:"":"7b":-1
MPI compare (abs) #27 0 (null) < positive with leading zero limb
mpi_cmp_abs:"":"0000000000000000123":-1
MPI compare (abs) #28 0 (null) < positive with leading zero limb
mpi_cmp_abs:"":"0000000000000000123":-1
MPI compare (abs) #29 0 (null) < large positive
mpi_cmp_abs:"":"1230000000000000000":-1
MPI compare (abs) #30 0 (null) < large positive
mpi_cmp_abs:"":"1230000000000000000":-1
MPI compare (abs) #31 0 (1 limb) == 0 (null)
mpi_cmp_abs:"0":"":0
MPI compare (abs) #32 0 (1 limb) == 0 (1 limb)
mpi_cmp_abs:"0":"0":0
MPI compare (abs) #33 0 (1 limb) == 0 (null)
mpi_cmp_abs:"0":"":0
MPI compare (abs) #34 0 (1 limb) == 0 (1 limb)
mpi_cmp_abs:"0":"0":0
MPI compare (abs) #35 0 (1 limb) < positive
mpi_cmp_abs:"0":"7b":-1
MPI compare (abs) #36 0 (1 limb) < positive
mpi_cmp_abs:"0":"7b":-1
MPI compare (abs) #37 0 (1 limb) < positive with leading zero limb
mpi_cmp_abs:"0":"0000000000000000123":-1
MPI compare (abs) #38 0 (1 limb) < positive with leading zero limb
mpi_cmp_abs:"0":"0000000000000000123":-1
MPI compare (abs) #39 0 (1 limb) < large positive
mpi_cmp_abs:"0":"1230000000000000000":-1
MPI compare (abs) #40 0 (1 limb) < large positive
mpi_cmp_abs:"0":"1230000000000000000":-1
MPI compare (abs) #41 positive > 0 (null)
mpi_cmp_abs:"7b":"":1
MPI compare (abs) #42 positive > 0 (1 limb)
mpi_cmp_abs:"7b":"0":1
MPI compare (abs) #43 positive > 0 (null)
mpi_cmp_abs:"7b":"":1
MPI compare (abs) #44 positive > 0 (1 limb)
mpi_cmp_abs:"7b":"0":1
MPI compare (abs) #45 positive == positive
mpi_cmp_abs:"7b":"7b":0
MPI compare (abs) #46 positive == positive
mpi_cmp_abs:"7b":"7b":0
MPI compare (abs) #47 positive < positive with leading zero limb
mpi_cmp_abs:"7b":"0000000000000000123":-1
MPI compare (abs) #48 positive < positive with leading zero limb
mpi_cmp_abs:"7b":"0000000000000000123":-1
MPI compare (abs) #49 positive < large positive
mpi_cmp_abs:"7b":"1230000000000000000":-1
MPI compare (abs) #50 positive < large positive
mpi_cmp_abs:"7b":"1230000000000000000":-1
MPI compare (abs) #51 positive > 0 (null)
mpi_cmp_abs:"7b":"":1
MPI compare (abs) #52 positive > 0 (1 limb)
mpi_cmp_abs:"7b":"0":1
MPI compare (abs) #53 positive > 0 (null)
mpi_cmp_abs:"7b":"":1
MPI compare (abs) #54 positive > 0 (1 limb)
mpi_cmp_abs:"7b":"0":1
MPI compare (abs) #55 positive == positive
mpi_cmp_abs:"7b":"7b":0
MPI compare (abs) #56 positive == positive
mpi_cmp_abs:"7b":"7b":0
MPI compare (abs) #57 positive < positive with leading zero limb
mpi_cmp_abs:"7b":"0000000000000000123":-1
MPI compare (abs) #58 positive < positive with leading zero limb
mpi_cmp_abs:"7b":"0000000000000000123":-1
MPI compare (abs) #59 positive < large positive
mpi_cmp_abs:"7b":"1230000000000000000":-1
MPI compare (abs) #60 positive < large positive
mpi_cmp_abs:"7b":"1230000000000000000":-1
MPI compare (abs) #61 positive with leading zero limb > 0 (null)
mpi_cmp_abs:"0000000000000000123":"":1
MPI compare (abs) #62 positive with leading zero limb > 0 (1 limb)
mpi_cmp_abs:"0000000000000000123":"0":1
MPI compare (abs) #63 positive with leading zero limb > 0 (null)
mpi_cmp_abs:"0000000000000000123":"":1
MPI compare (abs) #64 positive with leading zero limb > 0 (1 limb)
mpi_cmp_abs:"0000000000000000123":"0":1
MPI compare (abs) #65 positive with leading zero limb > positive
mpi_cmp_abs:"0000000000000000123":"7b":1
MPI compare (abs) #66 positive with leading zero limb > positive
mpi_cmp_abs:"0000000000000000123":"7b":1
MPI compare (abs) #67 positive with leading zero limb == positive with leading zero limb
mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0
MPI compare (abs) #68 positive with leading zero limb == positive with leading zero limb
mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0
MPI compare (abs) #69 positive with leading zero limb < large positive
mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1
MPI compare (abs) #70 positive with leading zero limb < large positive
mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1
MPI compare (abs) #71 positive with leading zero limb > 0 (null)
mpi_cmp_abs:"0000000000000000123":"":1
MPI compare (abs) #72 positive with leading zero limb > 0 (1 limb)
mpi_cmp_abs:"0000000000000000123":"0":1
MPI compare (abs) #73 positive with leading zero limb > 0 (null)
mpi_cmp_abs:"0000000000000000123":"":1
MPI compare (abs) #74 positive with leading zero limb > 0 (1 limb)
mpi_cmp_abs:"0000000000000000123":"0":1
MPI compare (abs) #75 positive with leading zero limb > positive
mpi_cmp_abs:"0000000000000000123":"7b":1
MPI compare (abs) #76 positive with leading zero limb > positive
mpi_cmp_abs:"0000000000000000123":"7b":1
MPI compare (abs) #77 positive with leading zero limb == positive with leading zero limb
mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0
MPI compare (abs) #78 positive with leading zero limb == positive with leading zero limb
mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0
MPI compare (abs) #79 positive with leading zero limb < large positive
mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1
MPI compare (abs) #80 positive with leading zero limb < large positive
mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1
MPI compare (abs) #81 large positive > 0 (null)
mpi_cmp_abs:"1230000000000000000":"":1
MPI compare (abs) #82 large positive > 0 (1 limb)
mpi_cmp_abs:"1230000000000000000":"0":1
MPI compare (abs) #83 large positive > 0 (null)
mpi_cmp_abs:"1230000000000000000":"":1
MPI compare (abs) #84 large positive > 0 (1 limb)
mpi_cmp_abs:"1230000000000000000":"0":1
MPI compare (abs) #85 large positive > positive
mpi_cmp_abs:"1230000000000000000":"7b":1
MPI compare (abs) #86 large positive > positive
mpi_cmp_abs:"1230000000000000000":"7b":1
MPI compare (abs) #87 large positive > positive with leading zero limb
mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1
MPI compare (abs) #88 large positive > positive with leading zero limb
mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1
MPI compare (abs) #89 large positive == large positive
mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0
MPI compare (abs) #90 large positive == large positive
mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0
MPI compare (abs) #91 large positive > 0 (null)
mpi_cmp_abs:"1230000000000000000":"":1
MPI compare (abs) #92 large positive > 0 (1 limb)
mpi_cmp_abs:"1230000000000000000":"0":1
MPI compare (abs) #93 large positive > 0 (null)
mpi_cmp_abs:"1230000000000000000":"":1
MPI compare (abs) #94 large positive > 0 (1 limb)
mpi_cmp_abs:"1230000000000000000":"0":1
MPI compare (abs) #95 large positive > positive
mpi_cmp_abs:"1230000000000000000":"7b":1
MPI compare (abs) #96 large positive > positive
mpi_cmp_abs:"1230000000000000000":"7b":1
MPI compare (abs) #97 large positive > positive with leading zero limb
mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1
MPI compare (abs) #98 large positive > positive with leading zero limb
mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1
MPI compare (abs) #99 large positive == large positive
mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0
MPI compare (abs) #100 large positive == large positive
mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0
MPI compare (abs) #101 positive < positive
mpi_cmp_abs:"2":"3":-1
MPI compare (abs) #102 positive == positive
mpi_cmp_abs:"2":"2":0
MPI compare (abs) #103 positive < positive
mpi_cmp_abs:"2b4":"2b5":-1
MPI compare (abs) #104 positive < positive
mpi_cmp_abs:"2b5":"2b6":-1
# End of automatically generated file.
+9 -8
View File
@@ -4,6 +4,7 @@
#include "bignum_core.h"
#include "constant_time_internal.h"
#include "test/constant_flow.h"
#include "test/bignum_codepath_check.h"
/** Verifies mbedtls_mpi_core_add().
*
@@ -1233,22 +1234,22 @@ void mpi_core_exp_mod(char *input_N, char *input_A,
/* Test the safe variant */
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_mpi_optionally_safe_codepath_reset();
mbedtls_codepath_reset();
#endif
mbedtls_mpi_core_exp_mod(Y, A, N, N_limbs, E, E_limbs, R2, T);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
TEST_EQUAL(mbedtls_mpi_optionally_safe_codepath, MBEDTLS_MPI_IS_SECRET);
TEST_EQUAL(mbedtls_codepath_check, MBEDTLS_MPI_IS_SECRET);
#endif
TEST_EQUAL(0, memcmp(X, Y, N_limbs * sizeof(mbedtls_mpi_uint)));
/* Test the unsafe variant */
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_mpi_optionally_safe_codepath_reset();
mbedtls_codepath_reset();
#endif
mbedtls_mpi_core_exp_mod_unsafe(Y, A, N, N_limbs, E, E_limbs, R2, T);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
TEST_EQUAL(mbedtls_mpi_optionally_safe_codepath, MBEDTLS_MPI_IS_PUBLIC);
TEST_EQUAL(mbedtls_codepath_check, MBEDTLS_MPI_IS_PUBLIC);
#endif
TEST_EQUAL(0, memcmp(X, Y, N_limbs * sizeof(mbedtls_mpi_uint)));
@@ -1258,21 +1259,21 @@ void mpi_core_exp_mod(char *input_N, char *input_A,
memcpy(A_copy, A, sizeof(*A_copy) * A_limbs);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_mpi_optionally_safe_codepath_reset();
mbedtls_codepath_reset();
#endif
mbedtls_mpi_core_exp_mod(A, A, N, N_limbs, E, E_limbs, R2, T);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
TEST_EQUAL(mbedtls_mpi_optionally_safe_codepath, MBEDTLS_MPI_IS_SECRET);
TEST_EQUAL(mbedtls_codepath_check, MBEDTLS_MPI_IS_SECRET);
#endif
TEST_EQUAL(0, memcmp(X, A, N_limbs * sizeof(mbedtls_mpi_uint)));
memcpy(A, A_copy, sizeof(*A) * A_limbs);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
mbedtls_mpi_optionally_safe_codepath_reset();
mbedtls_codepath_reset();
#endif
mbedtls_mpi_core_exp_mod_unsafe(A, A, N, N_limbs, E, E_limbs, R2, T);
#if defined(MBEDTLS_TEST_HOOKS) && !defined(MBEDTLS_THREADING_C)
TEST_EQUAL(mbedtls_mpi_optionally_safe_codepath, MBEDTLS_MPI_IS_PUBLIC);
TEST_EQUAL(mbedtls_codepath_check, MBEDTLS_MPI_IS_PUBLIC);
#endif
TEST_EQUAL(0, memcmp(X, A, N_limbs * sizeof(mbedtls_mpi_uint)));
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,731 +0,0 @@
# Automatically generated by generate_config_tests.py. Do not edit!
Config: PSA_WANT_ALG_CBC_MAC
depends_on:PSA_WANT_ALG_CBC_MAC
pass:
Config: !PSA_WANT_ALG_CBC_MAC
depends_on:!PSA_WANT_ALG_CBC_MAC
pass:
Config: PSA_WANT_ALG_CBC_NO_PADDING
depends_on:PSA_WANT_ALG_CBC_NO_PADDING
pass:
Config: !PSA_WANT_ALG_CBC_NO_PADDING
depends_on:!PSA_WANT_ALG_CBC_NO_PADDING
pass:
Config: PSA_WANT_ALG_CBC_PKCS7
depends_on:PSA_WANT_ALG_CBC_PKCS7
pass:
Config: !PSA_WANT_ALG_CBC_PKCS7
depends_on:!PSA_WANT_ALG_CBC_PKCS7
pass:
Config: PSA_WANT_ALG_CCM
depends_on:PSA_WANT_ALG_CCM
pass:
Config: !PSA_WANT_ALG_CCM
depends_on:!PSA_WANT_ALG_CCM
pass:
Config: PSA_WANT_ALG_CCM_STAR_NO_TAG
depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG
pass:
Config: !PSA_WANT_ALG_CCM_STAR_NO_TAG
depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG
pass:
Config: PSA_WANT_ALG_CFB
depends_on:PSA_WANT_ALG_CFB
pass:
Config: !PSA_WANT_ALG_CFB
depends_on:!PSA_WANT_ALG_CFB
pass:
Config: PSA_WANT_ALG_CHACHA20_POLY1305
depends_on:PSA_WANT_ALG_CHACHA20_POLY1305
pass:
Config: !PSA_WANT_ALG_CHACHA20_POLY1305
depends_on:!PSA_WANT_ALG_CHACHA20_POLY1305
pass:
Config: PSA_WANT_ALG_CMAC
depends_on:PSA_WANT_ALG_CMAC
pass:
Config: !PSA_WANT_ALG_CMAC
depends_on:!PSA_WANT_ALG_CMAC
pass:
Config: PSA_WANT_ALG_CTR
depends_on:PSA_WANT_ALG_CTR
pass:
Config: !PSA_WANT_ALG_CTR
depends_on:!PSA_WANT_ALG_CTR
pass:
Config: PSA_WANT_ALG_DETERMINISTIC_ECDSA
depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA
pass:
Config: !PSA_WANT_ALG_DETERMINISTIC_ECDSA
depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA
pass:
Config: PSA_WANT_ALG_ECB_NO_PADDING
depends_on:PSA_WANT_ALG_ECB_NO_PADDING
pass:
Config: !PSA_WANT_ALG_ECB_NO_PADDING
depends_on:!PSA_WANT_ALG_ECB_NO_PADDING
pass:
Config: PSA_WANT_ALG_ECDH
depends_on:PSA_WANT_ALG_ECDH
pass:
Config: !PSA_WANT_ALG_ECDH
depends_on:!PSA_WANT_ALG_ECDH
pass:
Config: PSA_WANT_ALG_ECDSA
depends_on:PSA_WANT_ALG_ECDSA
pass:
Config: !PSA_WANT_ALG_ECDSA
depends_on:!PSA_WANT_ALG_ECDSA
pass:
Config: PSA_WANT_ALG_FFDH
depends_on:PSA_WANT_ALG_FFDH
pass:
Config: !PSA_WANT_ALG_FFDH
depends_on:!PSA_WANT_ALG_FFDH
pass:
Config: PSA_WANT_ALG_GCM
depends_on:PSA_WANT_ALG_GCM
pass:
Config: !PSA_WANT_ALG_GCM
depends_on:!PSA_WANT_ALG_GCM
pass:
Config: PSA_WANT_ALG_HKDF
depends_on:PSA_WANT_ALG_HKDF
pass:
Config: !PSA_WANT_ALG_HKDF
depends_on:!PSA_WANT_ALG_HKDF
pass:
Config: PSA_WANT_ALG_HKDF_EXPAND
depends_on:PSA_WANT_ALG_HKDF_EXPAND
pass:
Config: !PSA_WANT_ALG_HKDF_EXPAND
depends_on:!PSA_WANT_ALG_HKDF_EXPAND
pass:
Config: PSA_WANT_ALG_HKDF_EXTRACT
depends_on:PSA_WANT_ALG_HKDF_EXTRACT
pass:
Config: !PSA_WANT_ALG_HKDF_EXTRACT
depends_on:!PSA_WANT_ALG_HKDF_EXTRACT
pass:
Config: PSA_WANT_ALG_HMAC
depends_on:PSA_WANT_ALG_HMAC
pass:
Config: !PSA_WANT_ALG_HMAC
depends_on:!PSA_WANT_ALG_HMAC
pass:
Config: PSA_WANT_ALG_JPAKE
depends_on:PSA_WANT_ALG_JPAKE
pass:
Config: !PSA_WANT_ALG_JPAKE
depends_on:!PSA_WANT_ALG_JPAKE
pass:
Config: PSA_WANT_ALG_MD5
depends_on:PSA_WANT_ALG_MD5
pass:
Config: !PSA_WANT_ALG_MD5
depends_on:!PSA_WANT_ALG_MD5
pass:
Config: PSA_WANT_ALG_OFB
depends_on:PSA_WANT_ALG_OFB
pass:
Config: !PSA_WANT_ALG_OFB
depends_on:!PSA_WANT_ALG_OFB
pass:
Config: PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
pass:
Config: !PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
depends_on:!PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
pass:
Config: PSA_WANT_ALG_PBKDF2_HMAC
depends_on:PSA_WANT_ALG_PBKDF2_HMAC
pass:
Config: !PSA_WANT_ALG_PBKDF2_HMAC
depends_on:!PSA_WANT_ALG_PBKDF2_HMAC
pass:
Config: PSA_WANT_ALG_RIPEMD160
depends_on:PSA_WANT_ALG_RIPEMD160
pass:
Config: !PSA_WANT_ALG_RIPEMD160
depends_on:!PSA_WANT_ALG_RIPEMD160
pass:
Config: PSA_WANT_ALG_RSA_OAEP
depends_on:PSA_WANT_ALG_RSA_OAEP
pass:
Config: !PSA_WANT_ALG_RSA_OAEP
depends_on:!PSA_WANT_ALG_RSA_OAEP
pass:
Config: PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
pass:
Config: !PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
pass:
Config: PSA_WANT_ALG_RSA_PKCS1V15_SIGN
depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN
pass:
Config: !PSA_WANT_ALG_RSA_PKCS1V15_SIGN
depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN
pass:
Config: PSA_WANT_ALG_RSA_PSS
depends_on:PSA_WANT_ALG_RSA_PSS
pass:
Config: !PSA_WANT_ALG_RSA_PSS
depends_on:!PSA_WANT_ALG_RSA_PSS
pass:
Config: PSA_WANT_ALG_SHA3_224
depends_on:PSA_WANT_ALG_SHA3_224
pass:
Config: !PSA_WANT_ALG_SHA3_224
depends_on:!PSA_WANT_ALG_SHA3_224
pass:
Config: PSA_WANT_ALG_SHA3_256
depends_on:PSA_WANT_ALG_SHA3_256
pass:
Config: !PSA_WANT_ALG_SHA3_256
depends_on:!PSA_WANT_ALG_SHA3_256
pass:
Config: PSA_WANT_ALG_SHA3_384
depends_on:PSA_WANT_ALG_SHA3_384
pass:
Config: !PSA_WANT_ALG_SHA3_384
depends_on:!PSA_WANT_ALG_SHA3_384
pass:
Config: PSA_WANT_ALG_SHA3_512
depends_on:PSA_WANT_ALG_SHA3_512
pass:
Config: !PSA_WANT_ALG_SHA3_512
depends_on:!PSA_WANT_ALG_SHA3_512
pass:
Config: PSA_WANT_ALG_SHA_1
depends_on:PSA_WANT_ALG_SHA_1
pass:
Config: !PSA_WANT_ALG_SHA_1
depends_on:!PSA_WANT_ALG_SHA_1
pass:
Config: PSA_WANT_ALG_SHA_224
depends_on:PSA_WANT_ALG_SHA_224
pass:
Config: !PSA_WANT_ALG_SHA_224
depends_on:!PSA_WANT_ALG_SHA_224
pass:
Config: PSA_WANT_ALG_SHA_256
depends_on:PSA_WANT_ALG_SHA_256
pass:
Config: !PSA_WANT_ALG_SHA_256
depends_on:!PSA_WANT_ALG_SHA_256
pass:
Config: PSA_WANT_ALG_SHA_384
depends_on:PSA_WANT_ALG_SHA_384
pass:
Config: !PSA_WANT_ALG_SHA_384
depends_on:!PSA_WANT_ALG_SHA_384
pass:
Config: PSA_WANT_ALG_SHA_512
depends_on:PSA_WANT_ALG_SHA_512
pass:
Config: !PSA_WANT_ALG_SHA_512
depends_on:!PSA_WANT_ALG_SHA_512
pass:
Config: PSA_WANT_ALG_STREAM_CIPHER
depends_on:PSA_WANT_ALG_STREAM_CIPHER
pass:
Config: !PSA_WANT_ALG_STREAM_CIPHER
depends_on:!PSA_WANT_ALG_STREAM_CIPHER
pass:
Config: PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
pass:
Config: !PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
depends_on:!PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
pass:
Config: PSA_WANT_ALG_TLS12_PRF
depends_on:PSA_WANT_ALG_TLS12_PRF
pass:
Config: !PSA_WANT_ALG_TLS12_PRF
depends_on:!PSA_WANT_ALG_TLS12_PRF
pass:
Config: PSA_WANT_ALG_TLS12_PSK_TO_MS
depends_on:PSA_WANT_ALG_TLS12_PSK_TO_MS
pass:
Config: !PSA_WANT_ALG_TLS12_PSK_TO_MS
depends_on:!PSA_WANT_ALG_TLS12_PSK_TO_MS
pass:
Config: PSA_WANT_ALG_XTS
depends_on:PSA_WANT_ALG_XTS
pass:
Config: !PSA_WANT_ALG_XTS
depends_on:!PSA_WANT_ALG_XTS
pass:
Config: PSA_WANT_DH_RFC7919_2048
depends_on:PSA_WANT_DH_RFC7919_2048
pass:
Config: !PSA_WANT_DH_RFC7919_2048
depends_on:!PSA_WANT_DH_RFC7919_2048
pass:
Config: PSA_WANT_DH_RFC7919_3072
depends_on:PSA_WANT_DH_RFC7919_3072
pass:
Config: !PSA_WANT_DH_RFC7919_3072
depends_on:!PSA_WANT_DH_RFC7919_3072
pass:
Config: PSA_WANT_DH_RFC7919_4096
depends_on:PSA_WANT_DH_RFC7919_4096
pass:
Config: !PSA_WANT_DH_RFC7919_4096
depends_on:!PSA_WANT_DH_RFC7919_4096
pass:
Config: PSA_WANT_DH_RFC7919_6144
depends_on:PSA_WANT_DH_RFC7919_6144
pass:
Config: !PSA_WANT_DH_RFC7919_6144
depends_on:!PSA_WANT_DH_RFC7919_6144
pass:
Config: PSA_WANT_DH_RFC7919_8192
depends_on:PSA_WANT_DH_RFC7919_8192
pass:
Config: !PSA_WANT_DH_RFC7919_8192
depends_on:!PSA_WANT_DH_RFC7919_8192
pass:
Config: PSA_WANT_ECC_BRAINPOOL_P_R1_256
depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256
pass:
Config: !PSA_WANT_ECC_BRAINPOOL_P_R1_256
depends_on:!PSA_WANT_ECC_BRAINPOOL_P_R1_256
pass:
Config: PSA_WANT_ECC_BRAINPOOL_P_R1_384
depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384
pass:
Config: !PSA_WANT_ECC_BRAINPOOL_P_R1_384
depends_on:!PSA_WANT_ECC_BRAINPOOL_P_R1_384
pass:
Config: PSA_WANT_ECC_BRAINPOOL_P_R1_512
depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512
pass:
Config: !PSA_WANT_ECC_BRAINPOOL_P_R1_512
depends_on:!PSA_WANT_ECC_BRAINPOOL_P_R1_512
pass:
Config: PSA_WANT_ECC_MONTGOMERY_255
depends_on:PSA_WANT_ECC_MONTGOMERY_255
pass:
Config: !PSA_WANT_ECC_MONTGOMERY_255
depends_on:!PSA_WANT_ECC_MONTGOMERY_255
pass:
Config: PSA_WANT_ECC_MONTGOMERY_448
depends_on:PSA_WANT_ECC_MONTGOMERY_448
pass:
Config: !PSA_WANT_ECC_MONTGOMERY_448
depends_on:!PSA_WANT_ECC_MONTGOMERY_448
pass:
Config: PSA_WANT_ECC_SECP_K1_192
depends_on:PSA_WANT_ECC_SECP_K1_192
pass:
Config: !PSA_WANT_ECC_SECP_K1_192
depends_on:!PSA_WANT_ECC_SECP_K1_192
pass:
Config: PSA_WANT_ECC_SECP_K1_224
depends_on:PSA_WANT_ECC_SECP_K1_224
pass:
Config: !PSA_WANT_ECC_SECP_K1_224
depends_on:!PSA_WANT_ECC_SECP_K1_224
pass:
Config: PSA_WANT_ECC_SECP_K1_256
depends_on:PSA_WANT_ECC_SECP_K1_256
pass:
Config: !PSA_WANT_ECC_SECP_K1_256
depends_on:!PSA_WANT_ECC_SECP_K1_256
pass:
Config: PSA_WANT_ECC_SECP_R1_192
depends_on:PSA_WANT_ECC_SECP_R1_192
pass:
Config: !PSA_WANT_ECC_SECP_R1_192
depends_on:!PSA_WANT_ECC_SECP_R1_192
pass:
Config: PSA_WANT_ECC_SECP_R1_224
depends_on:PSA_WANT_ECC_SECP_R1_224
pass:
Config: !PSA_WANT_ECC_SECP_R1_224
depends_on:!PSA_WANT_ECC_SECP_R1_224
pass:
Config: PSA_WANT_ECC_SECP_R1_256
depends_on:PSA_WANT_ECC_SECP_R1_256
pass:
Config: !PSA_WANT_ECC_SECP_R1_256
depends_on:!PSA_WANT_ECC_SECP_R1_256
pass:
Config: PSA_WANT_ECC_SECP_R1_384
depends_on:PSA_WANT_ECC_SECP_R1_384
pass:
Config: !PSA_WANT_ECC_SECP_R1_384
depends_on:!PSA_WANT_ECC_SECP_R1_384
pass:
Config: PSA_WANT_ECC_SECP_R1_521
depends_on:PSA_WANT_ECC_SECP_R1_521
pass:
Config: !PSA_WANT_ECC_SECP_R1_521
depends_on:!PSA_WANT_ECC_SECP_R1_521
pass:
Config: PSA_WANT_KEY_TYPE_AES
depends_on:PSA_WANT_KEY_TYPE_AES
pass:
Config: !PSA_WANT_KEY_TYPE_AES
depends_on:!PSA_WANT_KEY_TYPE_AES
pass:
Config: PSA_WANT_KEY_TYPE_ARIA
depends_on:PSA_WANT_KEY_TYPE_ARIA
pass:
Config: !PSA_WANT_KEY_TYPE_ARIA
depends_on:!PSA_WANT_KEY_TYPE_ARIA
pass:
Config: PSA_WANT_KEY_TYPE_CAMELLIA
depends_on:PSA_WANT_KEY_TYPE_CAMELLIA
pass:
Config: !PSA_WANT_KEY_TYPE_CAMELLIA
depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA
pass:
Config: PSA_WANT_KEY_TYPE_CHACHA20
depends_on:PSA_WANT_KEY_TYPE_CHACHA20
pass:
Config: !PSA_WANT_KEY_TYPE_CHACHA20
depends_on:!PSA_WANT_KEY_TYPE_CHACHA20
pass:
Config: PSA_WANT_KEY_TYPE_DERIVE
depends_on:PSA_WANT_KEY_TYPE_DERIVE
pass:
Config: !PSA_WANT_KEY_TYPE_DERIVE
depends_on:!PSA_WANT_KEY_TYPE_DERIVE
pass:
Config: PSA_WANT_KEY_TYPE_DES
depends_on:PSA_WANT_KEY_TYPE_DES
pass:
Config: !PSA_WANT_KEY_TYPE_DES
depends_on:!PSA_WANT_KEY_TYPE_DES
pass:
Config: PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
depends_on:!PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE
depends_on:!PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT
depends_on:!PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE
depends_on:!PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT
depends_on:!PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY
depends_on:PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY
pass:
Config: !PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY
depends_on:!PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY
pass:
Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
pass:
Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE
depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT
depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE
depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
pass:
Config: !PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
pass:
Config: PSA_WANT_KEY_TYPE_HMAC
depends_on:PSA_WANT_KEY_TYPE_HMAC
pass:
Config: !PSA_WANT_KEY_TYPE_HMAC
depends_on:!PSA_WANT_KEY_TYPE_HMAC
pass:
Config: PSA_WANT_KEY_TYPE_PASSWORD
depends_on:PSA_WANT_KEY_TYPE_PASSWORD
pass:
Config: !PSA_WANT_KEY_TYPE_PASSWORD
depends_on:!PSA_WANT_KEY_TYPE_PASSWORD
pass:
Config: PSA_WANT_KEY_TYPE_PASSWORD_HASH
depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH
pass:
Config: !PSA_WANT_KEY_TYPE_PASSWORD_HASH
depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH
pass:
Config: PSA_WANT_KEY_TYPE_RAW_DATA
depends_on:PSA_WANT_KEY_TYPE_RAW_DATA
pass:
Config: !PSA_WANT_KEY_TYPE_RAW_DATA
depends_on:!PSA_WANT_KEY_TYPE_RAW_DATA
pass:
Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR
pass:
Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE
depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT
depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE
depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT
depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
pass:
Config: PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
pass:
Config: !PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
depends_on:!PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
pass:
# End of automatically generated file.
-919
View File
@@ -1,919 +0,0 @@
# Automatically generated by generate_ecp_tests.py. Do not edit!
ecp_mod_p192k1_raw #1 - 0 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000"
ecp_mod_p192k1_raw #2 - 1 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001"
ecp_mod_p192k1_raw #3 - fffffffffffffffffffffffffffffffffffffffeffffee36 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffeffffee36":"fffffffffffffffffffffffffffffffffffffffeffffee36"
ecp_mod_p192k1_raw #4 - fffffffffffffffffffffffffffffffffffffffeffffee38 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffeffffee38":"000000000000000000000000000000000000000000000001"
ecp_mod_p192k1_raw #5 - ffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000001000011c8"
ecp_mod_p192k1_raw #6 - fffffffffffffffffffffffffffffffffffffffdffffdc6c0000000000000000000000000000000100002394013c7364 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"fffffffffffffffffffffffffffffffffffffffdffffdc6c0000000000000000000000000000000100002394013c7364":"000000000000000000000000000000000000000000000001"
ecp_mod_p192k1_raw #7 - 7ffff71b809e27dd832cfd5e04d9d2dbb9f8da2170000000000000000000000000000000000000000520834f0 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"00000007ffff71b809e27dd832cfd5e04d9d2dbb9f8da2170000000000000000000000000000000000000000520834f0":"000000000000000000000000000000000000000800008e47"
ecp_mod_p192k1_raw #8 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0821179918d48f1e85b1492d55d4a563a6d095ee961b20b3"
ecp_mod_p192k1_raw #9 - ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f":"171d13cd6784900a8bf38ddb90d54ce128c6135d299cfa4d"
ecp_mod_p192k1_raw #10 - ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93":"b32163aabbaeffedbe5b9033800d5a295a64578924db3df1"
ecp_mod_p192k1_raw #11 - e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2":"2cfde069f0823ce5103efcbd4b4225a1cb82d26864547e18"
ecp_mod_p192k1_raw #12 - 2d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"2d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f":"cb5f52a861d7ec7e0ddde31a239d20350769c963fd9a6529"
ecp_mod_p192k1_raw #13 - fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c9135 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c9135":"95e0a09c00e783ce5d82102f8e77731536bc8b2b6151ee84"
ecp_mod_p192k1_raw #14 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2":"74718861d1d54568a207dfec1f743c273f137beac1cd43a6"
ecp_mod_p192k1_raw #15 - bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"f6524cb1719c5d8f31037903ea9cc2441277b34f08474b89"
ecp_mod_p192k1_raw #16 - 47733e847d718d733ff98ff387c56473a7a83ee0761ebfd2 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"00000000000000000000000000000000000000000000000047733e847d718d733ff98ff387c56473a7a83ee0761ebfd2":"47733e847d718d733ff98ff387c56473a7a83ee0761ebfd2"
ecp_mod_p192k1_raw #17 - cbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb63 mod fffffffffffffffffffffffffffffffffffffffeffffee37
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192K1:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000cbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb63":"cbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb63"
ecp_mod_p192_raw #1 - 0 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000"
ecp_mod_p192_raw #2 - 1 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001"
ecp_mod_p192_raw #3 - fffffffffffffffffffffffffffffffefffffffffffffffe mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffefffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffe"
ecp_mod_p192_raw #4 - ffffffffffffffffffffffffffffffff0000000000000000 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000":"000000000000000000000000000000000000000000000001"
ecp_mod_p192_raw #5 - ffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000010000000000000000"
ecp_mod_p192_raw #6 - fffffffffffffffffffffffffffffffdfffffffffffffffc000000000000000100000000000000040000000000000004 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffdfffffffffffffffc000000000000000100000000000000040000000000000004":"000000000000000000000000000000000000000000000001"
ecp_mod_p192_raw #7 - 1ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"00000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"000000000000000200000000000000010000000000000000"
ecp_mod_p192_raw #8 - ffffffffffffffff00000000000000010000000000000000fffffffffffffffeffffffffffffffff0000000000000000 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"ffffffffffffffff00000000000000010000000000000000fffffffffffffffeffffffffffffffff0000000000000000":"000000000000000000000000000000020000000000000001"
ecp_mod_p192_raw #9 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"11d34d17a0c5ef3d302b26449aaac6f7087b21d0c6e15cc9"
ecp_mod_p192_raw #10 - ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f":"e4a7b1885874b900f7e16077a78ef49ce3a85a926f5696e2"
ecp_mod_p192_raw #11 - ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93":"2b031a18377216979ed9ab58e1c5c3bf154fe728f83c0c0d"
ecp_mod_p192_raw #12 - e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2":"b5ebd2ded1bc8cfb1ad56935143c43e8c619d7d3ca6f854b"
ecp_mod_p192_raw #13 - 2d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"2d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f":"926235fec925e1797804d3e4b6581175c71bc373f6e1d417"
ecp_mod_p192_raw #14 - fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c9135 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c9135":"ea2dabcc5dd606da94378396fde052bdaeb89212817396b1"
ecp_mod_p192_raw #15 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2":"7bace2fe497b1d2b47e86aab41885802f295febe970486d0"
ecp_mod_p192_raw #16 - bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"958f9e1b6e59ae10f3cd72d09c7f37d20e2f54ca3ae94f5a"
ecp_mod_p192_raw #17 - 47733e847d718d733ff98ff387c56473a7a83ee0761ebfd2 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"00000000000000000000000000000000000000000000000047733e847d718d733ff98ff387c56473a7a83ee0761ebfd2":"47733e847d718d733ff98ff387c56473a7a83ee0761ebfd2"
ecp_mod_p192_raw #18 - cbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb63 mod fffffffffffffffffffffffffffffffeffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP192R1:"fffffffffffffffffffffffffffffffeffffffffffffffff":"000000000000000000000000000000000000000000000000cbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb63":"cbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb63"
ecp_mod_p224k1_raw #1 - 0 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000000"
ecp_mod_p224k1_raw #2 - 0 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p224k1_raw #3 - 1 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"00000000000000000000000000000000000000000000000000000001"
ecp_mod_p224k1_raw #4 - 1 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p224k1_raw #5 - fffffffffffffffffffffffffffffffffffffffffffffffeffffe56c mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56c":"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56c"
ecp_mod_p224k1_raw #6 - fffffffffffffffffffffffffffffffffffffffffffffffeffffe56c mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56c":"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56c"
ecp_mod_p224k1_raw #7 - fffffffffffffffffffffffffffffffffffffffffffffffeffffe56e mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56e":"00000000000000000000000000000000000000000000000000000001"
ecp_mod_p224k1_raw #8 - fffffffffffffffffffffffffffffffffffffffffffffffeffffe56e mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56e":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p224k1_raw #9 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000100001a92"
ecp_mod_p224k1_raw #10 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000100001a92"
ecp_mod_p224k1_raw #11 - fffffffffffffffffffffffffffffffffffffffffffffffdffffcad800000000000000000000000000000000000000010000352802c26590 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"fffffffffffffffffffffffffffffffffffffffffffffffdffffcad800000000000000000000000000000000000000010000352802c26590":"00000000000000000000000000000000000000000000000000000001"
ecp_mod_p224k1_raw #12 - fffffffffffffffffffffffffffffffffffffffffffffffdffffcad800000000000000000000000000000000000000010000352802c26590 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffdffffcad800000000000000000000000000000000000000010000352802c26590":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p224k1_raw #13 - 7ffff2b68161180fd8cd92e1a109be158a19a99b1809db80320000000000000000000000000000000000000000000000000bf04f49 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000007ffff2b68161180fd8cd92e1a109be158a19a99b1809db80320000000000000000000000000000000000000000000000000bf04f49":"000000000000000000000000000000000000000000000080000d497f"
ecp_mod_p224k1_raw #14 - 7ffff2b68161180fd8cd92e1a109be158a19a99b1809db80320000000000000000000000000000000000000000000000000bf04f49 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000007ffff2b68161180fd8cd92e1a109be158a19a99b1809db80320000000000000000000000000000000000000000000000000bf04f49":"00000000000000000000000000000000000000000000000000000080000d497f"
ecp_mod_p224k1_raw #15 - da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"63d21f711392336f294cc013d26cbe740f2368e0fa14295edfe247e3"
ecp_mod_p224k1_raw #16 - da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000063d21f711392336f294cc013d26cbe740f2368e0fa14295edfe247e3"
ecp_mod_p224k1_raw #17 - cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8":"56840037df03e4e68ed85df40eb84f0cd9ef4a553712178532a54724"
ecp_mod_p224k1_raw #18 - cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8":"0000000056840037df03e4e68ed85df40eb84f0cd9ef4a553712178532a54724"
ecp_mod_p224k1_raw #19 - defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da":"37a7815aaa9c51982260fa8eda562d9800e3a81b02921c35042c0880"
ecp_mod_p224k1_raw #20 - defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da":"0000000037a7815aaa9c51982260fa8eda562d9800e3a81b02921c35042c0880"
ecp_mod_p224k1_raw #21 - 2d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"2d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045":"0a66fcba3968b3bfdbe4cab383139d0ba5df05f1cf09225df471772c"
ecp_mod_p224k1_raw #22 - 2d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000002d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045":"000000000a66fcba3968b3bfdbe4cab383139d0ba5df05f1cf09225df471772c"
ecp_mod_p224k1_raw #23 - 8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578":"beb929772c37d8c047821b7094aa8a8a83c147ee5a7e7de5d70b1eb1"
ecp_mod_p224k1_raw #24 - 8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000008f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578":"00000000beb929772c37d8c047821b7094aa8a8a83c147ee5a7e7de5d70b1eb1"
ecp_mod_p224k1_raw #25 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a":"01a34df36e9f5a0597063463439baecb2d2f79f2abab9e61bbc34b4a"
ecp_mod_p224k1_raw #26 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000097eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a":"0000000001a34df36e9f5a0597063463439baecb2d2f79f2abab9e61bbc34b4a"
ecp_mod_p224k1_raw #27 - a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"fb610c682255b71c4e6b0fe96e2cf085019ee18b76210be52153f632"
ecp_mod_p224k1_raw #28 - a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0000000000000000a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"00000000fb610c682255b71c4e6b0fe96e2cf085019ee18b76210be52153f632"
ecp_mod_p224k1_raw #29 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473":"a1aad43a31cf9b44b9d22b34d25ae509fb0b0c4214c12a5aff08dd4c"
ecp_mod_p224k1_raw #30 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000074667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473":"00000000a1aad43a31cf9b44b9d22b34d25ae509fb0b0c4214c12a5aff08dd4c"
ecp_mod_p224k1_raw #31 - eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a"
ecp_mod_p224k1_raw #32 - eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000000000000000000000000000000000000000000000000000000000000eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"00000000eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a"
ecp_mod_p224k1_raw #33 - f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3":"f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3"
ecp_mod_p224k1_raw #34 - f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3 mod fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224K1:"00000000fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"000000000000000000000000000000000000000000000000000000000000000000000000f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3":"00000000f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3"
ecp_mod_p224_raw #1 - 0 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000000"
ecp_mod_p224_raw #2 - 0 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p224_raw #3 - 1 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"00000000000000000000000000000000000000000000000000000001"
ecp_mod_p224_raw #4 - 1 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p224_raw #5 - ffffffffffffffffffffffffffffffff000000000000000000000000 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000":"ffffffffffffffffffffffffffffffff000000000000000000000000"
ecp_mod_p224_raw #6 - ffffffffffffffffffffffffffffffff000000000000000000000000 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000":"00000000ffffffffffffffffffffffffffffffff000000000000000000000000"
ecp_mod_p224_raw #7 - ffffffffffffffffffffffffffffffff000000000000000000000002 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000002":"00000000000000000000000000000000000000000000000000000001"
ecp_mod_p224_raw #8 - ffffffffffffffffffffffffffffffff000000000000000000000002 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p224_raw #9 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000fffffffffffffffffffffffe"
ecp_mod_p224_raw #10 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000fffffffffffffffffffffffe"
ecp_mod_p224_raw #11 - fffffffffffffffffffffffffffffffe00000000000000000000000000000001000000000000000000000000000000000000000000000000 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"fffffffffffffffffffffffffffffffe00000000000000000000000000000001000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000001"
ecp_mod_p224_raw #12 - fffffffffffffffffffffffffffffffe00000000000000000000000000000001000000000000000000000000000000000000000000000000 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000fffffffffffffffffffffffffffffffe00000000000000000000000000000001000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p224_raw #13 - 10000000070000000002000001000ffffffffffff9fffffffffe00000efff000070000000002000001003 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000010000000070000000002000001000ffffffffffff9fffffffffe00000efff000070000000002000001003":"00010000000010000000000000000000000000000000000000000002"
ecp_mod_p224_raw #14 - 10000000070000000002000001000ffffffffffff9fffffffffe00000efff000070000000002000001003 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000000000000000000000000000000010000000070000000002000001000ffffffffffff9fffffffffe00000efff000070000000002000001003":"0000000000010000000010000000000000000000000000000000000000000002"
ecp_mod_p224_raw #15 - 100000000000000000000000000000000000000000000000000000000000dc0000000000000000001000000010000000100000003 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000100000000000000000000000000000000000000000000000000000000000dc0000000000000000001000000010000000100000003":"ffffffff000dc0010000000000000000000000000000000100000004"
ecp_mod_p224_raw #16 - 100000000000000000000000000000000000000000000000000000000000dc0000000000000000001000000010000000100000003 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000100000000000000000000000000000000000000000000000000000000000dc0000000000000000001000000010000000100000003":"00000000ffffffff000dc0010000000000000000000000000000000100000004"
ecp_mod_p224_raw #17 - da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f78dcf6d71dc9a70c0b8b85448798e84ecc6de4e5b9e06e5c938433e"
ecp_mod_p224_raw #18 - da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00000000f78dcf6d71dc9a70c0b8b85448798e84ecc6de4e5b9e06e5c938433e"
ecp_mod_p224_raw #19 - cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8":"354cdf1172123e33852ec80d19ec9d4ccd744e25b31d7b8cfd0905f4"
ecp_mod_p224_raw #20 - cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000cdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8":"00000000354cdf1172123e33852ec80d19ec9d4ccd744e25b31d7b8cfd0905f4"
ecp_mod_p224_raw #21 - defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da":"f0fe9846b590817e876a540d13e72caf9f28fefe6124a81fe2d6f6e2"
ecp_mod_p224_raw #22 - defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751da":"00000000f0fe9846b590817e876a540d13e72caf9f28fefe6124a81fe2d6f6e2"
ecp_mod_p224_raw #23 - 2d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"2d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045":"ba73eac168a33be69b34f032fe83718b6744c0ece96620eb7078f1d2"
ecp_mod_p224_raw #24 - 2d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000002d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045":"00000000ba73eac168a33be69b34f032fe83718b6744c0ece96620eb7078f1d2"
ecp_mod_p224_raw #25 - 8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578":"93535ac56b2f5198ff01014333b25f701ab1db170bc00b9436540164"
ecp_mod_p224_raw #26 - 8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000008f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578":"0000000093535ac56b2f5198ff01014333b25f701ab1db170bc00b9436540164"
ecp_mod_p224_raw #27 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a":"e75f8b0a207baa6b20fc07de92870f6e64406a6b4c808a954acf13f2"
ecp_mod_p224_raw #28 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000097eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a":"00000000e75f8b0a207baa6b20fc07de92870f6e64406a6b4c808a954acf13f2"
ecp_mod_p224_raw #29 - a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"38af47df0a04dd7f70500d2cd65bdd8ced1b94c9257f6cf4a90709cc"
ecp_mod_p224_raw #30 - a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"0000000000000000a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"0000000038af47df0a04dd7f70500d2cd65bdd8ced1b94c9257f6cf4a90709cc"
ecp_mod_p224_raw #31 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473":"666b6998ddba02a3fa3edfc71a2d701c3d363d90891841665a706bfc"
ecp_mod_p224_raw #32 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000074667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473":"00000000666b6998ddba02a3fa3edfc71a2d701c3d363d90891841665a706bfc"
ecp_mod_p224_raw #33 - eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a"
ecp_mod_p224_raw #34 - eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"00000000eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a"
ecp_mod_p224_raw #35 - f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"ffffffffffffffffffffffffffffffff000000000000000000000001":"00000000000000000000000000000000000000000000000000000000f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3":"f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3"
ecp_mod_p224_raw #36 - f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3 mod ffffffffffffffffffffffffffffffff000000000000000000000001
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP224R1:"00000000ffffffffffffffffffffffffffffffff000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3":"00000000f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3"
mbedtls_ecp_mod_p255_raw #1 - 0 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000"
mbedtls_ecp_mod_p255_raw #2 - 1 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000001"
mbedtls_ecp_mod_p255_raw #3 - 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"
mbedtls_ecp_mod_p255_raw #4 - 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee":"0000000000000000000000000000000000000000000000000000000000000001"
mbedtls_ecp_mod_p255_raw #5 - 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000012"
mbedtls_ecp_mod_p255_raw #6 - 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec0000000000000000000000000000000000000000000000000000000000000190 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec0000000000000000000000000000000000000000000000000000000000000190":"0000000000000000000000000000000000000000000000000000000000000001"
mbedtls_ecp_mod_p255_raw #7 - 1019f0d64ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"1019f0d64ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"40480306cb475acd898bee5c819d4df896f0e1beea28ee5249cd25d1b47a552a"
mbedtls_ecp_mod_p255_raw #8 - 20948fa1feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"20948fa1feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e":"55fae440f62696cc5eda88470e3fefca933e8dd58f9e66bf79609027f8ad0cd1"
mbedtls_ecp_mod_p255_raw #9 - 3a1893ea5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"3a1893ea5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa":"065b82af5eb2c85de98852171c5ebea0c4acb089964afa2078a7fae950846007"
mbedtls_ecp_mod_p255_raw #10 - 20a6923522fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"20a6923522fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f":"06262d62c148698ac2c7ce4de19549b59973d7c8cc63b77e2fbf4a615a4ad8fd"
mbedtls_ecp_mod_p255_raw #11 - 3a248138e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"3a248138e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0":"202f2525a1e518048616f00894ed2c42456fac79468b221a4b3e61f07747ff85"
mbedtls_ecp_mod_p255_raw #12 - 2f450feab714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769f mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"2f450feab714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769f":"60259ca2281e2fb68e83d5f50185662be1858b0eea2dff394db09e6a50abc89c"
mbedtls_ecp_mod_p255_raw #13 - 1d199effe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"1d199effe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2":"514ed15a79217aca6c53e0a7f06b12858191039f20d75e013d647e877e4d4ff3"
mbedtls_ecp_mod_p255_raw #14 - 3423c6ec531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"3423c6ec531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"4c0d46f841f7acec77f31472ff1c28eb636f4195f3bf456e408adef5672fc7c8"
mbedtls_ecp_mod_p255_raw #15 - 62f1243644a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"000000000000000000000000000000000000000000000000000000000000000062f1243644a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062":"62f1243644a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062"
mbedtls_ecp_mod_p255_raw #16 - 6a606e54b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9 mod 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE25519:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"00000000000000000000000000000000000000000000000000000000000000006a606e54b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9":"6a606e54b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9"
ecp_mod_p256k1_raw #1 - 0 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p256k1_raw #2 - 1 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p256k1_raw #3 - fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e"
ecp_mod_p256k1_raw #4 - fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc30 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc30":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p256k1_raw #5 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000001000003d0"
ecp_mod_p256k1_raw #6 - fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff85c000000000000000000000000000000000000000000000001000007a4000e9844 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff85c000000000000000000000000000000000000000000000001000007a4000e9844":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p256k1_raw #7 - fffffc2f000e90a0c86a0a63234e5ba641f43a7e4aecc4040e67ec85056200000000000000000000000000000000000000000000000000000000585674fd mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000fffffc2f000e90a0c86a0a63234e5ba641f43a7e4aecc4040e67ec85056200000000000000000000000000000000000000000000000000000000585674fd":"0000000000000000000000000000000000000000000000000001000003d0ffff"
ecp_mod_p256k1_raw #8 - fffffc2f000e90a0c86a0a63234e5ba641f43a7e4aecc4040e67ec85056200000000000000000000000000000000000000000000000000000000585674fd mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000fffffc2f000e90a0c86a0a63234e5ba641f43a7e4aecc4040e67ec85056200000000000000000000000000000000000000000000000000000000585674fd":"0000000000000000000000000000000000000000000000000001000003d0ffff"
ecp_mod_p256k1_raw #9 - 4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"7750cf34fcef7c7ff51f5859312e5174f0e1c93f28dae45e2516d8b6090e7185"
ecp_mod_p256k1_raw #10 - 82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e":"5a7ab21ef514584adcdcdf7bc486752e9d438281b9d1d069f03e873ebaac53fa"
ecp_mod_p256k1_raw #11 - e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa":"176e88ec572bfc18618c1d0f029a2f8f9af1fb7c3a94deb450a06338eb65a493"
ecp_mod_p256k1_raw #12 - 829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f":"bf3b04bb49963f8215fa3ebe5dfb6d1090375d296e865f4a77fdb010816c750d"
ecp_mod_p256k1_raw #13 - e89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"e89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0":"7c1f220c72feb2d2939bc98f997f974171adf69ee0f692a08cb8568e1ce6cc4d"
ecp_mod_p256k1_raw #14 - bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769f mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769f":"2d40578b1550dc67c8538052f87fc338b96d51bab681eefe94be31782495deab"
ecp_mod_p256k1_raw #15 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2":"9ca2f78a21c22340198ffd3611f7599dfc14fe9171f6cdd9260c26a903a0da57"
ecp_mod_p256k1_raw #16 - d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"d403d7d40f91cb6fe9161acbef9a36d1917dd0ec558916b97df8768ef8d4437d"
ecp_mod_p256k1_raw #17 - c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000000000000000000000000000000000000000000000000000000000000000c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062":"c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062"
ecp_mod_p256k1_raw #18 - d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000000000000000000000000000000000000000000000000000000000000000d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9":"d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9"
ecp_mod_p256_raw #1 - 0 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p256_raw #2 - 1 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p256_raw #3 - ffffffff00000001000000000000000000000000fffffffffffffffffffffffe mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000ffffffff00000001000000000000000000000000fffffffffffffffffffffffe":"ffffffff00000001000000000000000000000000fffffffffffffffffffffffe"
ecp_mod_p256_raw #4 - ffffffff00000001000000000000000000000001000000000000000000000000 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000ffffffff00000001000000000000000000000001000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p256_raw #5 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000fffffffeffffffffffffffffffffffff000000000000000000000000"
ecp_mod_p256_raw #6 - fffffffe00000002fffffffe0000000100000001fffffffe00000001fffffffc00000003fffffffcfffffffffffffffffffffffc000000000000000000000004 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"fffffffe00000002fffffffe0000000100000001fffffffe00000001fffffffc00000003fffffffcfffffffffffffffffffffffc000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p256_raw #7 - 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff":"fffffffe00000002000000020000000200000001fffffffefffffffffffffffd"
ecp_mod_p256_raw #8 - 10ffffffff00000000000000000000000000000000000000000000000000000000 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000010ffffffff00000000000000000000000000000000000000000000000000000000":"0000000fffffffeeffffffffffffffffffffffef000000000000000000000011"
ecp_mod_p256_raw #9 - aaaaaaaa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aaaaaaacaaaaaaaaaaaaaaaa00000000 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"aaaaaaaa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aaaaaaacaaaaaaaaaaaaaaaa00000000":"0000000155555552aaaaaaaa0000000000000000000000000000000000000002"
ecp_mod_p256_raw #10 - 1ffffffff000000000000000000000000000000000000000000000000000000000000000000000002000000020000000100000002 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"000000000000000000000001ffffffff000000000000000000000000000000000000000000000000000000000000000000000002000000020000000100000002":"fffffffe00000003000000040000000200000003000000000000000000000000"
ecp_mod_p256_raw #11 - 4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e1ffcc745c985cf81f470a7681bb45cc6773ac0f1446cdb9af54308d51e8786b"
ecp_mod_p256_raw #12 - 82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e":"2d589c4ef3bb7cacb4078482b5e57a175f02953e709b7195283650834b1853d3"
ecp_mod_p256_raw #13 - e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa":"df475e8b1063fb3584dbf854a887cf88b5ee4c8fc70f1ff7a5c7f713c6f22cf7"
ecp_mod_p256_raw #14 - 829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f":"3ea7f2a4b2a2edc9183af0a467cbc10615a0e627459c333e885057f008db0488"
ecp_mod_p256_raw #15 - e89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"e89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0":"249aac0ae79cda5f1ef06e7bdbb3b10c16ed7ca2dea327ba86f9d7dd44b5ecb7"
ecp_mod_p256_raw #16 - bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769f mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769f":"c443605a9886908036e21b4fc50c548a43d4a2940d60f6a85d14eb5358bb0712"
ecp_mod_p256_raw #17 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2":"b8392b3f20d2ae5d31f39a400ea28be2bdaea69728abc77ea60fc578c8704352"
ecp_mod_p256_raw #18 - d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"6ae1a20b48b2622fecf4492f4626adae0ec91cb586cc8ba08b69750def1edb4e"
ecp_mod_p256_raw #19 - c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062":"c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062"
ecp_mod_p256_raw #20 - d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9 mod ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP256R1:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9":"d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9"
ecp_mod_p384_raw #1 0 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p384_raw #2 1 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p384_raw #3 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe"
ecp_mod_p384_raw #4 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p384_raw #5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000000"
ecp_mod_p384_raw #6 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffe0000000000000001fffffffc000000000000000000000000000000010000000200000000fffffffe000000020000000400000000fffffffc00000004 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffe0000000000000001fffffffc000000000000000000000000000000010000000200000000fffffffe000000020000000400000000fffffffc00000004":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p384_raw #7 497811378624857a2c2af60d70583376545484cfae5c812fe2999fc1abb51d18b559e8ca3b50aaf263fdf8f24bdfb98fffffffff20e65bf9099e4e73a5e8b517cf4fbeb8fd1750fdae6d43f2e53f82d5ffffffffffffffffcc6f1e06111c62e0 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"497811378624857a2c2af60d70583376545484cfae5c812fe2999fc1abb51d18b559e8ca3b50aaf263fdf8f24bdfb98fffffffff20e65bf9099e4e73a5e8b517cf4fbeb8fd1750fdae6d43f2e53f82d5ffffffffffffffffcc6f1e06111c62e0":"880044027d90f165566731fc503b20991fced973d2996e12068c7cb9475aec4292cf8a39f49fcd2a43d1c0a3b00734bc"
ecp_mod_p384_raw #8 dfdd25e96777406b3c04b8c7b406f5fcf287e1e576003a092852a6fbe517f2712b68abef41dbd35183a0614fb7222606ffffffff84396eee542f18a9189d94396c784059c17a9f18f807214ef32f2f10ffffffff8a77fac20000000000000000 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"dfdd25e96777406b3c04b8c7b406f5fcf287e1e576003a092852a6fbe517f2712b68abef41dbd35183a0614fb7222606ffffffff84396eee542f18a9189d94396c784059c17a9f18f807214ef32f2f10ffffffff8a77fac20000000000000000":"1ef4bd60183412807a7fbc78e78741bed95dac81a39e3da5eb8e6a00bb6e590e49664715ec8bd9e65fcbab9ec750aee3"
ecp_mod_p384_raw #9 783753f8a5afba6c1862eead1deb2fcdd907272be3ffd18542b24a71ee8b26cab0aa33513610ff973042bbe1637cc9fc99ad36c7f703514572cf4f5c3044469a8f5be6312c19e5d3f8fc1ac6ffffffffffffffff8c86252400000000ffffffff mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"783753f8a5afba6c1862eead1deb2fcdd907272be3ffd18542b24a71ee8b26cab0aa33513610ff973042bbe1637cc9fc99ad36c7f703514572cf4f5c3044469a8f5be6312c19e5d3f8fc1ac6ffffffffffffffff8c86252400000000ffffffff":"6327274e415715b593f92a32a665c0799bcfe9ed4a41022d8f70b163d59298f9f67d0dccf228ce25ccc1d07c2193947e"
ecp_mod_p384_raw #10 65e1d2362fce922663b7fd517586e88842a9b4bd092e93e6251c9c69f278cbf8285d99ae3b53da5ba36e56701e2b17c225f1239556c5f00117fa140218b46ebd8e34f50d0018701fa8a0a5cc00000000000000004410bcb4ffffffff00000000 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"65e1d2362fce922663b7fd517586e88842a9b4bd092e93e6251c9c69f278cbf8285d99ae3b53da5ba36e56701e2b17c225f1239556c5f00117fa140218b46ebd8e34f50d0018701fa8a0a5cc00000000000000004410bcb4ffffffff00000000":"143500ea6eb4cd793476591b63270aeb48684dc1436e1238e33d9add2cb671614ec35892de201585a56cba8091882b66"
ecp_mod_p384_raw #11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffff00000000000000000000000100000000000000000000000000000000ffffffff00000001 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffff00000000000000000000000100000000000000000000000000000000ffffffff00000001":"000000000000000000000000000000000000000000000000000000000000000200000001fffffffeffffffff00000002"
ecp_mod_p384_raw #12 ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"44699b77db0b68ca1690c21932fa470ca5b14998326e460edb891e1009809c40910b74c8b879624c9fc5bc57e3747a94"
ecp_mod_p384_raw #13 e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"e8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57ebf30b94fa82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93":"5a9983e4527f4c09bccc32c4f50d2b53b0c5deb57463a2f3f1333673a2de21ac0d50e96c22b7426b74fe55685d50cc45"
ecp_mod_p384_raw #14 fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f":"2da32f562881e81e7971824f444bc1d1b543520904c0b4873e350ebd02a25f60a3d8b8cc4a4997bec64c122cf1c0ef5f"
ecp_mod_p384_raw #15 bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2":"536bb25b389d786b9df83474f8396eba42fdc19da77f28e2ebbcf851583ef5c158b91e1ac12bf29e274a1357a9a2810d"
ecp_mod_p384_raw #16 8ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"8ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2":"5a194c71d677391409aab70f854939694cbfb65adb0f6142f384b5b3c678786dfdc88315954dd201df751a148d24821a"
ecp_mod_p384_raw #17 d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f25 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f25":"4320a17caf9599d4775c58dabea9f0c052e7a306905d89886fab3ef07c0452874a803d532b92d056beafb6058ea8ff44"
ecp_mod_p384_raw #18 227eeb7b9d7d01f5769da05d205bbfcc8c69069134bccd3e1cf4f589f8e4ce0af29d115ef24bd625dd961e6830b54fa7d28f93435339774bb1e386c4fd5079e681b8f5896838b769da59b74a6c3181c81e220df848b1df78feb994a81167346 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"0227eeb7b9d7d01f5769da05d205bbfcc8c69069134bccd3e1cf4f589f8e4ce0af29d115ef24bd625dd961e6830b54fa7d28f93435339774bb1e386c4fd5079e681b8f5896838b769da59b74a6c3181c81e220df848b1df78feb994a81167346":"6045643273b3eacb359d72a1da71cf6b6e765f9c247644f8fa262631ae6dad80326260b8c0948e2554b3a9112b696f8b"
ecp_mod_p384_raw #19 d322a7353ead4efe440e2b4fda9c025a22f1a83185b98f5fc11e60de1b343f52ea748db9e020307aaeb6db2c3a038a709779ac1f45e9dd320c855fdfa7251af0930cdbd30f0ad2a81b2d19a2beaa14a7ff3fe32a30ffc4eed0a7bd04e85bfcdd mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"d322a7353ead4efe440e2b4fda9c025a22f1a83185b98f5fc11e60de1b343f52ea748db9e020307aaeb6db2c3a038a709779ac1f45e9dd320c855fdfa7251af0930cdbd30f0ad2a81b2d19a2beaa14a7ff3fe32a30ffc4eed0a7bd04e85bfcdd":"297caee1e9343871bccf79133b22154b091068e8832d5cc7e479b754d344856b50720251f17d96237c8f01986de70dc3"
ecp_mod_p384_raw #20 5c3747465cc36c270e8a35b10828d569c268a20eb78ac332e5e138e26c4454b90f756132e16dce72f18e859835e1f291 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c3747465cc36c270e8a35b10828d569c268a20eb78ac332e5e138e26c4454b90f756132e16dce72f18e859835e1f291":"5c3747465cc36c270e8a35b10828d569c268a20eb78ac332e5e138e26c4454b90f756132e16dce72f18e859835e1f291"
ecp_mod_p384_raw #21 eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c006497 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP384R1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c006497":"eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c006497"
ecp_mod_p448_raw #1 - 0 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p448_raw #2 - 1 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p448_raw #3 - fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffe mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffe"
ecp_mod_p448_raw #4 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p448_raw #5 - ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000"
ecp_mod_p448_raw #6 - fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000004 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p448_raw #7 - 74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff387c56473a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b":"10ac5599b9a5006cfc9e7f5fb3bced4e7b78a96eaabd8d05841d60381de1006bd3a1a6388c65295d7df3452e4467a935717cefdd6647eb5e"
ecp_mod_p448_raw #8 - 4da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6e06f291b2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a":"74836e8db7b6d342c8d428c224f6c8beb3bc39e513219cc51d6cdad721ae6b3ae9824d5d36aa9dd618e0b9c9eefe4d83fc6a5a6cd73906c4"
ecp_mod_p448_raw #9 - bc1b00d92838e766ef9b6bf2d037fe2e20b6a8464174e75a5f834da70569c018eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c0064975c3747465cc36c270e8a35b10828d569c268a20eb78ac332e5e138e26c4454b9 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"bc1b00d92838e766ef9b6bf2d037fe2e20b6a8464174e75a5f834da70569c018eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c0064975c3747465cc36c270e8a35b10828d569c268a20eb78ac332e5e138e26c4454b9":"9b1f044050d649e19ff2aec05721191887c9a624c02fb0e90f9c12361e482d1921ee73abb27fc1179d1761d2debe6944389b9dd9c025d201"
ecp_mod_p448_raw #10 - 8d2f527e72daf0a54ef25c0707e338687d1f71575653a45c49390aa51cf5192bbf67da14be11d56ba0b4a2969d8055a9f03f2d71581d8e830112ff0f0948eccaf8877acf26c377c13f719726fd70bddacb4deeec0b0c995e96e6bc4d62b47204007ee4fab105d83e85e951862f0981ae mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8d2f527e72daf0a54ef25c0707e338687d1f71575653a45c49390aa51cf5192bbf67da14be11d56ba0b4a2969d8055a9f03f2d71581d8e830112ff0f0948eccaf8877acf26c377c13f719726fd70bddacb4deeec0b0c995e96e6bc4d62b47204007ee4fab105d83e85e951862f0981ae":"3866bd37ae66a82a547e0848d73e8b28d730cf7f9a573404b5dd92bab5310508c92987076fb8a376a916bff9cba59f3fcc7c2353d0601ad7"
ecp_mod_p448_raw #11 - 84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e32748dd1db4917fc09f20dbb0dcc93f0e66dfe717c17313394391b6e2e6eacb0f0bb7be72bd6d25009aeb7fa0c4169b14 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e32748dd1db4917fc09f20dbb0dcc93f0e66dfe717c17313394391b6e2e6eacb0f0bb7be72bd6d25009aeb7fa0c4169b14":"18ef8ecc90f603615daee5e0246b96bcdbf74d7cd9febb1aad00859b60415d1c3ad96b9f2a9a85da9ba15cfe306e651e257c87aa040500bd"
ecp_mod_p448_raw #12 - 2bb3b36f29421c4021b7379f0897246a40c270b00e893302aba9e7b823fc5ad2f58105748ed5d1b7b310b730049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f3860895bfa813 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2bb3b36f29421c4021b7379f0897246a40c270b00e893302aba9e7b823fc5ad2f58105748ed5d1b7b310b730049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f3860895bfa813":"73e27a51e32d2a66154c0782069324a5dd71d380ba02f824a2a46c717482102872b85f1d34572567384ec2a0a9f8cda37dbc59bdacdea938"
ecp_mod_p448_raw #13 - af3f5d7841b1256d5c1dc12fb5a1ae519fb8883accda6559caa538a09fc9370d3a6b86a7975b54a31497024640332b0612d4050771d7b14eb6c004cc3b8367dc3f2bb31efe9934ad0809eae3ef232a32b5459d83fbc46f1aea990e94821d46063b4dbf2ca294523d74115c86188b1044 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"af3f5d7841b1256d5c1dc12fb5a1ae519fb8883accda6559caa538a09fc9370d3a6b86a7975b54a31497024640332b0612d4050771d7b14eb6c004cc3b8367dc3f2bb31efe9934ad0809eae3ef232a32b5459d83fbc46f1aea990e94821d46063b4dbf2ca294523d74115c86188b1044":"b507f6c9f951395e8ec28a217e73939687ae265f9babf9edbc67c0154acd03a066b5baa975965bd905866fc48280057e53bfc6e75507fa34"
ecp_mod_p448_raw #14 - 7430051376e31f5aab63ad02854efa600641b4fa37a47ce41aeffafc3b45402ac02659fe2e87d4150511baeb198ababb1a16daff3da95cd2167b75dfb948f82a8317cba01c75f67e290535d868a24b7f627f285509167d4126af8090013c3273c02c6b9586b4625b475b51096c4ad652 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7430051376e31f5aab63ad02854efa600641b4fa37a47ce41aeffafc3b45402ac02659fe2e87d4150511baeb198ababb1a16daff3da95cd2167b75dfb948f82a8317cba01c75f67e290535d868a24b7f627f285509167d4126af8090013c3273c02c6b9586b4625b475b51096c4ad652":"3a20c031673590de0866f9ba2c25a6294f135a87f2022046d6087b20b88bc27f5db8f9e8db27b38b4a8d20e0a680d2109916a8ecc4e42e21"
ecp_mod_p448_raw #15 - f4ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccd0b519a16df59c53e0d49b209200f878f362ace518d5b8bfcf9cdc725e5e01c06295e8605af06932b5006d9e556d3f190e8136bf9c643d332 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"f4ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccd0b519a16df59c53e0d49b209200f878f362ace518d5b8bfcf9cdc725e5e01c06295e8605af06932b5006d9e556d3f190e8136bf9c643d332":"0ece49e2f747b4bc43afbacb8fe99e8b7301401d8a9108093fee65a9f4ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238db"
ecp_mod_p448_raw #16 - 8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578 mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578":"8f54f8ceacaab39e83844b40ffa9b9f15c14bc4a829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c729578"
ecp_mod_p448_raw #17 - 97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a mod fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_CURVE448:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a":"97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a"
ecp_mod_p521_raw #1 0 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p521_raw #2 0 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
ecp_mod_p521_raw #3 1 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p521_raw #4 1 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p521_raw #5 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"
ecp_mod_p521_raw #6 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"00000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"
ecp_mod_p521_raw #7 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p521_raw #8 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p521_raw #9 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p521_raw #10 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
ecp_mod_p521_raw #11 1efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000001ef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000001efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000001ef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000":"000000e70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e800001"
ecp_mod_p521_raw #12 1efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000001ef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000001efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000001ef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000":"00000000000000e70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e800001"
ecp_mod_p521_raw #13 3cc2e82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000003cc2e82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000001457a8ec7792615e3836830063384fff38bc7f01a3a61ae6b8501ac9b29d9a6153266e3a00304e71c0d8494ce649448b84816042bb2cf27e29c58fe596638c3908"
ecp_mod_p521_raw #14 3cc2e82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000003cc2e82523e86feac7eb7dc38f519b91751dacdbd47d364be8049a372db8f6e405d93ffed9235288bc781ae66267594c9c9500925e4749b575bd13653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738fcf1822ffbc6887782b491044d5e341245c6e433715ba2bdd177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000001457a8ec7792615e3836830063384fff38bc7f01a3a61ae6b8501ac9b29d9a6153266e3a00304e71c0d8494ce649448b84816042bb2cf27e29c58fe596638c3908"
ecp_mod_p521_raw #15 17052829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57eb mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000017052829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57eb":"0000015e8a89f773c0a39ccfbb986d7fbfa3b711862ce6e8f7c6ab7bae09ae0df71988ad7ad08f71a2cc442404732b9c3c9c896458a542b0d7fbf619a54155e989f590cd"
ecp_mod_p521_raw #16 17052829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57eb mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000017052829e07b0829a48d422fe99a22c70501e533c91352d3d854e061b90303b08c6e33c7295782d6c797f8f7d9b782a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86fe8624fab5186ee32ee8d7ee9770348a05d300cb90706a045defc044a09325626e6b58de744ab6cce80877b6f71e1f6d2ef8acd128b4f2fc15f3f57eb":"000000000000015e8a89f773c0a39ccfbb986d7fbfa3b711862ce6e8f7c6ab7bae09ae0df71988ad7ad08f71a2cc442404732b9c3c9c896458a542b0d7fbf619a54155e989f590cd"
ecp_mod_p521_raw #17 21f15a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f1 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000021f15a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f1":"000001cbe813ada3338785ffd1f08f02bcf20f720cb18ccfd6e2430303a21c1f5f0d16f74b4e5d6c02bc3a44e731e953140adc2e7f034b19a9d7fc82d1504296b20ed064"
ecp_mod_p521_raw #18 21f15a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f1 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000021f15a7a83ee0761ebfd2bd143fa9b714210c665d7435c1066932f4767f26294365b2721dea3bf63f23d0dbe53fcafb2147df5ca495fa5a91c89b97eeab64ca2ce6bc5d3fd983c34c769fe89204e2e8168561867e5e15bc01bfce6a27e0dfcbf8754472154e76e4c11ab2fec3f6b32e8d4b8a8f54f8ceacaab39e83844b40ffa9b9f1":"00000000000001cbe813ada3338785ffd1f08f02bcf20f720cb18ccfd6e2430303a21c1f5f0d16f74b4e5d6c02bc3a44e731e953140adc2e7f034b19a9d7fc82d1504296b20ed064"
ecp_mod_p521_raw #19 381bc2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff3 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000381bc2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff3":"00000072541a267a63a177e90dac52aaa5cec38dbb2c134fd9dc9fa0d2b72b2c68292a3d5e9d131ff22b2e92d513c3511248963edeb798c68bd02852e2ba380281267624"
ecp_mod_p521_raw #20 381bc2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff3 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000381bc2a838af8d5c44a4eb3172062d08f1bb2531d6460f0caeef038c89b38a8acb5137c9260dc74e088a9b9492f258ebdbfe3eb9ac688b9d39cca91551e8259cc60b17604e4b4e73695c3e652c71a74667bffe202849da9643a295a9ac6decbd4d3e2d4dec9ef83f0be4e80371eb97f81375eecc1cb6347733e847d718d733ff98ff3":"0000000000000072541a267a63a177e90dac52aaa5cec38dbb2c134fd9dc9fa0d2b72b2c68292a3d5e9d131ff22b2e92d513c3511248963edeb798c68bd02852e2ba380281267624"
ecp_mod_p521_raw #21 34816c8c69069134bccd3e1cf4f589f8e4ce0af29d115ef24bd625dd961e6830b54fa7d28f93435339774bb1e386c4fd5079e681b8f5896838b769da59b74a6c3181c81e220df848b1df78feb994a81167346d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000034816c8c69069134bccd3e1cf4f589f8e4ce0af29d115ef24bd625dd961e6830b54fa7d28f93435339774bb1e386c4fd5079e681b8f5896838b769da59b74a6c3181c81e220df848b1df78feb994a81167346d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6":"000001c08d468427b914c3ddf9dc80f22d663a6d451871913fc179b47dcb278de8572dcdcae36f67e95a2143352f83771f77f94d95165633f0efeabc5917ae16a2c22b52"
ecp_mod_p521_raw #22 34816c8c69069134bccd3e1cf4f589f8e4ce0af29d115ef24bd625dd961e6830b54fa7d28f93435339774bb1e386c4fd5079e681b8f5896838b769da59b74a6c3181c81e220df848b1df78feb994a81167346d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000034816c8c69069134bccd3e1cf4f589f8e4ce0af29d115ef24bd625dd961e6830b54fa7d28f93435339774bb1e386c4fd5079e681b8f5896838b769da59b74a6c3181c81e220df848b1df78feb994a81167346d4c0dca8b4c9e755cc9c3adcf515a8234da4daeb4f3f87777ad1f45ae9500ec9c5e2486c44a4a8f69dc8db48e86ec9c6":"00000000000001c08d468427b914c3ddf9dc80f22d663a6d451871913fc179b47dcb278de8572dcdcae36f67e95a2143352f83771f77f94d95165633f0efeabc5917ae16a2c22b52"
ecp_mod_p521_raw #23 397846c4454b90f756132e16dce72f18e859835e1f291d322a7353ead4efe440e2b4fda9c025a22f1a83185b98f5fc11e60de1b343f52ea748db9e020307aaeb6db2c3a038a709779ac1f45e9dd320c855fdfa7251af0930cdbd30f0ad2a81b2d19a2beaa14a7ff3fe32a30ffc4eed0a7bd04e85bfcdd0227eeb7b9d7d01f5769da05 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000397846c4454b90f756132e16dce72f18e859835e1f291d322a7353ead4efe440e2b4fda9c025a22f1a83185b98f5fc11e60de1b343f52ea748db9e020307aaeb6db2c3a038a709779ac1f45e9dd320c855fdfa7251af0930cdbd30f0ad2a81b2d19a2beaa14a7ff3fe32a30ffc4eed0a7bd04e85bfcdd0227eeb7b9d7d01f5769da05":"000000f7fc39ac9af40166cfdf5a941945fe272273400be9dbf66d26a9aa294f9a4f20b8669762a92c515bfe49c2a1b680884c35576996fcab9d28fe96c7e03794c13573"
ecp_mod_p521_raw #24 397846c4454b90f756132e16dce72f18e859835e1f291d322a7353ead4efe440e2b4fda9c025a22f1a83185b98f5fc11e60de1b343f52ea748db9e020307aaeb6db2c3a038a709779ac1f45e9dd320c855fdfa7251af0930cdbd30f0ad2a81b2d19a2beaa14a7ff3fe32a30ffc4eed0a7bd04e85bfcdd0227eeb7b9d7d01f5769da05 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000397846c4454b90f756132e16dce72f18e859835e1f291d322a7353ead4efe440e2b4fda9c025a22f1a83185b98f5fc11e60de1b343f52ea748db9e020307aaeb6db2c3a038a709779ac1f45e9dd320c855fdfa7251af0930cdbd30f0ad2a81b2d19a2beaa14a7ff3fe32a30ffc4eed0a7bd04e85bfcdd0227eeb7b9d7d01f5769da05":"00000000000000f7fc39ac9af40166cfdf5a941945fe272273400be9dbf66d26a9aa294f9a4f20b8669762a92c515bfe49c2a1b680884c35576996fcab9d28fe96c7e03794c13573"
ecp_mod_p521_raw #25 2c3296e6bc4d62b47204007ee4fab105d83e85e951862f0981aebc1b00d92838e766ef9b6bf2d037fe2e20b6a8464174e75a5f834da70569c018eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c0064975c3747465cc36c270e8a35b10828d569c268a20eb78ac332 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000002c3296e6bc4d62b47204007ee4fab105d83e85e951862f0981aebc1b00d92838e766ef9b6bf2d037fe2e20b6a8464174e75a5f834da70569c018eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c0064975c3747465cc36c270e8a35b10828d569c268a20eb78ac332":"000001d123c234f42d2e58041345bd0f71b6b28c3cc2371dd850a940dd5e64a018ce7799f3572583256880967347a29a7fe4269abbb9f757dbab8a49cede37ba016820f1"
ecp_mod_p521_raw #26 2c3296e6bc4d62b47204007ee4fab105d83e85e951862f0981aebc1b00d92838e766ef9b6bf2d037fe2e20b6a8464174e75a5f834da70569c018eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c0064975c3747465cc36c270e8a35b10828d569c268a20eb78ac332 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000002c3296e6bc4d62b47204007ee4fab105d83e85e951862f0981aebc1b00d92838e766ef9b6bf2d037fe2e20b6a8464174e75a5f834da70569c018eb2b5693babb7fbb0a76c196067cfdcb11457d9cf45e2fa01d7f4275153924800600571fac3a5b263fdf57cd2c0064975c3747465cc36c270e8a35b10828d569c268a20eb78ac332":"00000000000001d123c234f42d2e58041345bd0f71b6b28c3cc2371dd850a940dd5e64a018ce7799f3572583256880967347a29a7fe4269abbb9f757dbab8a49cede37ba016820f1"
ecp_mod_p521_raw #27 9d23b4917fc09f20dbb0dcc93f0e66dfe717c17313394391b6e2e6eacb0f0bb7be72bd6d25009aeb7fa0c4169b148d2f527e72daf0a54ef25c0707e338687d1f71575653a45c49390aa51cf5192bbf67da14be11d56ba0b4a2969d8055a9f03f2d71581d8e830112ff0f0948eccaf8877acf26c377c13f719726fd70bddacb4deeec mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000009d23b4917fc09f20dbb0dcc93f0e66dfe717c17313394391b6e2e6eacb0f0bb7be72bd6d25009aeb7fa0c4169b148d2f527e72daf0a54ef25c0707e338687d1f71575653a45c49390aa51cf5192bbf67da14be11d56ba0b4a2969d8055a9f03f2d71581d8e830112ff0f0948eccaf8877acf26c377c13f719726fd70bddacb4deeec":"000001a5e82ded1c29889b12f5637dcb469b4a0849f28ef53d566b720ef3cb0f77c50950917c4515816074ced9aaf81882ce127865fce5399219105500f4af76ff8c7ea4"
ecp_mod_p521_raw #28 9d23b4917fc09f20dbb0dcc93f0e66dfe717c17313394391b6e2e6eacb0f0bb7be72bd6d25009aeb7fa0c4169b148d2f527e72daf0a54ef25c0707e338687d1f71575653a45c49390aa51cf5192bbf67da14be11d56ba0b4a2969d8055a9f03f2d71581d8e830112ff0f0948eccaf8877acf26c377c13f719726fd70bddacb4deeec mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000009d23b4917fc09f20dbb0dcc93f0e66dfe717c17313394391b6e2e6eacb0f0bb7be72bd6d25009aeb7fa0c4169b148d2f527e72daf0a54ef25c0707e338687d1f71575653a45c49390aa51cf5192bbf67da14be11d56ba0b4a2969d8055a9f03f2d71581d8e830112ff0f0948eccaf8877acf26c377c13f719726fd70bddacb4deeec":"00000000000001a5e82ded1c29889b12f5637dcb469b4a0849f28ef53d566b720ef3cb0f77c50950917c4515816074ced9aaf81882ce127865fce5399219105500f4af76ff8c7ea4"
ecp_mod_p521_raw #29 12b84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e3 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012b84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e3":"0000012b84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e3"
ecp_mod_p521_raw #30 12b84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e3 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012b84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e3":"000000000000012b84ae65e920a63ac1f2b64df6dff07870c9d531ae72a47403063238da1a1fe3f9d6a179fa50f96cd4aff9261aa92c0e6f17ec940639bc2ccdf572df00790813e3"
ecp_mod_p521_raw #31 166049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f38608 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT32
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000166049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f38608":"00000166049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f38608"
ecp_mod_p521_raw #32 166049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f38608 mod 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_ECP_NIST_OPTIM:MBEDTLS_HAVE_INT64
ecp_mod_p_generic_raw:MBEDTLS_ECP_DP_SECP521R1:"00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000166049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f38608":"0000000000000166049dd332a73fa0b26b75196cf87eb8a09b27ec714307c68c425424a1574f1eedf5b0f16cdfdb839424d201e653f53d6883ca1c107ca6e706649889c0c7f38608"
# End of automatically generated file.
+36 -36
View File
@@ -895,15 +895,15 @@ depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15
pk_get_psa_attributes_fail:MBEDTLS_PK_RSA:FROM_PUBLIC:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY pair DECRYPT (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH pair DECRYPT (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECDSA pair DECRYPT (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY public DECRYPT (bad)
@@ -919,15 +919,15 @@ depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBED
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PUBLIC:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY pair ENCRYPT (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_ENCRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH pair ENCRYPT (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_ENCRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECDSA pair ENCRYPT (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_ENCRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY public ENCRYPT (bad)
@@ -943,15 +943,15 @@ depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBED
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PUBLIC:PSA_KEY_USAGE_ENCRYPT:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY pair DERIVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_DERIVE:1:PSA_ALG_ECDH
PSA attributes for pk: ECKEY_DH pair DERIVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_DERIVE:1:PSA_ALG_ECDH
PSA attributes for pk: ECDSA pair DERIVE (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY public DERIVE (bad)
@@ -967,35 +967,35 @@ depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBED
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PUBLIC:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY pair SIGN_MESSAGE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_SIGN_MESSAGE:1:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECDSA pair SIGN_MESSAGE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_SIGN_MESSAGE:1:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECKEY pair SIGN_HASH
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_SIGN_HASH:1:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECDSA pair SIGN_HASH
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_SIGN_HASH:1:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECKEY pair->public VERIFY_MESSAGE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_VERIFY_MESSAGE:0:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECDSA pair->public VERIFY_MESSAGE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_VERIFY_MESSAGE:0:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECKEY pair->public VERIFY_HASH
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_USAGE_VERIFY_HASH:0:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECDSA pair->public VERIFY_HASH
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_get_psa_attributes:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_USAGE_VERIFY_HASH:0:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)
PSA attributes for pk: ECKEY public VERIFY_MESSAGE
@@ -1031,19 +1031,19 @@ depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBED
pk_get_psa_attributes_fail:MBEDTLS_PK_ECDSA:FROM_PUBLIC:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH pair SIGN_MESSAGE (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_SIGN_MESSAGE:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH pair SIGN_HASH (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH pair VERIFY_MESSAGE (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_VERIFY_MESSAGE:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH pair VERIFY_HASH (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_get_psa_attributes_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_USAGE_VERIFY_HASH:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA attributes for pk: ECKEY_DH public SIGN_MESSAGE (bad)
@@ -1223,39 +1223,39 @@ depends_on:MBEDTLS_RSA_C
pk_import_into_psa_fail:MBEDTLS_PK_RSA:FROM_PAIR:PSA_KEY_TYPE_RSA_PUBLIC_KEY:RSA_KEY_SIZE + 8:MBEDTLS_ERR_PK_INVALID_ALG
PSA import into PSA: ECKEY pair to RSA (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_TYPE_RSA_KEY_PAIR:0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY_DH pair to RSA (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_TYPE_RSA_KEY_PAIR:0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECDSA pair to RSA (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_AT_LEAST_ONE_CURVE:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_TYPE_RSA_KEY_PAIR:0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY pair to different curve (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_TYPE_ECC_KEY_PAIR(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY_DH pair to different curve (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_TYPE_ECC_KEY_PAIR(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECDSA pair to different curve (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_TYPE_ECC_KEY_PAIR(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY pair to public, different curve (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY_DH pair to public, different curve (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECDSA pair to public, different curve (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY public to different curve (bad)
@@ -1271,15 +1271,15 @@ depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_FAMILIES:MBEDT
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PUBLIC:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ANOTHER_FAMILY):0:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY pair to different bits (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_TYPE_ECC_KEY_PAIR(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY_DH pair to different bits (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_TYPE_ECC_KEY_PAIR(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECDSA pair to different bits (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_TYPE_ECC_KEY_PAIR(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY public to different bits (bad)
@@ -1295,15 +1295,15 @@ depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:MBEDTLS_P
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PUBLIC:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY private to public, different bits (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY:FROM_PAIR:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY_DH private to public, different bits (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
pk_import_into_psa_fail:MBEDTLS_PK_ECKEY_DH:FROM_PAIR:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECDSA private to public, different bits (bad)
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:MBEDTLS_PK_CAN_ECDSA_SOME
depends_on:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_TEST_PSA_ECC_HAVE_TWO_BITS:MBEDTLS_PK_CAN_ECDSA_SIGN
pk_import_into_psa_fail:MBEDTLS_PK_ECDSA:FROM_PAIR:PSA_KEY_TYPE_ECC_PUBLIC_KEY(MBEDTLS_TEST_PSA_ECC_ONE_CURVE_BITS):MBEDTLS_TEST_PSA_ECC_ANOTHER_CURVE_BITS:MBEDTLS_ERR_PK_TYPE_MISMATCH
PSA import into PSA: ECKEY public to pair (bad)
@@ -1,393 +0,0 @@
# Automatically generated by generate_psa_tests.py. Do not edit!
PSA AES 128-bit
depends_on:PSA_WANT_KEY_TYPE_AES
generate_key:PSA_KEY_TYPE_AES:128:PSA_SUCCESS:
PSA AES 192-bit
depends_on:PSA_WANT_KEY_TYPE_AES
generate_key:PSA_KEY_TYPE_AES:192:PSA_SUCCESS:
PSA AES 256-bit
depends_on:PSA_WANT_KEY_TYPE_AES
generate_key:PSA_KEY_TYPE_AES:256:PSA_SUCCESS:
PSA ARIA 128-bit
depends_on:PSA_WANT_KEY_TYPE_ARIA
generate_key:PSA_KEY_TYPE_ARIA:128:PSA_SUCCESS:
PSA ARIA 192-bit
depends_on:PSA_WANT_KEY_TYPE_ARIA
generate_key:PSA_KEY_TYPE_ARIA:192:PSA_SUCCESS:
PSA ARIA 256-bit
depends_on:PSA_WANT_KEY_TYPE_ARIA
generate_key:PSA_KEY_TYPE_ARIA:256:PSA_SUCCESS:
PSA CAMELLIA 128-bit
depends_on:PSA_WANT_KEY_TYPE_CAMELLIA
generate_key:PSA_KEY_TYPE_CAMELLIA:128:PSA_SUCCESS:
PSA CAMELLIA 192-bit
depends_on:PSA_WANT_KEY_TYPE_CAMELLIA
generate_key:PSA_KEY_TYPE_CAMELLIA:192:PSA_SUCCESS:
PSA CAMELLIA 256-bit
depends_on:PSA_WANT_KEY_TYPE_CAMELLIA
generate_key:PSA_KEY_TYPE_CAMELLIA:256:PSA_SUCCESS:
PSA CHACHA20 256-bit
depends_on:PSA_WANT_KEY_TYPE_CHACHA20
generate_key:PSA_KEY_TYPE_CHACHA20:256:PSA_SUCCESS:
PSA DERIVE 120-bit
depends_on:PSA_WANT_KEY_TYPE_DERIVE
generate_key:PSA_KEY_TYPE_DERIVE:120:PSA_SUCCESS:
PSA DERIVE 128-bit
depends_on:PSA_WANT_KEY_TYPE_DERIVE
generate_key:PSA_KEY_TYPE_DERIVE:128:PSA_SUCCESS:
PSA DES 64-bit
depends_on:PSA_WANT_KEY_TYPE_DES
generate_key:PSA_KEY_TYPE_DES:64:PSA_SUCCESS:
PSA DES 128-bit
depends_on:PSA_WANT_KEY_TYPE_DES
generate_key:PSA_KEY_TYPE_DES:128:PSA_SUCCESS:
PSA DES 192-bit
depends_on:PSA_WANT_KEY_TYPE_DES
generate_key:PSA_KEY_TYPE_DES:192:PSA_SUCCESS:
PSA HMAC 128-bit
depends_on:PSA_WANT_KEY_TYPE_HMAC
generate_key:PSA_KEY_TYPE_HMAC:128:PSA_SUCCESS:
PSA HMAC 160-bit
depends_on:PSA_WANT_KEY_TYPE_HMAC
generate_key:PSA_KEY_TYPE_HMAC:160:PSA_SUCCESS:
PSA HMAC 224-bit
depends_on:PSA_WANT_KEY_TYPE_HMAC
generate_key:PSA_KEY_TYPE_HMAC:224:PSA_SUCCESS:
PSA HMAC 256-bit
depends_on:PSA_WANT_KEY_TYPE_HMAC
generate_key:PSA_KEY_TYPE_HMAC:256:PSA_SUCCESS:
PSA HMAC 384-bit
depends_on:PSA_WANT_KEY_TYPE_HMAC
generate_key:PSA_KEY_TYPE_HMAC:384:PSA_SUCCESS:
PSA HMAC 512-bit
depends_on:PSA_WANT_KEY_TYPE_HMAC
generate_key:PSA_KEY_TYPE_HMAC:512:PSA_SUCCESS:
PSA PASSWORD 48-bit
depends_on:PSA_WANT_KEY_TYPE_PASSWORD
generate_key:PSA_KEY_TYPE_PASSWORD:48:PSA_SUCCESS:
PSA PASSWORD 168-bit
depends_on:PSA_WANT_KEY_TYPE_PASSWORD
generate_key:PSA_KEY_TYPE_PASSWORD:168:PSA_SUCCESS:
PSA PASSWORD 336-bit
depends_on:PSA_WANT_KEY_TYPE_PASSWORD
generate_key:PSA_KEY_TYPE_PASSWORD:336:PSA_SUCCESS:
PSA PASSWORD_HASH 128-bit
depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH
generate_key:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_SUCCESS:
PSA PASSWORD_HASH 256-bit
depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH
generate_key:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_SUCCESS:
PSA PEPPER 128-bit
depends_on:PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_PEPPER:128:PSA_SUCCESS:
PSA PEPPER 256-bit
depends_on:PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_PEPPER:256:PSA_SUCCESS:
PSA RAW_DATA 8-bit
depends_on:PSA_WANT_KEY_TYPE_RAW_DATA
generate_key:PSA_KEY_TYPE_RAW_DATA:8:PSA_SUCCESS:
PSA RAW_DATA 40-bit
depends_on:PSA_WANT_KEY_TYPE_RAW_DATA
generate_key:PSA_KEY_TYPE_RAW_DATA:40:PSA_SUCCESS:
PSA RAW_DATA 128-bit
depends_on:PSA_WANT_KEY_TYPE_RAW_DATA
generate_key:PSA_KEY_TYPE_RAW_DATA:128:PSA_SUCCESS:
PSA RSA_KEY_PAIR 1024-bit
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE:PSA_VENDOR_RSA_GENERATE_MIN_KEY_BITS <= 1024
generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_SUCCESS:
PSA RSA_KEY_PAIR 1536-bit
depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE:PSA_VENDOR_RSA_GENERATE_MIN_KEY_BITS <= 1536
generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_SUCCESS:
PSA RSA_PUBLIC_KEY 1024-bit
generate_key:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ERROR_INVALID_ARGUMENT:
PSA RSA_PUBLIC_KEY 1536-bit
generate_key:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_SUCCESS:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_SUCCESS:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_SUCCESS:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_256
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_SUCCESS:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_SUCCESS:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_384
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_SUCCESS:
PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_BRAINPOOL_P_R1_512
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(MONTGOMERY) 255-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_MONTGOMERY_255
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_SUCCESS:
PSA ECC_KEY_PAIR(MONTGOMERY) 448-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_MONTGOMERY_448
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(MONTGOMERY) 255-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(MONTGOMERY) 448-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(SECP_K1) 192-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_K1_192
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECP_K1) 225-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_K1_225:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):225:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECP_K1) 256-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_K1_256
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(SECP_K1) 192-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECP_K1) 225-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):225:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECP_K1) 256-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(SECP_R1) 224-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_R1_224
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):224:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECP_R1) 256-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_R1_256
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECP_R1) 384-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_R1_384
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECP_R1) 521-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_R1_521
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(SECP_R1) 224-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):224:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECP_R1) 256-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECP_R1) 384-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECP_R1) 521-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(SECP_R2) 160-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(SECP_R2) 160-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(SECT_K1) 163-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_K1) 233-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_K1) 239-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_K1) 283-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_K1) 409-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_K1) 571-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(SECT_K1) 163-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_K1) 233-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_K1) 239-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_K1) 283-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_K1) 409-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_K1) 571-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(SECT_R1) 163-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_R1) 233-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_R1) 283-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_R1) 409-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_SUCCESS:
PSA ECC_KEY_PAIR(SECT_R1) 571-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(SECT_R1) 163-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_R1) 233-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_R1) 283-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_R1) 409-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(SECT_R1) 571-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(SECT_R2) 163-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(SECT_R2) 163-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_SUCCESS:
PSA ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET
generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_SUCCESS:
PSA ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_ERROR_INVALID_ARGUMENT:
PSA ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit
generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_ERROR_INVALID_ARGUMENT:
PSA DH_KEY_PAIR(RFC7919) 2048-bit
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_DH_RFC7919_2048
generate_key:PSA_KEY_TYPE_DH_KEY_PAIR(PSA_DH_FAMILY_RFC7919):2048:PSA_SUCCESS:
PSA DH_KEY_PAIR(RFC7919) 3072-bit
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_DH_RFC7919_3072
generate_key:PSA_KEY_TYPE_DH_KEY_PAIR(PSA_DH_FAMILY_RFC7919):3072:PSA_SUCCESS:
PSA DH_KEY_PAIR(RFC7919) 4096-bit
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_DH_RFC7919_4096
generate_key:PSA_KEY_TYPE_DH_KEY_PAIR(PSA_DH_FAMILY_RFC7919):4096:PSA_SUCCESS:
PSA DH_KEY_PAIR(RFC7919) 6144-bit
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_DH_RFC7919_6144
generate_key:PSA_KEY_TYPE_DH_KEY_PAIR(PSA_DH_FAMILY_RFC7919):6144:PSA_SUCCESS:
PSA DH_KEY_PAIR(RFC7919) 8192-bit
depends_on:PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE:PSA_WANT_DH_RFC7919_8192
generate_key:PSA_KEY_TYPE_DH_KEY_PAIR(PSA_DH_FAMILY_RFC7919):8192:PSA_SUCCESS:
PSA DH_PUBLIC_KEY(RFC7919) 2048-bit
generate_key:PSA_KEY_TYPE_DH_PUBLIC_KEY(PSA_DH_FAMILY_RFC7919):2048:PSA_ERROR_INVALID_ARGUMENT:
PSA DH_PUBLIC_KEY(RFC7919) 3072-bit
generate_key:PSA_KEY_TYPE_DH_PUBLIC_KEY(PSA_DH_FAMILY_RFC7919):3072:PSA_ERROR_INVALID_ARGUMENT:
PSA DH_PUBLIC_KEY(RFC7919) 4096-bit
generate_key:PSA_KEY_TYPE_DH_PUBLIC_KEY(PSA_DH_FAMILY_RFC7919):4096:PSA_ERROR_INVALID_ARGUMENT:
PSA DH_PUBLIC_KEY(RFC7919) 6144-bit
generate_key:PSA_KEY_TYPE_DH_PUBLIC_KEY(PSA_DH_FAMILY_RFC7919):6144:PSA_ERROR_INVALID_ARGUMENT:
PSA DH_PUBLIC_KEY(RFC7919) 8192-bit
generate_key:PSA_KEY_TYPE_DH_PUBLIC_KEY(PSA_DH_FAMILY_RFC7919):8192:PSA_ERROR_INVALID_ARGUMENT:
# End of automatically generated file.
@@ -1,171 +0,0 @@
# Automatically generated by generate_psa_tests.py. Do not edit!
hash_empty MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_empty:PSA_ALG_MD5:"d41d8cd98f00b204e9800998ecf8427e"
hash_valid_one_shot MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_valid_one_shot:PSA_ALG_MD5:"616263":"900150983cd24fb0d6963f7d28e17f72"
hash_valid_multipart 0 + 179 MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_valid_multipart:PSA_ALG_MD5:"":"d41d8cd98f00b204e9800998ecf8427e":"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"581d07c1c1cf41c302d587ca06659166"
hash_valid_multipart 1 + 178 MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_valid_multipart:PSA_ALG_MD5:"48":"c1d9f50f86825a1a2302ec2449c17196":"656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"581d07c1c1cf41c302d587ca06659166"
hash_valid_multipart 64 + 115 MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_valid_multipart:PSA_ALG_MD5:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d":"f643f3cdd664a99674b060a871e5cdf6":"2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"581d07c1c1cf41c302d587ca06659166"
hash_valid_multipart 178 + 1 MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_valid_multipart:PSA_ALG_MD5:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e67":"484d9ce483e5d65fa93622e5e0502163":"21":"581d07c1c1cf41c302d587ca06659166"
hash_valid_multipart 179 + 0 MD5
depends_on:MBEDTLS_PSA_BUILTIN_ALG_MD5
hash_valid_multipart:PSA_ALG_MD5:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"581d07c1c1cf41c302d587ca06659166":"":"581d07c1c1cf41c302d587ca06659166"
hash_empty SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_empty:PSA_ALG_SHA_1:"da39a3ee5e6b4b0d3255bfef95601890afd80709"
hash_valid_one_shot SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_valid_one_shot:PSA_ALG_SHA_1:"616263":"a9993e364706816aba3e25717850c26c9cd0d89d"
hash_valid_multipart 0 + 179 SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_valid_multipart:PSA_ALG_SHA_1:"":"da39a3ee5e6b4b0d3255bfef95601890afd80709":"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"68e3b2a18096d66916a64b84085772c1ee2b7e72"
hash_valid_multipart 1 + 178 SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_valid_multipart:PSA_ALG_SHA_1:"48":"7cf184f4c67ad58283ecb19349720b0cae756829":"656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"68e3b2a18096d66916a64b84085772c1ee2b7e72"
hash_valid_multipart 64 + 115 SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_valid_multipart:PSA_ALG_SHA_1:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d":"750ba870591b392b0a82a93715018733809d6d60":"2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"68e3b2a18096d66916a64b84085772c1ee2b7e72"
hash_valid_multipart 178 + 1 SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_valid_multipart:PSA_ALG_SHA_1:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e67":"95147c023be4f648064a8003d856901dd4cae0aa":"21":"68e3b2a18096d66916a64b84085772c1ee2b7e72"
hash_valid_multipart 179 + 0 SHA_1
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_1
hash_valid_multipart:PSA_ALG_SHA_1:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"68e3b2a18096d66916a64b84085772c1ee2b7e72":"":"68e3b2a18096d66916a64b84085772c1ee2b7e72"
hash_empty SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_empty:PSA_ALG_SHA_224:"d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f"
hash_valid_one_shot SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_valid_one_shot:PSA_ALG_SHA_224:"616263":"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7"
hash_valid_multipart 0 + 179 SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_valid_multipart:PSA_ALG_SHA_224:"":"d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f":"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"6e2ca0f9c283b6c8759e761d8bd1dd5dba0a49af1dff64f9beb2e444"
hash_valid_multipart 1 + 178 SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_valid_multipart:PSA_ALG_SHA_224:"48":"7e27c59a202f5e2b2b3b5458300140ef7aa7edc3a97a605b788546a1":"656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"6e2ca0f9c283b6c8759e761d8bd1dd5dba0a49af1dff64f9beb2e444"
hash_valid_multipart 64 + 115 SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_valid_multipart:PSA_ALG_SHA_224:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d":"ee50241ec35c16da236ed1d98a67635ec684dcaa205d59ef91a0bc95":"2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"6e2ca0f9c283b6c8759e761d8bd1dd5dba0a49af1dff64f9beb2e444"
hash_valid_multipart 178 + 1 SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_valid_multipart:PSA_ALG_SHA_224:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e67":"b28b9b1080f8ba1f274c41ad40823dca0d6e575abaa42c5b01588cd2":"21":"6e2ca0f9c283b6c8759e761d8bd1dd5dba0a49af1dff64f9beb2e444"
hash_valid_multipart 179 + 0 SHA_224
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_224
hash_valid_multipart:PSA_ALG_SHA_224:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"6e2ca0f9c283b6c8759e761d8bd1dd5dba0a49af1dff64f9beb2e444":"":"6e2ca0f9c283b6c8759e761d8bd1dd5dba0a49af1dff64f9beb2e444"
hash_empty SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_empty:PSA_ALG_SHA_256:"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
hash_valid_one_shot SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_valid_one_shot:PSA_ALG_SHA_256:"616263":"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
hash_valid_multipart 0 + 179 SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_valid_multipart:PSA_ALG_SHA_256:"":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"4d30d19911e5974d669fa735cbd7a5b03dbea5754fc1d52f8c2a5d08ae7110dc"
hash_valid_multipart 1 + 178 SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_valid_multipart:PSA_ALG_SHA_256:"48":"44bd7ae60f478fae1061e11a7739f4b94d1daf917982d33b6fc8a01a63f89c21":"656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"4d30d19911e5974d669fa735cbd7a5b03dbea5754fc1d52f8c2a5d08ae7110dc"
hash_valid_multipart 64 + 115 SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_valid_multipart:PSA_ALG_SHA_256:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d":"ac068007f505c49f58818543ba0566528b54caffe65494da3515a8295ca986ad":"2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"4d30d19911e5974d669fa735cbd7a5b03dbea5754fc1d52f8c2a5d08ae7110dc"
hash_valid_multipart 178 + 1 SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_valid_multipart:PSA_ALG_SHA_256:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e67":"82effb9677d08d1ef33f578433cfcfb96355fe19372808e0711d72337671f152":"21":"4d30d19911e5974d669fa735cbd7a5b03dbea5754fc1d52f8c2a5d08ae7110dc"
hash_valid_multipart 179 + 0 SHA_256
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_256
hash_valid_multipart:PSA_ALG_SHA_256:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"4d30d19911e5974d669fa735cbd7a5b03dbea5754fc1d52f8c2a5d08ae7110dc":"":"4d30d19911e5974d669fa735cbd7a5b03dbea5754fc1d52f8c2a5d08ae7110dc"
hash_empty SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_empty:PSA_ALG_SHA_384:"38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b"
hash_valid_one_shot SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_valid_one_shot:PSA_ALG_SHA_384:"616263":"cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7"
hash_valid_multipart 0 + 179 SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_valid_multipart:PSA_ALG_SHA_384:"":"38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b":"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"23d654bbaa58d813adce62c4a6e94a5589d9104b0c908173c583eb1aefe08f884b2c90e945e9c27ac3cdfa80fb8e1efd"
hash_valid_multipart 1 + 178 SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_valid_multipart:PSA_ALG_SHA_384:"48":"72df8089b04fd6038238731b218a64da29bd83a34bced02a29f3139833671028584a653f74f1afecfac51064a0e6416c":"656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"23d654bbaa58d813adce62c4a6e94a5589d9104b0c908173c583eb1aefe08f884b2c90e945e9c27ac3cdfa80fb8e1efd"
hash_valid_multipart 64 + 115 SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_valid_multipart:PSA_ALG_SHA_384:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d":"fced26dd21bb61dbb69f704e8aa6cd6e00da4ceecfc55dc94fe48458bc72fb603c23186150923578e4a7237af0e6105c":"2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"23d654bbaa58d813adce62c4a6e94a5589d9104b0c908173c583eb1aefe08f884b2c90e945e9c27ac3cdfa80fb8e1efd"
hash_valid_multipart 178 + 1 SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_valid_multipart:PSA_ALG_SHA_384:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e67":"30d426688d31277644b0aa8c32435a36c17f2b8ef20c17e2069405951d01d0e66983e4f98ae1103f85b5e94862ea8b59":"21":"23d654bbaa58d813adce62c4a6e94a5589d9104b0c908173c583eb1aefe08f884b2c90e945e9c27ac3cdfa80fb8e1efd"
hash_valid_multipart 179 + 0 SHA_384
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_384
hash_valid_multipart:PSA_ALG_SHA_384:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"23d654bbaa58d813adce62c4a6e94a5589d9104b0c908173c583eb1aefe08f884b2c90e945e9c27ac3cdfa80fb8e1efd":"":"23d654bbaa58d813adce62c4a6e94a5589d9104b0c908173c583eb1aefe08f884b2c90e945e9c27ac3cdfa80fb8e1efd"
hash_empty SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_empty:PSA_ALG_SHA_512:"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"
hash_valid_one_shot SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_valid_one_shot:PSA_ALG_SHA_512:"616263":"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"
hash_valid_multipart 0 + 179 SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_valid_multipart:PSA_ALG_SHA_512:"":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e":"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"f01271da8ba8505cc60393b497939b10a7e8c9e4fb4e636bac3ca92d5bec0d6d3d9f19ee9229173e40840e14740214fe454893a044d1da5aca4ef9b830d0dab0"
hash_valid_multipart 1 + 178 SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_valid_multipart:PSA_ALG_SHA_512:"48":"9032fb94055d4d14e42185bdff59642b98fe6073f68f29d394620c4e698a86fb2e51351ca6997e6a164aae0b871cf789fbc6e0d863733d05903b4eb11be58d9c":"656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"f01271da8ba8505cc60393b497939b10a7e8c9e4fb4e636bac3ca92d5bec0d6d3d9f19ee9229173e40840e14740214fe454893a044d1da5aca4ef9b830d0dab0"
hash_valid_multipart 64 + 115 SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_valid_multipart:PSA_ALG_SHA_512:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d":"98cde721bfa735807497358c48c5e5d4302410f30c3afc3b08f40da267d23a28a88ecdd9d52711189fa2ddca54343e37a14d401aee3ac47df3b469c15906bce1":"2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"f01271da8ba8505cc60393b497939b10a7e8c9e4fb4e636bac3ca92d5bec0d6d3d9f19ee9229173e40840e14740214fe454893a044d1da5aca4ef9b830d0dab0"
hash_valid_multipart 178 + 1 SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_valid_multipart:PSA_ALG_SHA_512:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e67":"0d86ca214f7634d86c13f95068b226d16bd1e65337da4983ce88e82fa2515957495fc6c50b2afb677bea54de9e1b8e7c694591605c514abed7fdc18f181fe01c":"21":"f01271da8ba8505cc60393b497939b10a7e8c9e4fb4e636bac3ca92d5bec0d6d3d9f19ee9229173e40840e14740214fe454893a044d1da5aca4ef9b830d0dab0"
hash_valid_multipart 179 + 0 SHA_512
depends_on:MBEDTLS_PSA_BUILTIN_ALG_SHA_512
hash_valid_multipart:PSA_ALG_SHA_512:"48656c6c6f2c20776f726c642e20486572652061726520313620756e7072696e7461626c652062797465733a205b000102030405060708090a80818283feff5d2e202054686973206d657373616765207761732062726f7567687420746f20796f752062792061206e61747572616c20696e74656c6c6967656e63652e2020496620796f752063616e207265616420746869732c20676f6f64206c75636b207769746820796f757220646562756767696e6721":"f01271da8ba8505cc60393b497939b10a7e8c9e4fb4e636bac3ca92d5bec0d6d3d9f19ee9229173e40840e14740214fe454893a044d1da5aca4ef9b830d0dab0":"":"f01271da8ba8505cc60393b497939b10a7e8c9e4fb4e636bac3ca92d5bec0d6d3d9f19ee9229173e40840e14740214fe454893a044d1da5aca4ef9b830d0dab0"
# End of automatically generated file.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More